blob: 2b735472ad62084451f118df1e227e3cd76bab2b [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
4#ifdef Py_DEBUG
5extern 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},
17 {"is", 526},
18 {"as", 531},
19 {"or", 532},
20 {NULL, -1},
21 },
22 (KeywordToken[]) {
23 {"del", 503},
24 {"try", 511},
25 {"for", 517},
26 {"def", 522},
27 {"not", 525},
28 {"and", 533},
29 {NULL, -1},
30 },
31 (KeywordToken[]) {
32 {"pass", 502},
33 {"from", 514},
34 {"elif", 515},
35 {"else", 516},
36 {"with", 519},
37 {"True", 527},
38 {"None", 529},
39 {NULL, -1},
40 },
41 (KeywordToken[]) {
42 {"raise", 501},
43 {"yield", 504},
44 {"break", 506},
45 {"while", 512},
46 {"class", 523},
47 {"False", 528},
48 {NULL, -1},
49 },
50 (KeywordToken[]) {
51 {"return", 500},
52 {"assert", 505},
53 {"global", 508},
54 {"import", 513},
55 {"except", 520},
56 {"lambda", 524},
57 {NULL, -1},
58 },
59 (KeywordToken[]) {
60 {"finally", 521},
61 {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[]) {
74 {"__new_parser__", 530},
75 {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
147#define lambda_parameters_type 1069
Guido van Rossum3941d972020-05-01 09:42:03 -0700148#define lambda_slash_no_default_type 1070
Guido van Rossumc001c092020-04-30 12:12:19 -0700149#define lambda_slash_with_default_type 1071
150#define lambda_star_etc_type 1072
Guido van Rossum3941d972020-05-01 09:42:03 -0700151#define lambda_kwds_type 1073
152#define lambda_param_no_default_type 1074
153#define lambda_param_with_default_type 1075
154#define lambda_param_maybe_default_type 1076
155#define lambda_param_type 1077
156#define disjunction_type 1078
157#define conjunction_type 1079
158#define inversion_type 1080
159#define comparison_type 1081
160#define compare_op_bitwise_or_pair_type 1082
161#define eq_bitwise_or_type 1083
162#define noteq_bitwise_or_type 1084
163#define lte_bitwise_or_type 1085
164#define lt_bitwise_or_type 1086
165#define gte_bitwise_or_type 1087
166#define gt_bitwise_or_type 1088
167#define notin_bitwise_or_type 1089
168#define in_bitwise_or_type 1090
169#define isnot_bitwise_or_type 1091
170#define is_bitwise_or_type 1092
171#define bitwise_or_type 1093 // Left-recursive
172#define bitwise_xor_type 1094 // Left-recursive
173#define bitwise_and_type 1095 // Left-recursive
174#define shift_expr_type 1096 // Left-recursive
175#define sum_type 1097 // Left-recursive
176#define term_type 1098 // Left-recursive
177#define factor_type 1099
178#define power_type 1100
179#define await_primary_type 1101
180#define primary_type 1102 // Left-recursive
181#define slices_type 1103
182#define slice_type 1104
183#define atom_type 1105
184#define strings_type 1106
185#define list_type 1107
186#define listcomp_type 1108
187#define tuple_type 1109
188#define group_type 1110
189#define genexp_type 1111
190#define set_type 1112
191#define setcomp_type 1113
192#define dict_type 1114
193#define dictcomp_type 1115
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700194#define double_starred_kvpairs_type 1116
195#define double_starred_kvpair_type 1117
196#define kvpair_type 1118
197#define for_if_clauses_type 1119
198#define for_if_clause_type 1120
199#define yield_expr_type 1121
200#define arguments_type 1122
201#define args_type 1123
202#define kwargs_type 1124
203#define starred_expression_type 1125
204#define kwarg_or_starred_type 1126
205#define kwarg_or_double_starred_type 1127
206#define star_targets_type 1128
207#define star_targets_seq_type 1129
208#define star_target_type 1130
209#define star_atom_type 1131
210#define single_target_type 1132
211#define single_subscript_attribute_target_type 1133
212#define del_targets_type 1134
213#define del_target_type 1135
214#define del_t_atom_type 1136
215#define del_target_end_type 1137
216#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_block_type 1147
226#define invalid_comprehension_type 1148
227#define invalid_dict_comprehension_type 1149
228#define invalid_parameters_type 1150
229#define invalid_star_etc_type 1151
230#define invalid_lambda_star_etc_type 1152
231#define invalid_double_type_comments_type 1153
232#define invalid_del_target_type 1154
233#define invalid_import_from_targets_type 1155
234#define _loop0_1_type 1156
235#define _loop0_2_type 1157
236#define _loop0_4_type 1158
237#define _gather_3_type 1159
238#define _loop0_6_type 1160
239#define _gather_5_type 1161
240#define _loop0_8_type 1162
241#define _gather_7_type 1163
242#define _loop0_10_type 1164
243#define _gather_9_type 1165
244#define _loop1_11_type 1166
245#define _loop0_13_type 1167
246#define _gather_12_type 1168
247#define _tmp_14_type 1169
248#define _tmp_15_type 1170
249#define _tmp_16_type 1171
250#define _tmp_17_type 1172
251#define _tmp_18_type 1173
252#define _tmp_19_type 1174
253#define _tmp_20_type 1175
254#define _tmp_21_type 1176
255#define _loop1_22_type 1177
256#define _tmp_23_type 1178
257#define _tmp_24_type 1179
258#define _loop0_26_type 1180
259#define _gather_25_type 1181
260#define _loop0_28_type 1182
261#define _gather_27_type 1183
262#define _tmp_29_type 1184
263#define _loop0_30_type 1185
264#define _loop1_31_type 1186
265#define _loop0_33_type 1187
266#define _gather_32_type 1188
267#define _tmp_34_type 1189
268#define _loop0_36_type 1190
269#define _gather_35_type 1191
270#define _tmp_37_type 1192
271#define _loop0_39_type 1193
272#define _gather_38_type 1194
273#define _loop0_41_type 1195
274#define _gather_40_type 1196
275#define _loop0_43_type 1197
276#define _gather_42_type 1198
277#define _loop0_45_type 1199
278#define _gather_44_type 1200
279#define _tmp_46_type 1201
280#define _loop1_47_type 1202
281#define _tmp_48_type 1203
282#define _tmp_49_type 1204
283#define _tmp_50_type 1205
284#define _tmp_51_type 1206
285#define _tmp_52_type 1207
286#define _loop0_53_type 1208
287#define _loop0_54_type 1209
288#define _loop0_55_type 1210
289#define _loop1_56_type 1211
290#define _loop0_57_type 1212
291#define _loop1_58_type 1213
292#define _loop1_59_type 1214
293#define _loop1_60_type 1215
294#define _loop0_61_type 1216
295#define _loop1_62_type 1217
296#define _loop0_63_type 1218
297#define _loop1_64_type 1219
298#define _loop0_65_type 1220
299#define _loop1_66_type 1221
300#define _loop1_67_type 1222
301#define _tmp_68_type 1223
302#define _loop0_70_type 1224
303#define _gather_69_type 1225
304#define _loop1_71_type 1226
305#define _loop0_73_type 1227
306#define _gather_72_type 1228
307#define _loop1_74_type 1229
308#define _loop0_75_type 1230
309#define _loop0_76_type 1231
310#define _loop0_77_type 1232
311#define _loop1_78_type 1233
312#define _loop0_79_type 1234
313#define _loop1_80_type 1235
314#define _loop1_81_type 1236
315#define _loop1_82_type 1237
316#define _loop0_83_type 1238
317#define _loop1_84_type 1239
318#define _loop0_85_type 1240
319#define _loop1_86_type 1241
320#define _loop0_87_type 1242
321#define _loop1_88_type 1243
322#define _loop1_89_type 1244
323#define _loop1_90_type 1245
324#define _loop1_91_type 1246
325#define _tmp_92_type 1247
326#define _loop0_94_type 1248
327#define _gather_93_type 1249
328#define _tmp_95_type 1250
329#define _tmp_96_type 1251
330#define _tmp_97_type 1252
331#define _tmp_98_type 1253
332#define _loop1_99_type 1254
333#define _tmp_100_type 1255
334#define _tmp_101_type 1256
335#define _loop0_103_type 1257
336#define _gather_102_type 1258
337#define _loop1_104_type 1259
338#define _loop0_105_type 1260
339#define _loop0_106_type 1261
340#define _tmp_107_type 1262
341#define _tmp_108_type 1263
342#define _loop0_110_type 1264
343#define _gather_109_type 1265
344#define _loop0_112_type 1266
345#define _gather_111_type 1267
346#define _loop0_114_type 1268
347#define _gather_113_type 1269
348#define _loop0_116_type 1270
349#define _gather_115_type 1271
350#define _loop0_117_type 1272
351#define _loop0_119_type 1273
352#define _gather_118_type 1274
353#define _tmp_120_type 1275
354#define _loop0_122_type 1276
355#define _gather_121_type 1277
356#define _loop0_124_type 1278
357#define _gather_123_type 1279
358#define _tmp_125_type 1280
359#define _loop0_126_type 1281
360#define _tmp_127_type 1282
361#define _tmp_128_type 1283
362#define _tmp_129_type 1284
363#define _tmp_130_type 1285
364#define _loop0_131_type 1286
365#define _tmp_132_type 1287
366#define _tmp_133_type 1288
367#define _tmp_134_type 1289
368#define _tmp_135_type 1290
369#define _tmp_136_type 1291
370#define _tmp_137_type 1292
371#define _tmp_138_type 1293
372#define _tmp_139_type 1294
373#define _tmp_140_type 1295
374#define _tmp_141_type 1296
375#define _tmp_142_type 1297
376#define _tmp_143_type 1298
377#define _tmp_144_type 1299
378#define _tmp_145_type 1300
379#define _loop1_146_type 1301
380#define _tmp_147_type 1302
381#define _tmp_148_type 1303
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100382
383static mod_ty file_rule(Parser *p);
384static mod_ty interactive_rule(Parser *p);
385static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700386static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100387static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700388static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100389static asdl_seq* statements_rule(Parser *p);
390static asdl_seq* statement_rule(Parser *p);
391static asdl_seq* statement_newline_rule(Parser *p);
392static asdl_seq* simple_stmt_rule(Parser *p);
393static stmt_ty small_stmt_rule(Parser *p);
394static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300395static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100396static AugOperator* augassign_rule(Parser *p);
397static stmt_ty global_stmt_rule(Parser *p);
398static stmt_ty nonlocal_stmt_rule(Parser *p);
399static stmt_ty yield_stmt_rule(Parser *p);
400static stmt_ty assert_stmt_rule(Parser *p);
401static stmt_ty del_stmt_rule(Parser *p);
402static stmt_ty import_stmt_rule(Parser *p);
403static stmt_ty import_name_rule(Parser *p);
404static stmt_ty import_from_rule(Parser *p);
405static asdl_seq* import_from_targets_rule(Parser *p);
406static asdl_seq* import_from_as_names_rule(Parser *p);
407static alias_ty import_from_as_name_rule(Parser *p);
408static asdl_seq* dotted_as_names_rule(Parser *p);
409static alias_ty dotted_as_name_rule(Parser *p);
410static expr_ty dotted_name_rule(Parser *p);
411static stmt_ty if_stmt_rule(Parser *p);
412static stmt_ty elif_stmt_rule(Parser *p);
413static asdl_seq* else_block_rule(Parser *p);
414static stmt_ty while_stmt_rule(Parser *p);
415static stmt_ty for_stmt_rule(Parser *p);
416static stmt_ty with_stmt_rule(Parser *p);
417static withitem_ty with_item_rule(Parser *p);
418static stmt_ty try_stmt_rule(Parser *p);
419static excepthandler_ty except_block_rule(Parser *p);
420static asdl_seq* finally_block_rule(Parser *p);
421static stmt_ty return_stmt_rule(Parser *p);
422static stmt_ty raise_stmt_rule(Parser *p);
423static stmt_ty function_def_rule(Parser *p);
424static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100425static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100426static arguments_ty params_rule(Parser *p);
427static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700428static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100429static SlashWithDefault* slash_with_default_rule(Parser *p);
430static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100431static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700432static arg_ty param_no_default_rule(Parser *p);
433static NameDefaultPair* param_with_default_rule(Parser *p);
434static NameDefaultPair* param_maybe_default_rule(Parser *p);
435static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100436static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700437static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100438static asdl_seq* decorators_rule(Parser *p);
439static stmt_ty class_def_rule(Parser *p);
440static stmt_ty class_def_raw_rule(Parser *p);
441static asdl_seq* block_rule(Parser *p);
442static asdl_seq* expressions_list_rule(Parser *p);
443static expr_ty star_expressions_rule(Parser *p);
444static expr_ty star_expression_rule(Parser *p);
445static asdl_seq* star_named_expressions_rule(Parser *p);
446static expr_ty star_named_expression_rule(Parser *p);
447static expr_ty named_expression_rule(Parser *p);
448static expr_ty annotated_rhs_rule(Parser *p);
449static expr_ty expressions_rule(Parser *p);
450static expr_ty expression_rule(Parser *p);
451static expr_ty lambdef_rule(Parser *p);
452static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700453static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100454static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
455static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100456static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700457static arg_ty lambda_param_no_default_rule(Parser *p);
458static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
459static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
460static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100461static expr_ty disjunction_rule(Parser *p);
462static expr_ty conjunction_rule(Parser *p);
463static expr_ty inversion_rule(Parser *p);
464static expr_ty comparison_rule(Parser *p);
465static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
466static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
467static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
468static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
469static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
470static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
471static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
472static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
473static CmpopExprPair* in_bitwise_or_rule(Parser *p);
474static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
475static CmpopExprPair* is_bitwise_or_rule(Parser *p);
476static expr_ty bitwise_or_rule(Parser *p);
477static expr_ty bitwise_xor_rule(Parser *p);
478static expr_ty bitwise_and_rule(Parser *p);
479static expr_ty shift_expr_rule(Parser *p);
480static expr_ty sum_rule(Parser *p);
481static expr_ty term_rule(Parser *p);
482static expr_ty factor_rule(Parser *p);
483static expr_ty power_rule(Parser *p);
484static expr_ty await_primary_rule(Parser *p);
485static expr_ty primary_rule(Parser *p);
486static expr_ty slices_rule(Parser *p);
487static expr_ty slice_rule(Parser *p);
488static expr_ty atom_rule(Parser *p);
489static expr_ty strings_rule(Parser *p);
490static expr_ty list_rule(Parser *p);
491static expr_ty listcomp_rule(Parser *p);
492static expr_ty tuple_rule(Parser *p);
493static expr_ty group_rule(Parser *p);
494static expr_ty genexp_rule(Parser *p);
495static expr_ty set_rule(Parser *p);
496static expr_ty setcomp_rule(Parser *p);
497static expr_ty dict_rule(Parser *p);
498static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700499static asdl_seq* double_starred_kvpairs_rule(Parser *p);
500static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100501static KeyValuePair* kvpair_rule(Parser *p);
502static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300503static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100504static expr_ty yield_expr_rule(Parser *p);
505static expr_ty arguments_rule(Parser *p);
506static expr_ty args_rule(Parser *p);
507static asdl_seq* kwargs_rule(Parser *p);
508static expr_ty starred_expression_rule(Parser *p);
509static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
510static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
511static expr_ty star_targets_rule(Parser *p);
512static asdl_seq* star_targets_seq_rule(Parser *p);
513static expr_ty star_target_rule(Parser *p);
514static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300515static expr_ty single_target_rule(Parser *p);
516static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100517static asdl_seq* del_targets_rule(Parser *p);
518static expr_ty del_target_rule(Parser *p);
519static expr_ty del_t_atom_rule(Parser *p);
Shantanu27c0d9b2020-05-11 14:53:58 -0700520static void *del_target_end_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100521static asdl_seq* targets_rule(Parser *p);
522static expr_ty target_rule(Parser *p);
523static expr_ty t_primary_rule(Parser *p);
524static void *t_lookahead_rule(Parser *p);
525static expr_ty t_atom_rule(Parser *p);
526static void *incorrect_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300527static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100528static void *invalid_named_expression_rule(Parser *p);
529static void *invalid_assignment_rule(Parser *p);
530static void *invalid_block_rule(Parser *p);
531static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700532static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100533static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300534static void *invalid_star_etc_rule(Parser *p);
535static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700536static void *invalid_double_type_comments_rule(Parser *p);
Shantanu27c0d9b2020-05-11 14:53:58 -0700537static void *invalid_del_target_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100538static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100539static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700540static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100541static asdl_seq *_loop0_4_rule(Parser *p);
542static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700543static asdl_seq *_loop0_6_rule(Parser *p);
544static asdl_seq *_gather_5_rule(Parser *p);
545static asdl_seq *_loop0_8_rule(Parser *p);
546static asdl_seq *_gather_7_rule(Parser *p);
547static asdl_seq *_loop0_10_rule(Parser *p);
548static asdl_seq *_gather_9_rule(Parser *p);
549static asdl_seq *_loop1_11_rule(Parser *p);
550static asdl_seq *_loop0_13_rule(Parser *p);
551static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100552static void *_tmp_14_rule(Parser *p);
553static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700554static void *_tmp_16_rule(Parser *p);
555static void *_tmp_17_rule(Parser *p);
556static void *_tmp_18_rule(Parser *p);
557static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100558static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700559static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100560static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700561static void *_tmp_23_rule(Parser *p);
562static void *_tmp_24_rule(Parser *p);
563static asdl_seq *_loop0_26_rule(Parser *p);
564static asdl_seq *_gather_25_rule(Parser *p);
565static asdl_seq *_loop0_28_rule(Parser *p);
566static asdl_seq *_gather_27_rule(Parser *p);
567static void *_tmp_29_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100568static asdl_seq *_loop0_30_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700569static asdl_seq *_loop1_31_rule(Parser *p);
570static asdl_seq *_loop0_33_rule(Parser *p);
571static asdl_seq *_gather_32_rule(Parser *p);
572static void *_tmp_34_rule(Parser *p);
573static asdl_seq *_loop0_36_rule(Parser *p);
574static asdl_seq *_gather_35_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100575static void *_tmp_37_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700576static asdl_seq *_loop0_39_rule(Parser *p);
577static asdl_seq *_gather_38_rule(Parser *p);
578static asdl_seq *_loop0_41_rule(Parser *p);
579static asdl_seq *_gather_40_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300580static asdl_seq *_loop0_43_rule(Parser *p);
581static asdl_seq *_gather_42_rule(Parser *p);
582static asdl_seq *_loop0_45_rule(Parser *p);
583static asdl_seq *_gather_44_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100584static void *_tmp_46_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300585static asdl_seq *_loop1_47_rule(Parser *p);
586static void *_tmp_48_rule(Parser *p);
587static void *_tmp_49_rule(Parser *p);
588static void *_tmp_50_rule(Parser *p);
589static void *_tmp_51_rule(Parser *p);
590static void *_tmp_52_rule(Parser *p);
591static asdl_seq *_loop0_53_rule(Parser *p);
592static asdl_seq *_loop0_54_rule(Parser *p);
593static asdl_seq *_loop0_55_rule(Parser *p);
594static asdl_seq *_loop1_56_rule(Parser *p);
595static asdl_seq *_loop0_57_rule(Parser *p);
596static asdl_seq *_loop1_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700597static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300598static asdl_seq *_loop1_60_rule(Parser *p);
599static asdl_seq *_loop0_61_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700600static asdl_seq *_loop1_62_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300601static asdl_seq *_loop0_63_rule(Parser *p);
602static asdl_seq *_loop1_64_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700603static asdl_seq *_loop0_65_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700604static asdl_seq *_loop1_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300605static asdl_seq *_loop1_67_rule(Parser *p);
606static void *_tmp_68_rule(Parser *p);
607static asdl_seq *_loop0_70_rule(Parser *p);
608static asdl_seq *_gather_69_rule(Parser *p);
609static asdl_seq *_loop1_71_rule(Parser *p);
610static asdl_seq *_loop0_73_rule(Parser *p);
611static asdl_seq *_gather_72_rule(Parser *p);
612static asdl_seq *_loop1_74_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700613static asdl_seq *_loop0_75_rule(Parser *p);
614static asdl_seq *_loop0_76_rule(Parser *p);
615static asdl_seq *_loop0_77_rule(Parser *p);
616static asdl_seq *_loop1_78_rule(Parser *p);
617static asdl_seq *_loop0_79_rule(Parser *p);
618static asdl_seq *_loop1_80_rule(Parser *p);
619static asdl_seq *_loop1_81_rule(Parser *p);
620static asdl_seq *_loop1_82_rule(Parser *p);
621static asdl_seq *_loop0_83_rule(Parser *p);
622static asdl_seq *_loop1_84_rule(Parser *p);
623static asdl_seq *_loop0_85_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300624static asdl_seq *_loop1_86_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700625static asdl_seq *_loop0_87_rule(Parser *p);
626static asdl_seq *_loop1_88_rule(Parser *p);
627static asdl_seq *_loop1_89_rule(Parser *p);
628static asdl_seq *_loop1_90_rule(Parser *p);
629static asdl_seq *_loop1_91_rule(Parser *p);
630static void *_tmp_92_rule(Parser *p);
631static asdl_seq *_loop0_94_rule(Parser *p);
632static asdl_seq *_gather_93_rule(Parser *p);
633static void *_tmp_95_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700634static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700635static void *_tmp_97_rule(Parser *p);
636static void *_tmp_98_rule(Parser *p);
637static asdl_seq *_loop1_99_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100638static void *_tmp_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300639static void *_tmp_101_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700640static asdl_seq *_loop0_103_rule(Parser *p);
641static asdl_seq *_gather_102_rule(Parser *p);
642static asdl_seq *_loop1_104_rule(Parser *p);
643static asdl_seq *_loop0_105_rule(Parser *p);
644static asdl_seq *_loop0_106_rule(Parser *p);
645static void *_tmp_107_rule(Parser *p);
646static void *_tmp_108_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300647static asdl_seq *_loop0_110_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700648static asdl_seq *_gather_109_rule(Parser *p);
649static asdl_seq *_loop0_112_rule(Parser *p);
650static asdl_seq *_gather_111_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100651static asdl_seq *_loop0_114_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300652static asdl_seq *_gather_113_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100653static asdl_seq *_loop0_116_rule(Parser *p);
654static asdl_seq *_gather_115_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700655static asdl_seq *_loop0_117_rule(Parser *p);
656static asdl_seq *_loop0_119_rule(Parser *p);
657static asdl_seq *_gather_118_rule(Parser *p);
658static void *_tmp_120_rule(Parser *p);
659static asdl_seq *_loop0_122_rule(Parser *p);
660static asdl_seq *_gather_121_rule(Parser *p);
661static asdl_seq *_loop0_124_rule(Parser *p);
662static asdl_seq *_gather_123_rule(Parser *p);
663static void *_tmp_125_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300664static asdl_seq *_loop0_126_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700665static void *_tmp_127_rule(Parser *p);
666static void *_tmp_128_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100667static void *_tmp_129_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300668static void *_tmp_130_rule(Parser *p);
669static asdl_seq *_loop0_131_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100670static void *_tmp_132_rule(Parser *p);
671static void *_tmp_133_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700672static void *_tmp_134_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100673static void *_tmp_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700674static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100675static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700676static void *_tmp_138_rule(Parser *p);
677static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300678static void *_tmp_140_rule(Parser *p);
679static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700680static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300681static void *_tmp_143_rule(Parser *p);
682static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300683static void *_tmp_145_rule(Parser *p);
684static asdl_seq *_loop1_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300685static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300686static void *_tmp_148_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100687
688
689// file: statements? $
690static mod_ty
691file_rule(Parser *p)
692{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700693 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100694 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100696 return NULL;
697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100698 mod_ty _res = NULL;
699 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100700 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300701 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700702 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300703 return NULL;
704 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700705 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100706 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100707 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100708 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100709 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100710 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100711 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100712 )
713 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700714 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100715 _res = _PyPegen_make_module ( p , a );
716 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100719 return NULL;
720 }
721 goto done;
722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100723 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700724 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100727 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100728 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700729 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100730 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100731}
732
733// interactive: statement_newline
734static mod_ty
735interactive_rule(Parser *p)
736{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700737 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100738 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700739 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100740 return NULL;
741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100742 mod_ty _res = NULL;
743 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100744 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300745 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700746 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300747 return NULL;
748 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700749 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100750 asdl_seq* a;
751 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100752 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100753 )
754 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700755 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100756 _res = Interactive ( a , p -> arena );
757 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100758 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100760 return NULL;
761 }
762 goto done;
763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700765 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100768 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100769 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700770 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100771 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100772}
773
774// eval: expressions NEWLINE* $
775static mod_ty
776eval_rule(Parser *p)
777{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700778 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100779 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700780 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100781 return NULL;
782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100783 mod_ty _res = NULL;
784 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100785 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700787 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300788 return NULL;
789 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700790 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100791 asdl_seq * _loop0_1_var;
792 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100793 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100794 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100795 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100796 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100797 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100798 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100799 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100800 )
801 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700802 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100803 _res = Expression ( a , p -> arena );
804 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100805 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100807 return NULL;
808 }
809 goto done;
810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100811 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700812 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
813 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100815 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100816 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700817 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100818 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100819}
820
Guido van Rossumc001c092020-04-30 12:12:19 -0700821// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
822static mod_ty
823func_type_rule(Parser *p)
824{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700825 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700826 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700827 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700828 return NULL;
829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100830 mod_ty _res = NULL;
831 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700832 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300833 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700834 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300835 return NULL;
836 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700837 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 +0100838 Token * _literal;
839 Token * _literal_1;
840 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700841 asdl_seq * _loop0_2_var;
842 void *a;
843 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100844 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700845 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100846 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100848 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700849 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100850 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700851 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100852 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100854 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100856 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100858 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700859 )
860 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700861 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 +0100862 _res = FunctionType ( a , b , p -> arena );
863 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700864 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700865 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700866 return NULL;
867 }
868 goto done;
869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100870 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700871 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
872 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100874 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700875 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700876 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100877 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700878}
879
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100880// fstring: star_expressions
881static expr_ty
882fstring_rule(Parser *p)
883{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700884 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700886 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100887 return NULL;
888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100889 expr_ty _res = NULL;
890 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100891 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300892 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700893 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300894 return NULL;
895 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700896 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100897 expr_ty star_expressions_var;
898 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100899 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100900 )
901 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700902 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100903 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100904 goto done;
905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100906 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700907 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
908 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100910 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100911 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700912 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100913 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100914}
915
Guido van Rossumc001c092020-04-30 12:12:19 -0700916// type_expressions:
917// | ','.expression+ ',' '*' expression ',' '**' expression
918// | ','.expression+ ',' '*' expression
919// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700920// | '*' expression ',' '**' expression
921// | '*' expression
922// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700923// | ','.expression+
924static asdl_seq*
925type_expressions_rule(Parser *p)
926{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700927 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700929 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700930 return NULL;
931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100932 asdl_seq* _res = NULL;
933 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700934 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300935 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700936 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300937 return NULL;
938 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700939 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 +0100940 Token * _literal;
941 Token * _literal_1;
942 Token * _literal_2;
943 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700944 asdl_seq * a;
945 expr_ty b;
946 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700947 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100948 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700949 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100950 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700951 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100952 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700953 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100954 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700955 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100956 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700957 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100958 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700959 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100960 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700961 )
962 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700963 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 +0100964 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
965 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700966 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700967 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700968 return NULL;
969 }
970 goto done;
971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100972 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700973 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
974 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700975 }
976 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700978 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300979 return NULL;
980 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700981 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100982 Token * _literal;
983 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -0700984 asdl_seq * a;
985 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -0700986 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100987 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700988 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100989 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700990 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100991 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700992 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100993 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700994 )
995 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700996 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 +0100997 _res = _PyPegen_seq_append_to_end ( p , a , b );
998 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700999 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001000 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001001 return NULL;
1002 }
1003 goto done;
1004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001005 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001006 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1007 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001008 }
1009 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001011 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001012 return NULL;
1013 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001014 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001015 Token * _literal;
1016 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001017 asdl_seq * a;
1018 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001019 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001020 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001021 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001022 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001023 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001024 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001025 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001026 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001027 )
1028 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001029 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 +01001030 _res = _PyPegen_seq_append_to_end ( p , a , b );
1031 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001032 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001033 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001034 return NULL;
1035 }
1036 goto done;
1037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001039 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001041 }
Shantanu603d3542020-05-03 22:08:14 -07001042 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001045 return NULL;
1046 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001047 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001048 Token * _literal;
1049 Token * _literal_1;
1050 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001051 expr_ty a;
1052 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001053 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001054 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001055 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001056 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001057 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001058 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001059 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001060 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001062 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001063 )
1064 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001065 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 +01001066 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1067 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001068 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001069 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001070 return NULL;
1071 }
1072 goto done;
1073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001074 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001075 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1076 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001077 }
1078 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001080 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001081 return NULL;
1082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001083 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001084 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001085 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001086 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001087 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001088 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001089 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001090 )
1091 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001092 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001093 _res = _PyPegen_singleton_seq ( p , a );
1094 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001095 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001096 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001097 return NULL;
1098 }
1099 goto done;
1100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001101 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001102 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001104 }
1105 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001108 return NULL;
1109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001110 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001111 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001112 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001113 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001114 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001115 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001116 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001117 )
1118 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001119 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001120 _res = _PyPegen_singleton_seq ( p , a );
1121 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001122 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001123 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001124 return NULL;
1125 }
1126 goto done;
1127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001128 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001129 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001131 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001132 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001135 return NULL;
1136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001137 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001138 asdl_seq * _gather_9_var;
1139 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001140 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001141 )
1142 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001143 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001144 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001145 goto done;
1146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001147 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001148 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001151 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001152 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001153 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001154 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001155}
1156
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001157// statements: statement+
1158static asdl_seq*
1159statements_rule(Parser *p)
1160{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001161 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001163 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001164 return NULL;
1165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001166 asdl_seq* _res = NULL;
1167 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001168 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001169 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001170 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001171 return NULL;
1172 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001173 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001174 asdl_seq * a;
1175 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001176 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001177 )
1178 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001179 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001180 _res = _PyPegen_seq_flatten ( p , a );
1181 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001182 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001183 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001184 return NULL;
1185 }
1186 goto done;
1187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001188 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001189 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001192 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001193 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001194 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001195 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001196}
1197
1198// statement: compound_stmt | simple_stmt
1199static asdl_seq*
1200statement_rule(Parser *p)
1201{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001202 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001204 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001205 return NULL;
1206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001207 asdl_seq* _res = NULL;
1208 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001209 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001211 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001212 return NULL;
1213 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001214 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001215 stmt_ty a;
1216 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001217 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001218 )
1219 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001220 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001221 _res = _PyPegen_singleton_seq ( p , a );
1222 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001223 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001225 return NULL;
1226 }
1227 goto done;
1228 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001229 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001230 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1231 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001232 }
1233 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001234 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001235 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001236 return NULL;
1237 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001238 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001239 asdl_seq* simple_stmt_var;
1240 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001241 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001242 )
1243 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001244 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001245 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001246 goto done;
1247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001248 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001249 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001252 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001253 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001254 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001255 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001256}
1257
1258// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1259static asdl_seq*
1260statement_newline_rule(Parser *p)
1261{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001262 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001265 return NULL;
1266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001267 asdl_seq* _res = NULL;
1268 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001269 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1270 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001272 return NULL;
1273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001274 int _start_lineno = p->tokens[_mark]->lineno;
1275 UNUSED(_start_lineno); // Only used by EXTRA macro
1276 int _start_col_offset = p->tokens[_mark]->col_offset;
1277 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001278 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001279 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001280 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001281 return NULL;
1282 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001283 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 +01001284 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001285 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001286 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001287 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001288 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001289 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001290 )
1291 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001292 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 +01001293 _res = _PyPegen_singleton_seq ( p , a );
1294 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001295 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001297 return NULL;
1298 }
1299 goto done;
1300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001301 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001302 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001304 }
1305 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001306 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001307 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001308 return NULL;
1309 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001310 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001311 asdl_seq* simple_stmt_var;
1312 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001313 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001314 )
1315 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001316 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 +01001317 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001318 goto done;
1319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001320 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001321 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001323 }
1324 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001327 return NULL;
1328 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001329 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001330 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001331 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001332 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001333 )
1334 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001335 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001336 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1337 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001338 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001339 return NULL;
1340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001341 int _end_lineno = _token->end_lineno;
1342 UNUSED(_end_lineno); // Only used by EXTRA macro
1343 int _end_col_offset = _token->end_col_offset;
1344 UNUSED(_end_col_offset); // Only used by EXTRA macro
1345 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1346 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001347 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001348 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001349 return NULL;
1350 }
1351 goto done;
1352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001353 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001354 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001356 }
1357 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001359 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001360 return NULL;
1361 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001362 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001363 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001364 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001365 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001366 )
1367 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001368 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001369 _res = _PyPegen_interactive_exit ( p );
1370 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001371 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001372 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001373 return NULL;
1374 }
1375 goto done;
1376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001377 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001378 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001381 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001382 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001383 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001384 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001385}
1386
1387// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1388static asdl_seq*
1389simple_stmt_rule(Parser *p)
1390{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001391 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001392 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001394 return NULL;
1395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001396 asdl_seq* _res = NULL;
1397 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001398 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001399 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001400 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001401 return NULL;
1402 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001403 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 +01001404 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001405 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001406 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001407 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001408 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001409 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001410 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001411 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001412 )
1413 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001414 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 +01001415 _res = _PyPegen_singleton_seq ( p , a );
1416 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001417 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001418 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001419 return NULL;
1420 }
1421 goto done;
1422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001423 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001424 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1425 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001426 }
1427 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001428 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001429 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001430 return NULL;
1431 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001432 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 +01001433 void *_opt_var;
1434 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001435 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001436 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001437 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001438 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001439 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001440 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001441 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001442 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001443 )
1444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001445 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 +01001446 _res = a;
1447 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001448 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001450 return NULL;
1451 }
1452 goto done;
1453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001454 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001455 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001458 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001459 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001460 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001461 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001462}
1463
1464// small_stmt:
1465// | assignment
1466// | star_expressions
1467// | &'return' return_stmt
1468// | &('import' | 'from') import_stmt
1469// | &'raise' raise_stmt
1470// | 'pass'
1471// | &'del' del_stmt
1472// | &'yield' yield_stmt
1473// | &'assert' assert_stmt
1474// | 'break'
1475// | 'continue'
1476// | &'global' global_stmt
1477// | &'nonlocal' nonlocal_stmt
1478static stmt_ty
1479small_stmt_rule(Parser *p)
1480{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001481 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001484 return NULL;
1485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001486 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001487 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001489 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001491 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001492 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1493 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001494 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001495 return NULL;
1496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001497 int _start_lineno = p->tokens[_mark]->lineno;
1498 UNUSED(_start_lineno); // Only used by EXTRA macro
1499 int _start_col_offset = p->tokens[_mark]->col_offset;
1500 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001501 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001503 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001504 return NULL;
1505 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001506 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001507 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001508 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001509 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001510 )
1511 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001512 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001513 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001514 goto done;
1515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001516 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001517 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001519 }
1520 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001522 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001523 return NULL;
1524 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001525 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001526 expr_ty e;
1527 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001528 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001529 )
1530 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001531 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 +01001532 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1533 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001534 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001535 return NULL;
1536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001537 int _end_lineno = _token->end_lineno;
1538 UNUSED(_end_lineno); // Only used by EXTRA macro
1539 int _end_col_offset = _token->end_col_offset;
1540 UNUSED(_end_col_offset); // Only used by EXTRA macro
1541 _res = _Py_Expr ( e , EXTRA );
1542 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001543 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001545 return NULL;
1546 }
1547 goto done;
1548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001549 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001550 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1551 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001552 }
1553 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001554 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001555 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001556 return NULL;
1557 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001558 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 +01001559 stmt_ty return_stmt_var;
1560 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001561 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001562 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001563 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001564 )
1565 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001566 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 +01001567 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001568 goto done;
1569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001570 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001571 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001573 }
1574 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001575 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001576 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001577 return NULL;
1578 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001579 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 +01001580 stmt_ty import_stmt_var;
1581 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001582 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001583 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001584 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001585 )
1586 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001587 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 +01001588 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001589 goto done;
1590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001591 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001592 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1593 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001594 }
1595 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001596 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001597 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001598 return NULL;
1599 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001600 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 +01001601 stmt_ty raise_stmt_var;
1602 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001603 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001604 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001605 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001606 )
1607 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001608 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 +01001609 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001610 goto done;
1611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001612 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001613 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001615 }
1616 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001619 return NULL;
1620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001621 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001622 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001623 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001624 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001625 )
1626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001627 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1629 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001631 return NULL;
1632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001633 int _end_lineno = _token->end_lineno;
1634 UNUSED(_end_lineno); // Only used by EXTRA macro
1635 int _end_col_offset = _token->end_col_offset;
1636 UNUSED(_end_col_offset); // Only used by EXTRA macro
1637 _res = _Py_Pass ( EXTRA );
1638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001641 return NULL;
1642 }
1643 goto done;
1644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001646 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001648 }
1649 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001652 return NULL;
1653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001654 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 +01001655 stmt_ty del_stmt_var;
1656 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001657 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001658 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001659 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001660 )
1661 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001662 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 +01001663 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001664 goto done;
1665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001666 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001667 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001669 }
1670 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001671 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001672 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001673 return NULL;
1674 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001675 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 +01001676 stmt_ty yield_stmt_var;
1677 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001678 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001679 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001680 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001681 )
1682 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001683 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 +01001684 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001685 goto done;
1686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001687 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001688 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001690 }
1691 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001692 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001693 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001694 return NULL;
1695 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001696 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 +01001697 stmt_ty assert_stmt_var;
1698 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001699 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001700 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001701 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001702 )
1703 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001704 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 +01001705 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001706 goto done;
1707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001708 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001709 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1710 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001711 }
1712 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001715 return NULL;
1716 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001717 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001718 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001719 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001720 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001721 )
1722 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001723 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001724 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1725 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001726 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001727 return NULL;
1728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001729 int _end_lineno = _token->end_lineno;
1730 UNUSED(_end_lineno); // Only used by EXTRA macro
1731 int _end_col_offset = _token->end_col_offset;
1732 UNUSED(_end_col_offset); // Only used by EXTRA macro
1733 _res = _Py_Break ( EXTRA );
1734 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001735 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001736 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001737 return NULL;
1738 }
1739 goto done;
1740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001741 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001742 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1743 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001744 }
1745 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001746 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001747 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001748 return NULL;
1749 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001750 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001751 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001752 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001753 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001754 )
1755 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001756 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001757 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1758 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001760 return NULL;
1761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001762 int _end_lineno = _token->end_lineno;
1763 UNUSED(_end_lineno); // Only used by EXTRA macro
1764 int _end_col_offset = _token->end_col_offset;
1765 UNUSED(_end_col_offset); // Only used by EXTRA macro
1766 _res = _Py_Continue ( EXTRA );
1767 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001768 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001770 return NULL;
1771 }
1772 goto done;
1773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001774 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001775 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001777 }
1778 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001779 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001780 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001781 return NULL;
1782 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001783 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 +01001784 stmt_ty global_stmt_var;
1785 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001786 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001787 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001788 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001789 )
1790 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001791 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 +01001792 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001793 goto done;
1794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001795 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001796 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1797 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001798 }
1799 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001800 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001801 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001802 return NULL;
1803 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001804 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 +01001805 stmt_ty nonlocal_stmt_var;
1806 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001807 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001808 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001809 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001810 )
1811 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001812 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 +01001813 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001814 goto done;
1815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001816 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001817 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001820 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001821 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001822 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001823 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001824 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001825}
1826
1827// compound_stmt:
1828// | &('def' | '@' | ASYNC) function_def
1829// | &'if' if_stmt
1830// | &('class' | '@') class_def
1831// | &('with' | ASYNC) with_stmt
1832// | &('for' | ASYNC) for_stmt
1833// | &'try' try_stmt
1834// | &'while' while_stmt
1835static stmt_ty
1836compound_stmt_rule(Parser *p)
1837{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001838 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001841 return NULL;
1842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001843 stmt_ty _res = NULL;
1844 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001845 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001848 return NULL;
1849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001850 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 +01001851 stmt_ty function_def_var;
1852 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001853 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001854 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001855 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001856 )
1857 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001858 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 +01001859 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001860 goto done;
1861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001862 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001863 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1864 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001865 }
1866 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001867 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001868 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001869 return NULL;
1870 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001871 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 +01001872 stmt_ty if_stmt_var;
1873 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001874 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001876 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001877 )
1878 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001879 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 +01001880 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001881 goto done;
1882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001884 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001886 }
1887 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001889 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001890 return NULL;
1891 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001892 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 +01001893 stmt_ty class_def_var;
1894 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001895 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001896 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001897 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001898 )
1899 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001900 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 +01001901 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001902 goto done;
1903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001904 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001905 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1906 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001907 }
1908 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001911 return NULL;
1912 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001913 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 +01001914 stmt_ty with_stmt_var;
1915 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001916 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001917 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001918 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001919 )
1920 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001921 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 +01001922 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001923 goto done;
1924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001925 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001926 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1927 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001928 }
1929 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001931 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001932 return NULL;
1933 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001934 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 +01001935 stmt_ty for_stmt_var;
1936 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001937 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001938 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001939 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001940 )
1941 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001942 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 +01001943 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001944 goto done;
1945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001946 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001947 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001949 }
1950 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001951 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001952 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001953 return NULL;
1954 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001955 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 +01001956 stmt_ty try_stmt_var;
1957 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001958 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001959 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001960 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001961 )
1962 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001963 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 +01001964 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001965 goto done;
1966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001967 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001968 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001970 }
1971 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001973 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001974 return NULL;
1975 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001976 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 +01001977 stmt_ty while_stmt_var;
1978 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001979 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001980 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001981 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001982 )
1983 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001984 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 +01001985 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001986 goto done;
1987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001988 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001989 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1990 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001992 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001993 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001994 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001995 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001996}
1997
1998// assignment:
1999// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002000// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Guido van Rossumc001c092020-04-30 12:12:19 -07002001// | ((star_targets '='))+ (yield_expr | star_expressions) TYPE_COMMENT?
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002002// | single_target augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002003// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002004static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002005assignment_rule(Parser *p)
2006{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002007 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002008 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002009 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002010 return NULL;
2011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002012 stmt_ty _res = NULL;
2013 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002014 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2015 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002017 return NULL;
2018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002019 int _start_lineno = p->tokens[_mark]->lineno;
2020 UNUSED(_start_lineno); // Only used by EXTRA macro
2021 int _start_col_offset = p->tokens[_mark]->col_offset;
2022 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002023 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002025 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002026 return NULL;
2027 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002028 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 +01002029 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002030 expr_ty a;
2031 expr_ty b;
2032 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002033 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002034 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002035 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002036 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002037 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002038 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002039 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002040 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002041 )
2042 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002043 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 +01002044 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2045 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002047 return NULL;
2048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002049 int _end_lineno = _token->end_lineno;
2050 UNUSED(_end_lineno); // Only used by EXTRA macro
2051 int _end_col_offset = _token->end_col_offset;
2052 UNUSED(_end_col_offset); // Only used by EXTRA macro
2053 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2054 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002055 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002056 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002057 return NULL;
2058 }
2059 goto done;
2060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002061 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002062 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002064 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002065 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002066 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002067 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002068 return NULL;
2069 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002070 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 +01002071 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002072 void *a;
2073 expr_ty b;
2074 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002075 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002076 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002077 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002078 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002079 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002080 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002081 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002082 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002083 )
2084 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002085 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 +01002086 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2087 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002088 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002089 return NULL;
2090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002091 int _end_lineno = _token->end_lineno;
2092 UNUSED(_end_lineno); // Only used by EXTRA macro
2093 int _end_col_offset = _token->end_col_offset;
2094 UNUSED(_end_col_offset); // Only used by EXTRA macro
2095 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2096 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002097 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002098 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002099 return NULL;
2100 }
2101 goto done;
2102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002103 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002104 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002106 }
Guido van Rossumc001c092020-04-30 12:12:19 -07002107 { // ((star_targets '='))+ (yield_expr | star_expressions) TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002108 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002109 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002110 return NULL;
2111 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002112 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 +01002113 asdl_seq * a;
2114 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002115 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002116 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002117 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002118 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002119 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002120 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002121 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002122 )
2123 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002124 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 +01002125 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2126 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002128 return NULL;
2129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002130 int _end_lineno = _token->end_lineno;
2131 UNUSED(_end_lineno); // Only used by EXTRA macro
2132 int _end_col_offset = _token->end_col_offset;
2133 UNUSED(_end_col_offset); // Only used by EXTRA macro
2134 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2135 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002136 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002137 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002138 return NULL;
2139 }
2140 goto done;
2141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002142 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002143 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002145 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002146 { // single_target augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002147 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002148 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002149 return NULL;
2150 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002151 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "single_target augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002152 expr_ty a;
2153 AugOperator* b;
2154 void *c;
2155 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002156 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002157 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002158 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002159 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002160 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002161 )
2162 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002163 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 +01002164 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2165 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002166 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002167 return NULL;
2168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002169 int _end_lineno = _token->end_lineno;
2170 UNUSED(_end_lineno); // Only used by EXTRA macro
2171 int _end_col_offset = _token->end_col_offset;
2172 UNUSED(_end_col_offset); // Only used by EXTRA macro
2173 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2174 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002175 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002176 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002177 return NULL;
2178 }
2179 goto done;
2180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002181 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002182 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002184 }
2185 { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002187 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002188 return NULL;
2189 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002190 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002191 void *invalid_assignment_var;
2192 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002193 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002194 )
2195 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002196 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002197 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002198 goto done;
2199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002200 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002201 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002204 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002205 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002206 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002207 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002208}
2209
2210// augassign:
2211// | '+='
2212// | '-='
2213// | '*='
2214// | '@='
2215// | '/='
2216// | '%='
2217// | '&='
2218// | '|='
2219// | '^='
2220// | '<<='
2221// | '>>='
2222// | '**='
2223// | '//='
2224static AugOperator*
2225augassign_rule(Parser *p)
2226{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002227 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002228 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002229 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002230 return NULL;
2231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002232 AugOperator* _res = NULL;
2233 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002234 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002235 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002236 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002237 return NULL;
2238 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002239 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002240 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002241 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002242 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002243 )
2244 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002245 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002246 _res = _PyPegen_augoperator ( p , Add );
2247 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002248 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002249 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002250 return NULL;
2251 }
2252 goto done;
2253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002254 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002255 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002257 }
2258 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002260 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002261 return NULL;
2262 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002263 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002264 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002266 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002267 )
2268 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002269 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002270 _res = _PyPegen_augoperator ( p , Sub );
2271 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002272 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002273 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002274 return NULL;
2275 }
2276 goto done;
2277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002278 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002279 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2280 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002281 }
2282 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002283 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002284 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002285 return NULL;
2286 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002287 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002288 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002289 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002290 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002291 )
2292 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002293 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002294 _res = _PyPegen_augoperator ( p , Mult );
2295 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002296 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002298 return NULL;
2299 }
2300 goto done;
2301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002302 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002303 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2304 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002305 }
2306 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002309 return NULL;
2310 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002311 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002312 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002313 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002314 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002315 )
2316 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002317 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002318 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2319 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002320 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002321 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002322 return NULL;
2323 }
2324 goto done;
2325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002326 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002327 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002329 }
2330 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002331 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002332 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002333 return NULL;
2334 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002335 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002336 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002337 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002338 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002339 )
2340 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002341 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002342 _res = _PyPegen_augoperator ( p , Div );
2343 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002344 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002346 return NULL;
2347 }
2348 goto done;
2349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002350 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002351 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002353 }
2354 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002355 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002356 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002357 return NULL;
2358 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002359 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002360 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002361 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002362 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002363 )
2364 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002365 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002366 _res = _PyPegen_augoperator ( p , Mod );
2367 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002368 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002370 return NULL;
2371 }
2372 goto done;
2373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002374 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002375 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002377 }
2378 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002380 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002381 return NULL;
2382 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002383 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002384 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002385 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002386 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002387 )
2388 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002389 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002390 _res = _PyPegen_augoperator ( p , BitAnd );
2391 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002392 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002394 return NULL;
2395 }
2396 goto done;
2397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002398 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002399 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002401 }
2402 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002403 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002404 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002405 return NULL;
2406 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002407 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002408 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002409 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002410 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002411 )
2412 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002413 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002414 _res = _PyPegen_augoperator ( p , BitOr );
2415 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002416 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002417 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002418 return NULL;
2419 }
2420 goto done;
2421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002422 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002423 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002425 }
2426 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002427 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002428 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002429 return NULL;
2430 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002431 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002432 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002433 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002434 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002435 )
2436 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002437 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002438 _res = _PyPegen_augoperator ( p , BitXor );
2439 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002440 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002441 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002442 return NULL;
2443 }
2444 goto done;
2445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002446 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002447 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002449 }
2450 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002451 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002452 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002453 return NULL;
2454 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002455 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002456 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002457 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002458 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002459 )
2460 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002461 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002462 _res = _PyPegen_augoperator ( p , LShift );
2463 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002464 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002465 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002466 return NULL;
2467 }
2468 goto done;
2469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002470 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002471 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2472 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002473 }
2474 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002476 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002477 return NULL;
2478 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002479 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002480 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002481 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002482 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002483 )
2484 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002485 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002486 _res = _PyPegen_augoperator ( p , RShift );
2487 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002488 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002489 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002490 return NULL;
2491 }
2492 goto done;
2493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002494 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002495 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002497 }
2498 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002500 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002501 return NULL;
2502 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002503 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002504 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002505 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002506 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002507 )
2508 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002509 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002510 _res = _PyPegen_augoperator ( p , Pow );
2511 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002512 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002513 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002514 return NULL;
2515 }
2516 goto done;
2517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002518 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002519 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2520 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002521 }
2522 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002524 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002525 return NULL;
2526 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002527 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002528 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002529 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002530 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002531 )
2532 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002533 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002534 _res = _PyPegen_augoperator ( p , FloorDiv );
2535 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002536 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002537 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002538 return NULL;
2539 }
2540 goto done;
2541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002543 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002546 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002547 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002548 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002549 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002550}
2551
2552// global_stmt: 'global' ','.NAME+
2553static stmt_ty
2554global_stmt_rule(Parser *p)
2555{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002556 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002559 return NULL;
2560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002561 stmt_ty _res = NULL;
2562 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002563 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2564 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002565 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002566 return NULL;
2567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002568 int _start_lineno = p->tokens[_mark]->lineno;
2569 UNUSED(_start_lineno); // Only used by EXTRA macro
2570 int _start_col_offset = p->tokens[_mark]->col_offset;
2571 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002572 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002575 return NULL;
2576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002577 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002578 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002579 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002580 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002581 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002582 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002583 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002584 )
2585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002586 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 +01002587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2588 if (_token == NULL) {
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 int _end_lineno = _token->end_lineno;
2593 UNUSED(_end_lineno); // Only used by EXTRA macro
2594 int _end_col_offset = _token->end_col_offset;
2595 UNUSED(_end_col_offset); // Only used by EXTRA macro
2596 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2597 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002600 return NULL;
2601 }
2602 goto done;
2603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002604 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002605 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002608 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002609 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002610 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002611 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002612}
2613
2614// nonlocal_stmt: 'nonlocal' ','.NAME+
2615static stmt_ty
2616nonlocal_stmt_rule(Parser *p)
2617{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002618 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002619 if (p->error_indicator) {
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 stmt_ty _res = NULL;
2624 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002625 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2626 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002627 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002628 return NULL;
2629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002630 int _start_lineno = p->tokens[_mark]->lineno;
2631 UNUSED(_start_lineno); // Only used by EXTRA macro
2632 int _start_col_offset = p->tokens[_mark]->col_offset;
2633 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002634 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002635 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002636 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002637 return NULL;
2638 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002639 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002640 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002641 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002642 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002643 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002644 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002645 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002646 )
2647 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002648 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 +01002649 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2650 if (_token == NULL) {
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 int _end_lineno = _token->end_lineno;
2655 UNUSED(_end_lineno); // Only used by EXTRA macro
2656 int _end_col_offset = _token->end_col_offset;
2657 UNUSED(_end_col_offset); // Only used by EXTRA macro
2658 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2659 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002660 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002662 return NULL;
2663 }
2664 goto done;
2665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002666 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002667 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002669 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002670 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002671 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002672 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002673 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002674}
2675
2676// yield_stmt: yield_expr
2677static stmt_ty
2678yield_stmt_rule(Parser *p)
2679{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002680 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002681 if (p->error_indicator) {
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 stmt_ty _res = NULL;
2686 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002687 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2688 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002689 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002690 return NULL;
2691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002692 int _start_lineno = p->tokens[_mark]->lineno;
2693 UNUSED(_start_lineno); // Only used by EXTRA macro
2694 int _start_col_offset = p->tokens[_mark]->col_offset;
2695 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002696 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002699 return NULL;
2700 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002701 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002702 expr_ty y;
2703 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002704 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002705 )
2706 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002707 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 +01002708 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2709 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002711 return NULL;
2712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002713 int _end_lineno = _token->end_lineno;
2714 UNUSED(_end_lineno); // Only used by EXTRA macro
2715 int _end_col_offset = _token->end_col_offset;
2716 UNUSED(_end_col_offset); // Only used by EXTRA macro
2717 _res = _Py_Expr ( y , EXTRA );
2718 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002719 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 }
2723 goto done;
2724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002725 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002726 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002729 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002730 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002731 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002732 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002733}
2734
2735// assert_stmt: 'assert' expression [',' expression]
2736static stmt_ty
2737assert_stmt_rule(Parser *p)
2738{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002739 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002740 if (p->error_indicator) {
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 stmt_ty _res = NULL;
2745 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002746 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2747 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002748 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002749 return NULL;
2750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002751 int _start_lineno = p->tokens[_mark]->lineno;
2752 UNUSED(_start_lineno); // Only used by EXTRA macro
2753 int _start_col_offset = p->tokens[_mark]->col_offset;
2754 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002755 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002758 return NULL;
2759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002760 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 +01002761 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002762 expr_ty a;
2763 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002764 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002765 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002766 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002767 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002768 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002769 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002770 )
2771 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002772 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 +01002773 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2774 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002776 return NULL;
2777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002778 int _end_lineno = _token->end_lineno;
2779 UNUSED(_end_lineno); // Only used by EXTRA macro
2780 int _end_col_offset = _token->end_col_offset;
2781 UNUSED(_end_col_offset); // Only used by EXTRA macro
2782 _res = _Py_Assert ( a , b , EXTRA );
2783 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002784 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002786 return NULL;
2787 }
2788 goto done;
2789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002790 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002791 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2792 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002794 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002795 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002796 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002797 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002798}
2799
2800// del_stmt: 'del' del_targets
2801static stmt_ty
2802del_stmt_rule(Parser *p)
2803{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002804 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002805 if (p->error_indicator) {
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 stmt_ty _res = NULL;
2810 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002811 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2812 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002814 return NULL;
2815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002816 int _start_lineno = p->tokens[_mark]->lineno;
2817 UNUSED(_start_lineno); // Only used by EXTRA macro
2818 int _start_col_offset = p->tokens[_mark]->col_offset;
2819 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002820 { // 'del' del_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002822 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002823 return NULL;
2824 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002825 D(fprintf(stderr, "%*c> del_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'del' del_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002826 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002827 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002828 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002829 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002830 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002831 (a = del_targets_rule(p)) // del_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002832 )
2833 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002834 D(fprintf(stderr, "%*c+ del_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'del' del_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002835 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2836 if (_token == NULL) {
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 int _end_lineno = _token->end_lineno;
2841 UNUSED(_end_lineno); // Only used by EXTRA macro
2842 int _end_col_offset = _token->end_col_offset;
2843 UNUSED(_end_col_offset); // Only used by EXTRA macro
2844 _res = _Py_Delete ( a , EXTRA );
2845 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002846 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002848 return NULL;
2849 }
2850 goto done;
2851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002852 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002853 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2854 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002856 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002857 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002858 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002859 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002860}
2861
2862// import_stmt: import_name | import_from
2863static stmt_ty
2864import_stmt_rule(Parser *p)
2865{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002866 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002867 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002869 return NULL;
2870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002871 stmt_ty _res = NULL;
2872 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002873 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002876 return NULL;
2877 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002878 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002879 stmt_ty import_name_var;
2880 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002881 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002882 )
2883 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002884 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 +01002885 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002886 goto done;
2887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002888 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002889 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2890 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002891 }
2892 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002894 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002895 return NULL;
2896 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002897 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002898 stmt_ty import_from_var;
2899 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002900 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002901 )
2902 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002903 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 +01002904 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002905 goto done;
2906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002907 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002908 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002911 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002912 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002913 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002914 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002915}
2916
2917// import_name: 'import' dotted_as_names
2918static stmt_ty
2919import_name_rule(Parser *p)
2920{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002921 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002922 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002924 return NULL;
2925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002926 stmt_ty _res = NULL;
2927 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002928 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2929 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002930 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002931 return NULL;
2932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002933 int _start_lineno = p->tokens[_mark]->lineno;
2934 UNUSED(_start_lineno); // Only used by EXTRA macro
2935 int _start_col_offset = p->tokens[_mark]->col_offset;
2936 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002937 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002938 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002939 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002940 return NULL;
2941 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002942 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 +01002943 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002944 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002945 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002946 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002947 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002948 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002949 )
2950 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002951 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 +01002952 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2953 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002955 return NULL;
2956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002957 int _end_lineno = _token->end_lineno;
2958 UNUSED(_end_lineno); // Only used by EXTRA macro
2959 int _end_col_offset = _token->end_col_offset;
2960 UNUSED(_end_col_offset); // Only used by EXTRA macro
2961 _res = _Py_Import ( a , EXTRA );
2962 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002963 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002964 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002965 return NULL;
2966 }
2967 goto done;
2968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002969 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002970 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
2971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002973 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002974 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002975 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002976 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002977}
2978
2979// import_from:
2980// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
2981// | 'from' (('.' | '...'))+ 'import' import_from_targets
2982static stmt_ty
2983import_from_rule(Parser *p)
2984{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002985 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002986 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002987 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002988 return NULL;
2989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002990 stmt_ty _res = NULL;
2991 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002992 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2993 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002994 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002995 return NULL;
2996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002997 int _start_lineno = p->tokens[_mark]->lineno;
2998 UNUSED(_start_lineno); // Only used by EXTRA macro
2999 int _start_col_offset = p->tokens[_mark]->col_offset;
3000 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003001 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003002 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003003 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003004 return NULL;
3005 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003006 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 +01003007 Token * _keyword;
3008 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003009 asdl_seq * a;
3010 expr_ty b;
3011 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003012 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003013 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003015 (a = _loop0_30_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003016 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003017 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003018 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003019 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003020 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003021 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003022 )
3023 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003024 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 +01003025 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3026 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003028 return NULL;
3029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003030 int _end_lineno = _token->end_lineno;
3031 UNUSED(_end_lineno); // Only used by EXTRA macro
3032 int _end_col_offset = _token->end_col_offset;
3033 UNUSED(_end_col_offset); // Only used by EXTRA macro
3034 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3035 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003036 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003038 return NULL;
3039 }
3040 goto done;
3041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003042 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003043 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003045 }
3046 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003049 return NULL;
3050 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003051 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 +01003052 Token * _keyword;
3053 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003054 asdl_seq * a;
3055 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003056 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003057 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003058 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003059 (a = _loop1_31_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003060 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003061 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003062 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003063 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003064 )
3065 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003066 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 +01003067 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3068 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 return NULL;
3071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003072 int _end_lineno = _token->end_lineno;
3073 UNUSED(_end_lineno); // Only used by EXTRA macro
3074 int _end_col_offset = _token->end_col_offset;
3075 UNUSED(_end_col_offset); // Only used by EXTRA macro
3076 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3077 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003078 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003080 return NULL;
3081 }
3082 goto done;
3083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003084 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003085 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3086 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003088 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003089 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003090 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003091 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003092}
3093
Pablo Galindo275d7e12020-05-21 22:04:54 +01003094// import_from_targets:
3095// | '(' import_from_as_names ','? ')'
3096// | import_from_as_names !','
3097// | '*'
3098// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003099static asdl_seq*
3100import_from_targets_rule(Parser *p)
3101{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003102 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003103 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003105 return NULL;
3106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003107 asdl_seq* _res = NULL;
3108 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003109 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003111 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003112 return NULL;
3113 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003114 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 +01003115 Token * _literal;
3116 Token * _literal_1;
3117 void *_opt_var;
3118 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003119 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003120 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003121 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003122 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003123 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003124 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003125 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003126 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003127 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003128 )
3129 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003130 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 +01003131 _res = a;
3132 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003133 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003134 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003135 return NULL;
3136 }
3137 goto done;
3138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003139 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003140 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003142 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003143 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003146 return NULL;
3147 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003148 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 +01003149 asdl_seq* import_from_as_names_var;
3150 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003151 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003152 &&
3153 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003154 )
3155 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003156 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 +01003157 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003158 goto done;
3159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003160 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003161 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003163 }
3164 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003166 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003167 return NULL;
3168 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003169 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003170 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003171 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003172 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003173 )
3174 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003175 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003176 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3177 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003178 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003179 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003180 return NULL;
3181 }
3182 goto done;
3183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003184 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003185 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3186 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003187 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003188 { // invalid_import_from_targets
3189 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003190 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003191 return NULL;
3192 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003193 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 +01003194 void *invalid_import_from_targets_var;
3195 if (
3196 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3197 )
3198 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003199 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 +01003200 _res = invalid_import_from_targets_var;
3201 goto done;
3202 }
3203 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003204 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3205 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003207 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003208 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003209 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003210 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003211}
3212
3213// import_from_as_names: ','.import_from_as_name+
3214static asdl_seq*
3215import_from_as_names_rule(Parser *p)
3216{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003217 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003218 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003219 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003220 return NULL;
3221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003222 asdl_seq* _res = NULL;
3223 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003224 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003226 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003227 return NULL;
3228 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003229 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 +01003230 asdl_seq * a;
3231 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003232 (a = _gather_32_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003233 )
3234 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003235 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 +01003236 _res = a;
3237 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003238 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003240 return NULL;
3241 }
3242 goto done;
3243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003245 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003248 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003249 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003250 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003251 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003252}
3253
3254// import_from_as_name: NAME ['as' NAME]
3255static alias_ty
3256import_from_as_name_rule(Parser *p)
3257{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003258 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003261 return NULL;
3262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003263 alias_ty _res = NULL;
3264 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003265 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003266 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003267 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003268 return NULL;
3269 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003270 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 +01003271 expr_ty a;
3272 void *b;
3273 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003274 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003275 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003276 (b = _tmp_34_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003277 )
3278 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003279 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 +01003280 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3281 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003282 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003283 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003284 return NULL;
3285 }
3286 goto done;
3287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003288 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003289 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003292 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003293 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003294 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003295 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003296}
3297
3298// dotted_as_names: ','.dotted_as_name+
3299static asdl_seq*
3300dotted_as_names_rule(Parser *p)
3301{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003302 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003303 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003305 return NULL;
3306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003307 asdl_seq* _res = NULL;
3308 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003309 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003310 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003311 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003312 return NULL;
3313 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003314 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 +01003315 asdl_seq * a;
3316 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003317 (a = _gather_35_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003318 )
3319 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003320 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 +01003321 _res = a;
3322 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003325 return NULL;
3326 }
3327 goto done;
3328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003329 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003330 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003333 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003334 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003335 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003336 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003337}
3338
3339// dotted_as_name: dotted_name ['as' NAME]
3340static alias_ty
3341dotted_as_name_rule(Parser *p)
3342{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003343 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003346 return NULL;
3347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003348 alias_ty _res = NULL;
3349 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003350 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003352 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003353 return NULL;
3354 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003355 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 +01003356 expr_ty a;
3357 void *b;
3358 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003359 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003360 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003361 (b = _tmp_37_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003362 )
3363 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003364 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 +01003365 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3366 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003367 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003368 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003369 return NULL;
3370 }
3371 goto done;
3372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003373 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003374 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3375 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003377 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003378 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003379 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003380 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003381}
3382
3383// Left-recursive
3384// dotted_name: dotted_name '.' NAME | NAME
3385static expr_ty dotted_name_raw(Parser *);
3386static expr_ty
3387dotted_name_rule(Parser *p)
3388{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003389 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003390 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003391 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3392 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003393 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003395 int _mark = p->mark;
3396 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003397 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003398 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003399 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003400 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003401 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003403 p->mark = _mark;
3404 void *_raw = dotted_name_raw(p);
3405 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003406 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003407 _resmark = p->mark;
3408 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003410 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003411 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003412 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003413}
3414static expr_ty
3415dotted_name_raw(Parser *p)
3416{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003417 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003418 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003420 return NULL;
3421 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003422 expr_ty _res = NULL;
3423 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003424 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003426 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003427 return NULL;
3428 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003429 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 +01003430 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003431 expr_ty a;
3432 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003433 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003434 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003435 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003436 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003437 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003438 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003439 )
3440 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003441 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 +01003442 _res = _PyPegen_join_names_with_dot ( p , a , b );
3443 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003444 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003445 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003446 return NULL;
3447 }
3448 goto done;
3449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003451 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003453 }
3454 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003457 return NULL;
3458 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003459 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003460 expr_ty name_var;
3461 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003462 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003463 )
3464 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003465 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003466 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003467 goto done;
3468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003470 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003473 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003474 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003475 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003476 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003477}
3478
3479// if_stmt:
3480// | 'if' named_expression ':' block elif_stmt
3481// | 'if' named_expression ':' block else_block?
3482static stmt_ty
3483if_stmt_rule(Parser *p)
3484{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003485 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003486 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003488 return NULL;
3489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003490 stmt_ty _res = NULL;
3491 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003492 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3493 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003494 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003495 return NULL;
3496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003497 int _start_lineno = p->tokens[_mark]->lineno;
3498 UNUSED(_start_lineno); // Only used by EXTRA macro
3499 int _start_col_offset = p->tokens[_mark]->col_offset;
3500 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003501 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003503 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003504 return NULL;
3505 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003506 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 +01003507 Token * _keyword;
3508 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003509 expr_ty a;
3510 asdl_seq* b;
3511 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003512 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003513 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003514 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003515 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003516 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003517 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003518 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003519 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003520 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003521 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003522 )
3523 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003524 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 +01003525 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3526 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003527 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003528 return NULL;
3529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003530 int _end_lineno = _token->end_lineno;
3531 UNUSED(_end_lineno); // Only used by EXTRA macro
3532 int _end_col_offset = _token->end_col_offset;
3533 UNUSED(_end_col_offset); // Only used by EXTRA macro
3534 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3535 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003536 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003537 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003538 return NULL;
3539 }
3540 goto done;
3541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003542 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003543 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3544 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003545 }
3546 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003547 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003548 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003549 return NULL;
3550 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003551 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 +01003552 Token * _keyword;
3553 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003554 expr_ty a;
3555 asdl_seq* b;
3556 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003557 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003558 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003559 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003560 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003561 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003562 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003563 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003564 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003565 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003566 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003567 )
3568 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003569 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 +01003570 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3571 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003572 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003573 return NULL;
3574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003575 int _end_lineno = _token->end_lineno;
3576 UNUSED(_end_lineno); // Only used by EXTRA macro
3577 int _end_col_offset = _token->end_col_offset;
3578 UNUSED(_end_col_offset); // Only used by EXTRA macro
3579 _res = _Py_If ( a , b , c , EXTRA );
3580 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003581 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003582 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003583 return NULL;
3584 }
3585 goto done;
3586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003587 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003588 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003591 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003592 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003593 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003594 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003595}
3596
3597// elif_stmt:
3598// | 'elif' named_expression ':' block elif_stmt
3599// | 'elif' named_expression ':' block else_block?
3600static stmt_ty
3601elif_stmt_rule(Parser *p)
3602{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003603 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003604 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003605 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003606 return NULL;
3607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003608 stmt_ty _res = NULL;
3609 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003610 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3611 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003612 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003613 return NULL;
3614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003615 int _start_lineno = p->tokens[_mark]->lineno;
3616 UNUSED(_start_lineno); // Only used by EXTRA macro
3617 int _start_col_offset = p->tokens[_mark]->col_offset;
3618 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003619 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003621 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003622 return NULL;
3623 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003624 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 +01003625 Token * _keyword;
3626 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003627 expr_ty a;
3628 asdl_seq* b;
3629 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003630 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003631 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003632 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003633 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003634 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003635 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003636 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003637 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003638 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003639 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003640 )
3641 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003642 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 +01003643 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3644 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003645 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003646 return NULL;
3647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003648 int _end_lineno = _token->end_lineno;
3649 UNUSED(_end_lineno); // Only used by EXTRA macro
3650 int _end_col_offset = _token->end_col_offset;
3651 UNUSED(_end_col_offset); // Only used by EXTRA macro
3652 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3653 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003654 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003655 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003656 return NULL;
3657 }
3658 goto done;
3659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003660 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003661 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3662 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003663 }
3664 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003666 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003667 return NULL;
3668 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003669 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 +01003670 Token * _keyword;
3671 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003672 expr_ty a;
3673 asdl_seq* b;
3674 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003675 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003676 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003677 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003678 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003679 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003680 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003681 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003682 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003683 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003684 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003685 )
3686 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003687 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 +01003688 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3689 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003691 return NULL;
3692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003693 int _end_lineno = _token->end_lineno;
3694 UNUSED(_end_lineno); // Only used by EXTRA macro
3695 int _end_col_offset = _token->end_col_offset;
3696 UNUSED(_end_col_offset); // Only used by EXTRA macro
3697 _res = _Py_If ( a , b , c , EXTRA );
3698 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003699 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003701 return NULL;
3702 }
3703 goto done;
3704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003705 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003706 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3707 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003709 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003710 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003711 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003712 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003713}
3714
3715// else_block: 'else' ':' block
3716static asdl_seq*
3717else_block_rule(Parser *p)
3718{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003719 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003721 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003722 return NULL;
3723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003724 asdl_seq* _res = NULL;
3725 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003726 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003729 return NULL;
3730 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003731 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003732 Token * _keyword;
3733 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003734 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003735 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003736 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003737 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003738 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003739 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003740 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003741 )
3742 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003743 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 +01003744 _res = b;
3745 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003746 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003747 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003748 return NULL;
3749 }
3750 goto done;
3751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003752 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003753 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3754 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003756 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003757 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003758 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003759 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003760}
3761
3762// while_stmt: 'while' named_expression ':' block else_block?
3763static stmt_ty
3764while_stmt_rule(Parser *p)
3765{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003766 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003768 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003769 return NULL;
3770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003771 stmt_ty _res = NULL;
3772 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003773 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3774 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003776 return NULL;
3777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003778 int _start_lineno = p->tokens[_mark]->lineno;
3779 UNUSED(_start_lineno); // Only used by EXTRA macro
3780 int _start_col_offset = p->tokens[_mark]->col_offset;
3781 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003782 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003783 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003784 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003785 return NULL;
3786 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003787 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 +01003788 Token * _keyword;
3789 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003790 expr_ty a;
3791 asdl_seq* b;
3792 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003793 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003794 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003796 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003797 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003798 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003799 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003800 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003801 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003802 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003803 )
3804 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003805 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 +01003806 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3807 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003809 return NULL;
3810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003811 int _end_lineno = _token->end_lineno;
3812 UNUSED(_end_lineno); // Only used by EXTRA macro
3813 int _end_col_offset = _token->end_col_offset;
3814 UNUSED(_end_col_offset); // Only used by EXTRA macro
3815 _res = _Py_While ( a , b , c , EXTRA );
3816 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003817 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003819 return NULL;
3820 }
3821 goto done;
3822 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003823 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003824 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3825 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003827 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003828 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003830 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003831}
3832
Guido van Rossumc001c092020-04-30 12:12:19 -07003833// for_stmt:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003834// | 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
3835// | ASYNC 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003836static stmt_ty
3837for_stmt_rule(Parser *p)
3838{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003839 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003841 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003842 return NULL;
3843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003844 stmt_ty _res = NULL;
3845 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003846 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3847 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003848 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003849 return NULL;
3850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003851 int _start_lineno = p->tokens[_mark]->lineno;
3852 UNUSED(_start_lineno); // Only used by EXTRA macro
3853 int _start_col_offset = p->tokens[_mark]->col_offset;
3854 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003855 { // 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003856 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003857 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003858 return NULL;
3859 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003860 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003861 Token * _keyword;
3862 Token * _keyword_1;
3863 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003864 asdl_seq* b;
3865 void *el;
3866 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003867 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003868 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003869 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003870 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003871 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003872 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003873 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003874 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003876 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003877 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003878 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003879 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003880 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003881 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003882 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003884 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003885 )
3886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003887 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 +01003888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3889 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003890 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003891 return NULL;
3892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003893 int _end_lineno = _token->end_lineno;
3894 UNUSED(_end_lineno); // Only used by EXTRA macro
3895 int _end_col_offset = _token->end_col_offset;
3896 UNUSED(_end_col_offset); // Only used by EXTRA macro
3897 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3898 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003899 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003900 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003901 return NULL;
3902 }
3903 goto done;
3904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003906 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003908 }
3909 { // ASYNC 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003912 return NULL;
3913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003914 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?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003915 Token * _keyword;
3916 Token * _keyword_1;
3917 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003918 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003919 asdl_seq* b;
3920 void *el;
3921 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003922 expr_ty t;
3923 void *tc;
3924 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003925 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003926 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003927 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003928 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003929 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003930 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003931 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003932 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003933 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003934 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003935 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003936 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003937 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07003938 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003939 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003940 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003941 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003942 )
3943 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003944 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 +01003945 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3946 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003947 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003948 return NULL;
3949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003950 int _end_lineno = _token->end_lineno;
3951 UNUSED(_end_lineno); // Only used by EXTRA macro
3952 int _end_col_offset = _token->end_col_offset;
3953 UNUSED(_end_col_offset); // Only used by EXTRA macro
3954 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
3955 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003958 return NULL;
3959 }
3960 goto done;
3961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003962 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003963 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003966 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003967 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003968 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003969 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003970}
3971
3972// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01003973// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003974// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01003975// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003976// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003977static stmt_ty
3978with_stmt_rule(Parser *p)
3979{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003980 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003983 return NULL;
3984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003985 stmt_ty _res = NULL;
3986 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003987 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3988 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003989 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003990 return NULL;
3991 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003992 int _start_lineno = p->tokens[_mark]->lineno;
3993 UNUSED(_start_lineno); // Only used by EXTRA macro
3994 int _start_col_offset = p->tokens[_mark]->col_offset;
3995 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01003996 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003998 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003999 return NULL;
4000 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004001 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 +01004002 Token * _keyword;
4003 Token * _literal;
4004 Token * _literal_1;
4005 Token * _literal_2;
4006 void *_opt_var;
4007 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004008 asdl_seq * a;
4009 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004010 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004011 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004012 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004013 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004014 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004015 (a = _gather_38_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004016 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004017 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004018 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004019 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004020 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004021 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004022 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004023 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004024 )
4025 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004026 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 +01004027 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4028 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004030 return NULL;
4031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004032 int _end_lineno = _token->end_lineno;
4033 UNUSED(_end_lineno); // Only used by EXTRA macro
4034 int _end_col_offset = _token->end_col_offset;
4035 UNUSED(_end_col_offset); // Only used by EXTRA macro
4036 _res = _Py_With ( a , b , NULL , EXTRA );
4037 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004038 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004039 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004040 return NULL;
4041 }
4042 goto done;
4043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004044 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004045 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004047 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004048 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004050 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004051 return NULL;
4052 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004053 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 +01004054 Token * _keyword;
4055 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004056 asdl_seq * a;
4057 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004058 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004059 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004060 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004062 (a = _gather_40_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004063 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004064 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004065 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004066 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004068 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004069 )
4070 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004071 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 +01004072 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4073 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004074 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004075 return NULL;
4076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004077 int _end_lineno = _token->end_lineno;
4078 UNUSED(_end_lineno); // Only used by EXTRA macro
4079 int _end_col_offset = _token->end_col_offset;
4080 UNUSED(_end_col_offset); // Only used by EXTRA macro
4081 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4082 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004083 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004084 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004085 return NULL;
4086 }
4087 goto done;
4088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004089 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004090 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004092 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004093 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004095 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004096 return NULL;
4097 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004098 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 +01004099 Token * _keyword;
4100 Token * _literal;
4101 Token * _literal_1;
4102 Token * _literal_2;
4103 void *_opt_var;
4104 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004105 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004106 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004107 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004108 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004109 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004110 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004111 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004112 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004113 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004115 (a = _gather_42_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004116 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004117 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004118 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004119 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004120 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004121 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004122 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004123 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004124 )
4125 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004126 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 +01004127 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4128 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004129 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004130 return NULL;
4131 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004132 int _end_lineno = _token->end_lineno;
4133 UNUSED(_end_lineno); // Only used by EXTRA macro
4134 int _end_col_offset = _token->end_col_offset;
4135 UNUSED(_end_col_offset); // Only used by EXTRA macro
4136 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4137 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004138 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004139 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004140 return NULL;
4141 }
4142 goto done;
4143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004144 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004145 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004147 }
4148 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004150 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004151 return NULL;
4152 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004153 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 +01004154 Token * _keyword;
4155 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004156 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004157 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004158 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004159 void *tc;
4160 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004161 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004162 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004163 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004164 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004165 (a = _gather_44_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004166 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004167 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004168 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004169 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004170 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004171 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004172 )
4173 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004174 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 +01004175 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4176 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004177 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004178 return NULL;
4179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004180 int _end_lineno = _token->end_lineno;
4181 UNUSED(_end_lineno); // Only used by EXTRA macro
4182 int _end_col_offset = _token->end_col_offset;
4183 UNUSED(_end_col_offset); // Only used by EXTRA macro
4184 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4185 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004186 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004188 return NULL;
4189 }
4190 goto done;
4191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004192 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004193 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004196 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004197 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004198 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004199 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004200}
4201
4202// with_item: expression ['as' target]
4203static withitem_ty
4204with_item_rule(Parser *p)
4205{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004206 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004208 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004209 return NULL;
4210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004211 withitem_ty _res = NULL;
4212 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004213 { // expression ['as' target]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004215 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004216 return NULL;
4217 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004218 D(fprintf(stderr, "%*c> with_item[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' target]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004219 expr_ty e;
4220 void *o;
4221 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004222 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004223 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004224 (o = _tmp_46_rule(p), 1) // ['as' target]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004225 )
4226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004227 D(fprintf(stderr, "%*c+ with_item[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' target]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004228 _res = _Py_withitem ( e , o , p -> arena );
4229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004232 return NULL;
4233 }
4234 goto done;
4235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004237 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' target]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004240 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004241 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004242 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004243 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004244}
4245
4246// try_stmt:
4247// | 'try' ':' block finally_block
4248// | 'try' ':' block except_block+ else_block? finally_block?
4249static stmt_ty
4250try_stmt_rule(Parser *p)
4251{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004252 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004254 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004255 return NULL;
4256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004257 stmt_ty _res = NULL;
4258 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004259 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4260 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004261 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004262 return NULL;
4263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004264 int _start_lineno = p->tokens[_mark]->lineno;
4265 UNUSED(_start_lineno); // Only used by EXTRA macro
4266 int _start_col_offset = p->tokens[_mark]->col_offset;
4267 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004268 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004270 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004271 return NULL;
4272 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004273 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 +01004274 Token * _keyword;
4275 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004276 asdl_seq* b;
4277 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004278 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004279 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004280 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004281 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004282 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004283 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004284 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004285 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004286 )
4287 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004288 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 +01004289 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4290 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004292 return NULL;
4293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004294 int _end_lineno = _token->end_lineno;
4295 UNUSED(_end_lineno); // Only used by EXTRA macro
4296 int _end_col_offset = _token->end_col_offset;
4297 UNUSED(_end_col_offset); // Only used by EXTRA macro
4298 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4299 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004300 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004301 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004302 return NULL;
4303 }
4304 goto done;
4305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004307 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004309 }
4310 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004313 return NULL;
4314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004315 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 +01004316 Token * _keyword;
4317 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004318 asdl_seq* b;
4319 void *el;
4320 asdl_seq * ex;
4321 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004322 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004323 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004324 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004325 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004326 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004327 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004328 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004329 (ex = _loop1_47_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004330 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004331 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004332 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004333 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004334 )
4335 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004336 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 +01004337 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4338 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004340 return NULL;
4341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004342 int _end_lineno = _token->end_lineno;
4343 UNUSED(_end_lineno); // Only used by EXTRA macro
4344 int _end_col_offset = _token->end_col_offset;
4345 UNUSED(_end_col_offset); // Only used by EXTRA macro
4346 _res = _Py_Try ( b , ex , el , f , EXTRA );
4347 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004348 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004349 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004350 return NULL;
4351 }
4352 goto done;
4353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004354 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004355 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004358 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004359 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004360 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004361 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004362}
4363
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004364// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004365static excepthandler_ty
4366except_block_rule(Parser *p)
4367{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004368 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004369 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004371 return NULL;
4372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004373 excepthandler_ty _res = NULL;
4374 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004375 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004378 return NULL;
4379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004380 int _start_lineno = p->tokens[_mark]->lineno;
4381 UNUSED(_start_lineno); // Only used by EXTRA macro
4382 int _start_col_offset = p->tokens[_mark]->col_offset;
4383 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004384 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004386 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004387 return NULL;
4388 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004389 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 +01004390 Token * _keyword;
4391 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004392 asdl_seq* b;
4393 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004394 void *t;
4395 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004396 (_keyword = _PyPegen_expect_token(p, 520)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004397 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004398 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004399 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004400 (t = _tmp_48_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004401 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004402 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004403 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004404 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004405 )
4406 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004407 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 +01004408 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4409 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004411 return NULL;
4412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004413 int _end_lineno = _token->end_lineno;
4414 UNUSED(_end_lineno); // Only used by EXTRA macro
4415 int _end_col_offset = _token->end_col_offset;
4416 UNUSED(_end_col_offset); // Only used by EXTRA macro
4417 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4418 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004419 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004420 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004421 return NULL;
4422 }
4423 goto done;
4424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004426 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004428 }
4429 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004432 return NULL;
4433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004434 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004435 Token * _keyword;
4436 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004437 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004438 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004439 (_keyword = _PyPegen_expect_token(p, 520)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004440 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004441 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004442 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004443 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004444 )
4445 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004446 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 +01004447 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4448 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004450 return NULL;
4451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004452 int _end_lineno = _token->end_lineno;
4453 UNUSED(_end_lineno); // Only used by EXTRA macro
4454 int _end_col_offset = _token->end_col_offset;
4455 UNUSED(_end_col_offset); // Only used by EXTRA macro
4456 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4457 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004458 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004460 return NULL;
4461 }
4462 goto done;
4463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004464 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004465 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004468 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004469 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004470 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004471 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004472}
4473
4474// finally_block: 'finally' ':' block
4475static asdl_seq*
4476finally_block_rule(Parser *p)
4477{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004478 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004480 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004481 return NULL;
4482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004483 asdl_seq* _res = NULL;
4484 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004485 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004486 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004487 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004488 return NULL;
4489 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004490 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004491 Token * _keyword;
4492 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004493 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004494 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004495 (_keyword = _PyPegen_expect_token(p, 521)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004496 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004497 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004498 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004499 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004500 )
4501 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004502 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 +01004503 _res = a;
4504 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004505 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004506 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004507 return NULL;
4508 }
4509 goto done;
4510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004511 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004512 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4513 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004515 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004516 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004517 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004518 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004519}
4520
4521// return_stmt: 'return' star_expressions?
4522static stmt_ty
4523return_stmt_rule(Parser *p)
4524{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004525 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004527 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004528 return NULL;
4529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004530 stmt_ty _res = NULL;
4531 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004532 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4533 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004534 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004535 return NULL;
4536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004537 int _start_lineno = p->tokens[_mark]->lineno;
4538 UNUSED(_start_lineno); // Only used by EXTRA macro
4539 int _start_col_offset = p->tokens[_mark]->col_offset;
4540 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004541 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004542 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004543 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004544 return NULL;
4545 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004546 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 +01004547 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004548 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004549 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004550 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004551 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004552 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004553 )
4554 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004555 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 +01004556 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4557 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004558 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004559 return NULL;
4560 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004561 int _end_lineno = _token->end_lineno;
4562 UNUSED(_end_lineno); // Only used by EXTRA macro
4563 int _end_col_offset = _token->end_col_offset;
4564 UNUSED(_end_col_offset); // Only used by EXTRA macro
4565 _res = _Py_Return ( a , EXTRA );
4566 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004567 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004568 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004569 return NULL;
4570 }
4571 goto done;
4572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004573 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004574 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4575 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004577 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004578 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004579 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004580 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004581}
4582
4583// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4584static stmt_ty
4585raise_stmt_rule(Parser *p)
4586{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004587 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004588 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004590 return NULL;
4591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004592 stmt_ty _res = NULL;
4593 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004594 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004597 return NULL;
4598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004599 int _start_lineno = p->tokens[_mark]->lineno;
4600 UNUSED(_start_lineno); // Only used by EXTRA macro
4601 int _start_col_offset = p->tokens[_mark]->col_offset;
4602 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004603 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004604 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004605 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004606 return NULL;
4607 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004608 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 +01004609 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004610 expr_ty a;
4611 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004612 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004613 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004614 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004615 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004616 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004617 (b = _tmp_49_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004618 )
4619 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004620 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 +01004621 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4622 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004623 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004624 return NULL;
4625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004626 int _end_lineno = _token->end_lineno;
4627 UNUSED(_end_lineno); // Only used by EXTRA macro
4628 int _end_col_offset = _token->end_col_offset;
4629 UNUSED(_end_col_offset); // Only used by EXTRA macro
4630 _res = _Py_Raise ( a , b , EXTRA );
4631 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004633 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004634 return NULL;
4635 }
4636 goto done;
4637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004638 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004639 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4640 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004641 }
4642 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004644 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004645 return NULL;
4646 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004647 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004648 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004649 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004650 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004651 )
4652 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004653 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4655 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004657 return NULL;
4658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004659 int _end_lineno = _token->end_lineno;
4660 UNUSED(_end_lineno); // Only used by EXTRA macro
4661 int _end_col_offset = _token->end_col_offset;
4662 UNUSED(_end_col_offset); // Only used by EXTRA macro
4663 _res = _Py_Raise ( NULL , NULL , EXTRA );
4664 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004665 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004667 return NULL;
4668 }
4669 goto done;
4670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004671 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004672 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004675 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004676 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004677 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004678 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004679}
4680
4681// function_def: decorators function_def_raw | function_def_raw
4682static stmt_ty
4683function_def_rule(Parser *p)
4684{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004685 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004686 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004687 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004688 return NULL;
4689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004690 stmt_ty _res = NULL;
4691 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004692 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004694 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004695 return NULL;
4696 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004697 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 +01004698 asdl_seq* d;
4699 stmt_ty f;
4700 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004701 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004702 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004703 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004704 )
4705 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004706 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 +01004707 _res = _PyPegen_function_def_decorators ( p , d , f );
4708 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004711 return NULL;
4712 }
4713 goto done;
4714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004716 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004718 }
4719 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004722 return NULL;
4723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004724 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 +01004725 stmt_ty function_def_raw_var;
4726 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004727 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004728 )
4729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004730 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 +01004731 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004732 goto done;
4733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004735 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004742}
4743
Guido van Rossumc001c092020-04-30 12:12:19 -07004744// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004745// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4746// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004747static stmt_ty
4748function_def_raw_rule(Parser *p)
4749{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004750 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004752 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004753 return NULL;
4754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004755 stmt_ty _res = NULL;
4756 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004757 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4758 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004760 return NULL;
4761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004762 int _start_lineno = p->tokens[_mark]->lineno;
4763 UNUSED(_start_lineno); // Only used by EXTRA macro
4764 int _start_col_offset = p->tokens[_mark]->col_offset;
4765 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004766 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004769 return NULL;
4770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004771 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 +01004772 Token * _keyword;
4773 Token * _literal;
4774 Token * _literal_1;
4775 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004776 void *a;
4777 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004778 expr_ty n;
4779 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004780 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004781 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004782 (_keyword = _PyPegen_expect_token(p, 522)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004783 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004784 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004785 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004786 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004787 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004788 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004789 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004790 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004791 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004792 (a = _tmp_50_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004793 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004794 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004796 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004798 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004799 )
4800 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004801 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 +01004802 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4803 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004805 return NULL;
4806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004807 int _end_lineno = _token->end_lineno;
4808 UNUSED(_end_lineno); // Only used by EXTRA macro
4809 int _end_col_offset = _token->end_col_offset;
4810 UNUSED(_end_col_offset); // Only used by EXTRA macro
4811 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4812 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004813 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004814 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004815 return NULL;
4816 }
4817 goto done;
4818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004819 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004820 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4821 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004822 }
4823 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004824 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004825 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004826 return NULL;
4827 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004828 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 +01004829 Token * _keyword;
4830 Token * _literal;
4831 Token * _literal_1;
4832 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004833 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004834 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004835 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004836 expr_ty n;
4837 void *params;
4838 void *tc;
4839 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004840 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004841 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004842 (_keyword = _PyPegen_expect_token(p, 522)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004843 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004844 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004845 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004846 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004847 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004848 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004849 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004850 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004852 (a = _tmp_51_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004853 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004854 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004856 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004857 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004858 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004859 )
4860 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004861 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 +01004862 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4863 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004864 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004865 return NULL;
4866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004867 int _end_lineno = _token->end_lineno;
4868 UNUSED(_end_lineno); // Only used by EXTRA macro
4869 int _end_col_offset = _token->end_col_offset;
4870 UNUSED(_end_col_offset); // Only used by EXTRA macro
4871 _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 ) );
4872 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004873 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004875 return NULL;
4876 }
4877 goto done;
4878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004879 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004880 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4881 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004883 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004884 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004885 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004886 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004887}
4888
Guido van Rossumc001c092020-04-30 12:12:19 -07004889// func_type_comment:
4890// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
4891// | invalid_double_type_comments
4892// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01004893static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07004894func_type_comment_rule(Parser *p)
4895{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004896 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07004897 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004898 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07004899 return NULL;
4900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004901 Token* _res = NULL;
4902 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07004903 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004905 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004906 return NULL;
4907 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004908 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 +01004909 Token * newline_var;
4910 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07004911 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004912 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07004913 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004914 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07004915 &&
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004916 _PyPegen_lookahead(1, _tmp_52_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07004917 )
4918 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004919 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 +01004920 _res = t;
4921 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07004922 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004923 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07004924 return NULL;
4925 }
4926 goto done;
4927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004928 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004929 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
4930 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07004931 }
4932 { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004933 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004934 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004935 return NULL;
4936 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004937 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 -07004938 void *invalid_double_type_comments_var;
4939 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004940 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07004941 )
4942 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004943 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 +01004944 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07004945 goto done;
4946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004947 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004948 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
4949 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07004950 }
4951 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004952 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004953 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004954 return NULL;
4955 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004956 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 +01004957 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07004958 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004959 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07004960 )
4961 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004962 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 +01004963 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07004964 goto done;
4965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004966 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004967 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
4968 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07004969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004970 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07004971 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004972 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004973 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07004974}
4975
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004976// params: invalid_parameters | parameters
4977static arguments_ty
4978params_rule(Parser *p)
4979{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004980 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004983 return NULL;
4984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004985 arguments_ty _res = NULL;
4986 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004987 { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004989 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004990 return NULL;
4991 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004992 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004993 void *invalid_parameters_var;
4994 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004995 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004996 )
4997 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004998 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004999 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005000 goto done;
5001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005002 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005003 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5004 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005005 }
5006 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005007 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005008 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005009 return NULL;
5010 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005011 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005012 arguments_ty parameters_var;
5013 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005014 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005015 )
5016 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005017 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005018 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005019 goto done;
5020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005021 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005022 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005025 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005026 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005027 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005028 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005029}
5030
5031// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005032// | slash_no_default param_no_default* param_with_default* star_etc?
5033// | slash_with_default param_with_default* star_etc?
5034// | param_no_default+ param_with_default* star_etc?
5035// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005036// | star_etc
5037static arguments_ty
5038parameters_rule(Parser *p)
5039{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005040 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005042 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005043 return NULL;
5044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005045 arguments_ty _res = NULL;
5046 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005047 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005049 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005050 return NULL;
5051 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005052 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 +01005053 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005054 asdl_seq * b;
5055 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005056 void *d;
5057 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005058 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005059 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005060 (b = _loop0_53_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005062 (c = _loop0_54_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005063 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005064 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005065 )
5066 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005067 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 +01005068 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5069 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005070 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005071 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005072 return NULL;
5073 }
5074 goto done;
5075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005076 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005077 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5078 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 +01005079 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005080 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005082 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005083 return NULL;
5084 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005085 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 +01005086 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005087 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005088 void *c;
5089 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005090 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005091 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005092 (b = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005093 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005094 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005095 )
5096 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005097 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 +01005098 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5099 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005100 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005101 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005102 return NULL;
5103 }
5104 goto done;
5105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005106 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005107 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005109 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005110 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005112 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005113 return NULL;
5114 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005115 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 -07005116 asdl_seq * a;
5117 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005118 void *c;
5119 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005120 (a = _loop1_56_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005121 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005122 (b = _loop0_57_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005123 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005124 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005125 )
5126 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005127 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 +01005128 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005132 return NULL;
5133 }
5134 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 parameters[%d-%d]: %s failed!\n", p->level, ' ',
5138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005139 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005140 { // param_with_default+ star_etc?
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> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+ star_etc?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005146 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005147 void *b;
5148 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005149 (a = _loop1_58_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005150 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005151 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005152 )
5153 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005154 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 +01005155 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5156 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005157 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005158 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005159 return NULL;
5160 }
5161 goto done;
5162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005163 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005164 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005166 }
5167 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005170 return NULL;
5171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005172 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005173 StarEtc* a;
5174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005175 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005176 )
5177 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005178 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005179 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5180 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005181 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005182 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005183 return NULL;
5184 }
5185 goto done;
5186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005187 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005188 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005191 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005192 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005193 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005194 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005195}
5196
Guido van Rossumc001c092020-04-30 12:12:19 -07005197// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005198static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005199slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005200{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005201 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005202 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005203 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005204 return NULL;
5205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005206 asdl_seq* _res = NULL;
5207 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005208 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005210 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005211 return NULL;
5212 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005213 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 +01005214 Token * _literal;
5215 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005216 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005217 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005218 (a = _loop1_59_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005219 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005220 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005221 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005222 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005223 )
5224 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005225 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 +01005226 _res = a;
5227 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005228 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005229 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005230 return NULL;
5231 }
5232 goto done;
5233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005235 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005237 }
5238 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005239 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005240 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005241 return NULL;
5242 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005243 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 +01005244 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005245 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005246 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005247 (a = _loop1_60_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005248 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005249 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005250 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005251 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005252 )
5253 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005254 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 +01005255 _res = a;
5256 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005257 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005258 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005259 return NULL;
5260 }
5261 goto done;
5262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005263 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005264 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5265 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005267 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005268 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005269 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005270 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005271}
5272
Guido van Rossumc001c092020-04-30 12:12:19 -07005273// slash_with_default:
5274// | param_no_default* param_with_default+ '/' ','
5275// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005276static SlashWithDefault*
5277slash_with_default_rule(Parser *p)
5278{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005279 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005282 return NULL;
5283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005284 SlashWithDefault* _res = NULL;
5285 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005286 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005288 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005289 return NULL;
5290 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005291 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 +01005292 Token * _literal;
5293 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005294 asdl_seq * a;
5295 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005296 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005297 (a = _loop0_61_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005298 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005299 (b = _loop1_62_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005300 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005301 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005302 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005303 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005304 )
5305 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005306 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 +01005307 _res = _PyPegen_slash_with_default ( p , a , b );
5308 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005309 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005310 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005311 return NULL;
5312 }
5313 goto done;
5314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005315 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005316 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005318 }
5319 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005321 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005322 return NULL;
5323 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005324 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 +01005325 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005326 asdl_seq * a;
5327 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005328 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005329 (a = _loop0_63_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005330 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005331 (b = _loop1_64_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005332 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005333 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005334 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005335 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005336 )
5337 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005338 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 +01005339 _res = _PyPegen_slash_with_default ( p , a , b );
5340 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005341 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005342 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005343 return NULL;
5344 }
5345 goto done;
5346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005347 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005348 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5349 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005350 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005351 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005352 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005353 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005354 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005355}
5356
5357// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005358// | '*' param_no_default param_maybe_default* kwds?
5359// | '*' ',' param_maybe_default+ kwds?
5360// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005361// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005362static StarEtc*
5363star_etc_rule(Parser *p)
5364{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005365 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005368 return NULL;
5369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005370 StarEtc* _res = NULL;
5371 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005372 { // '*' param_no_default param_maybe_default* kwds?
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> 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 +01005378 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005379 arg_ty a;
5380 asdl_seq * b;
5381 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005382 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005383 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005384 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005385 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005386 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005387 (b = _loop0_65_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005388 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005389 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005390 )
5391 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005392 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 +01005393 _res = _PyPegen_star_etc ( p , a , b , c );
5394 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005395 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005396 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005397 return NULL;
5398 }
5399 goto done;
5400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005401 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005402 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005404 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005405 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005406 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005407 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005408 return NULL;
5409 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005410 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 +01005411 Token * _literal;
5412 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005413 asdl_seq * b;
5414 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005415 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005416 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005417 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005418 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005419 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005420 (b = _loop1_66_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005422 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005423 )
5424 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005425 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 +01005426 _res = _PyPegen_star_etc ( p , NULL , b , c );
5427 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005428 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005429 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005430 return NULL;
5431 }
5432 goto done;
5433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005434 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005435 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5436 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005437 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005438 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005439 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005440 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005441 return NULL;
5442 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005443 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005444 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005445 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005446 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005447 )
5448 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005449 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005450 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5451 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005452 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005454 return NULL;
5455 }
5456 goto done;
5457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005458 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005459 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005461 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005462 { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005463 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005464 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005465 return NULL;
5466 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005467 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005468 void *invalid_star_etc_var;
5469 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005470 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005471 )
5472 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005473 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 +01005474 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005475 goto done;
5476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005477 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005478 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005481 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005482 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005483 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005484 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005485}
5486
Guido van Rossumc001c092020-04-30 12:12:19 -07005487// kwds: '**' param_no_default
5488static arg_ty
5489kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005490{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005491 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005492 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005493 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005494 return NULL;
5495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005496 arg_ty _res = NULL;
5497 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005498 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005499 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005500 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005501 return NULL;
5502 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005503 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005504 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005505 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005506 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005507 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005508 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005509 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005510 )
5511 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005512 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 +01005513 _res = a;
5514 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005516 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005517 return NULL;
5518 }
5519 goto done;
5520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005521 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005522 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005525 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005526 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005527 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005528 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005529}
5530
5531// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5532static arg_ty
5533param_no_default_rule(Parser *p)
5534{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005535 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005536 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005537 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005538 return NULL;
5539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005540 arg_ty _res = NULL;
5541 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005542 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005544 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005545 return NULL;
5546 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005547 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 +01005548 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005549 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005550 void *tc;
5551 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005552 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005553 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005554 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005555 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005556 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005557 )
5558 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005559 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 +01005560 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
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 param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5570 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005571 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005572 { // param TYPE_COMMENT? &')'
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> param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param TYPE_COMMENT? &')'"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005578 arg_ty a;
5579 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005581 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005582 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005583 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005585 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005586 )
5587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005588 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 +01005589 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5590 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005591 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005592 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005593 return NULL;
5594 }
5595 goto done;
5596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005597 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005598 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005601 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005602 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005603 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005604 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005605}
5606
Guido van Rossumc001c092020-04-30 12:12:19 -07005607// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005608static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005609param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005610{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005611 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005613 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005614 return NULL;
5615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005616 NameDefaultPair* _res = NULL;
5617 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005618 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005621 return NULL;
5622 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005623 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 +01005624 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005625 arg_ty a;
5626 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005627 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005628 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005629 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005630 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005631 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005632 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005633 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005634 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005635 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005636 )
5637 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005638 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 +01005639 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5640 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005642 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005643 return NULL;
5644 }
5645 goto done;
5646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005648 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005650 }
5651 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005652 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005653 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005654 return NULL;
5655 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005656 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 -07005657 arg_ty a;
5658 expr_ty c;
5659 void *tc;
5660 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005661 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005662 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005663 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005664 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005665 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005666 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005667 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005668 )
5669 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005670 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 +01005671 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5672 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005673 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005675 return NULL;
5676 }
5677 goto done;
5678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005680 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005683 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005684 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005685 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005686 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005687}
5688
Guido van Rossumc001c092020-04-30 12:12:19 -07005689// param_maybe_default:
5690// | param default? ',' TYPE_COMMENT?
5691// | param default? TYPE_COMMENT? &')'
5692static NameDefaultPair*
5693param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005694{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005695 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005696 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005698 return NULL;
5699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005700 NameDefaultPair* _res = NULL;
5701 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005702 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005704 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005705 return NULL;
5706 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005707 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 +01005708 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005709 arg_ty a;
5710 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005711 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005712 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005713 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005714 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005715 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005716 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005717 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005718 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005719 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005720 )
5721 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005722 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 +01005723 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5724 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005725 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005726 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005727 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_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005734 }
5735 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005736 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005737 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005738 return NULL;
5739 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005740 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 -07005741 arg_ty a;
5742 void *c;
5743 void *tc;
5744 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005745 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005746 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005747 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005748 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005749 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005750 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005751 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005752 )
5753 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005754 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 +01005755 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5756 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005757 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005759 return NULL;
5760 }
5761 goto done;
5762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005764 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005766 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005767 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005768 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005769 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005770 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005771}
5772
Guido van Rossumc001c092020-04-30 12:12:19 -07005773// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005774static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005775param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005776{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005777 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005778 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005779 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005780 return NULL;
5781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005782 arg_ty _res = NULL;
5783 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005784 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5785 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005786 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005787 return NULL;
5788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005789 int _start_lineno = p->tokens[_mark]->lineno;
5790 UNUSED(_start_lineno); // Only used by EXTRA macro
5791 int _start_col_offset = p->tokens[_mark]->col_offset;
5792 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005793 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005795 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005796 return NULL;
5797 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005798 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005799 expr_ty a;
5800 void *b;
5801 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005802 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005804 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005805 )
5806 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005807 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005808 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5809 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005810 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005811 return NULL;
5812 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005813 int _end_lineno = _token->end_lineno;
5814 UNUSED(_end_lineno); // Only used by EXTRA macro
5815 int _end_col_offset = _token->end_col_offset;
5816 UNUSED(_end_col_offset); // Only used by EXTRA macro
5817 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5818 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005819 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005820 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005821 return NULL;
5822 }
5823 goto done;
5824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005825 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005826 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5827 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005829 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005830 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005831 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005832 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005833}
5834
Guido van Rossumc001c092020-04-30 12:12:19 -07005835// annotation: ':' expression
5836static expr_ty
5837annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005838{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005839 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005840 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005841 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005842 return NULL;
5843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005844 expr_ty _res = NULL;
5845 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005846 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005847 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005848 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005849 return NULL;
5850 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005851 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005852 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005853 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005854 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005855 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005856 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005857 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005858 )
5859 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005860 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005861 _res = a;
5862 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005863 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005865 return NULL;
5866 }
5867 goto done;
5868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005869 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005870 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
5871 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005873 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005874 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005875 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005876 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005877}
5878
Guido van Rossumc001c092020-04-30 12:12:19 -07005879// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005880static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005881default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005882{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005883 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005884 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005885 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005886 return NULL;
5887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005888 expr_ty _res = NULL;
5889 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005890 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005892 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005893 return NULL;
5894 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005895 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005896 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005897 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005898 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005899 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07005900 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005901 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005902 )
5903 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005904 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005905 _res = a;
5906 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005907 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005908 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005909 return NULL;
5910 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005911 goto done;
5912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005914 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
5915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005917 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005918 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005919 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005920 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005921}
5922
5923// decorators: (('@' named_expression NEWLINE))+
5924static asdl_seq*
5925decorators_rule(Parser *p)
5926{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005927 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005928 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005930 return NULL;
5931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005932 asdl_seq* _res = NULL;
5933 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005934 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005935 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005936 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005937 return NULL;
5938 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005939 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005940 asdl_seq * a;
5941 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005942 (a = _loop1_67_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005943 )
5944 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005945 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 +01005946 _res = a;
5947 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005948 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005949 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005950 return NULL;
5951 }
5952 goto done;
5953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005954 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005955 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
5956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005958 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005959 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005960 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005961 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005962}
5963
5964// class_def: decorators class_def_raw | class_def_raw
5965static stmt_ty
5966class_def_rule(Parser *p)
5967{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005968 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005970 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005971 return NULL;
5972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005973 stmt_ty _res = NULL;
5974 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005975 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005977 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005978 return NULL;
5979 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005980 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 +01005981 asdl_seq* a;
5982 stmt_ty b;
5983 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005984 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005985 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005986 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005987 )
5988 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005989 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 +01005990 _res = _PyPegen_class_def_decorators ( p , a , b );
5991 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005992 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005994 return NULL;
5995 }
5996 goto done;
5997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005998 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005999 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006001 }
6002 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006004 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006005 return NULL;
6006 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006007 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 +01006008 stmt_ty class_def_raw_var;
6009 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006010 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006011 )
6012 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006013 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 +01006014 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006015 goto done;
6016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006017 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006018 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006021 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006022 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006023 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006024 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006025}
6026
6027// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6028static stmt_ty
6029class_def_raw_rule(Parser *p)
6030{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006031 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006034 return NULL;
6035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006036 stmt_ty _res = NULL;
6037 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006038 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6039 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006040 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006041 return NULL;
6042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006043 int _start_lineno = p->tokens[_mark]->lineno;
6044 UNUSED(_start_lineno); // Only used by EXTRA macro
6045 int _start_col_offset = p->tokens[_mark]->col_offset;
6046 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006047 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006048 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006049 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006050 return NULL;
6051 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006052 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 +01006053 Token * _keyword;
6054 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006055 expr_ty a;
6056 void *b;
6057 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006058 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006059 (_keyword = _PyPegen_expect_token(p, 523)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006060 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006061 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006062 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006063 (b = _tmp_68_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006064 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006065 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006066 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006067 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006068 )
6069 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006070 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 +01006071 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6072 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006074 return NULL;
6075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006076 int _end_lineno = _token->end_lineno;
6077 UNUSED(_end_lineno); // Only used by EXTRA macro
6078 int _end_col_offset = _token->end_col_offset;
6079 UNUSED(_end_col_offset); // Only used by EXTRA macro
6080 _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 );
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 class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6090 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
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// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6099static asdl_seq*
6100block_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 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006108 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6109 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006110 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006112 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006113 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006116 return NULL;
6117 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006118 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 +01006119 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006120 Token * dedent_var;
6121 Token * indent_var;
6122 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006123 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006124 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006125 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006126 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006127 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006128 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006129 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006130 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006131 )
6132 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006133 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 +01006134 _res = a;
6135 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006136 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006137 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006138 return NULL;
6139 }
6140 goto done;
6141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006142 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006143 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006145 }
6146 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006147 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006148 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006149 return NULL;
6150 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006151 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006152 asdl_seq* simple_stmt_var;
6153 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006154 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006155 )
6156 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006157 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006158 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006159 goto done;
6160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006161 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006162 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006164 }
6165 { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006166 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006167 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006168 return NULL;
6169 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006170 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006171 void *invalid_block_var;
6172 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006173 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006174 )
6175 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006176 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006177 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006178 goto done;
6179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006180 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006181 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6182 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006184 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006185 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006186 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006187 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006188 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006189}
6190
6191// expressions_list: ','.star_expression+ ','?
6192static asdl_seq*
6193expressions_list_rule(Parser *p)
6194{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006195 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006196 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006198 return NULL;
6199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006200 asdl_seq* _res = NULL;
6201 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006202 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006204 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006205 return NULL;
6206 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006207 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006208 void *_opt_var;
6209 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006210 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006211 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006212 (a = _gather_69_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006213 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006214 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006215 )
6216 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006217 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 +01006218 _res = a;
6219 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006220 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006222 return NULL;
6223 }
6224 goto done;
6225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006226 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006227 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006230 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006231 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006232 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006233 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006234}
6235
6236// star_expressions:
6237// | star_expression ((',' star_expression))+ ','?
6238// | star_expression ','
6239// | star_expression
6240static expr_ty
6241star_expressions_rule(Parser *p)
6242{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006243 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006244 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006245 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006246 return NULL;
6247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006248 expr_ty _res = NULL;
6249 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006250 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6251 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006253 return NULL;
6254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006255 int _start_lineno = p->tokens[_mark]->lineno;
6256 UNUSED(_start_lineno); // Only used by EXTRA macro
6257 int _start_col_offset = p->tokens[_mark]->col_offset;
6258 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006259 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006260 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006261 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006262 return NULL;
6263 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006264 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 +01006265 void *_opt_var;
6266 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006267 expr_ty a;
6268 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006269 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006270 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006271 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006272 (b = _loop1_71_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006273 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006274 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006275 )
6276 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006277 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 +01006278 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6279 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006280 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006281 return NULL;
6282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006283 int _end_lineno = _token->end_lineno;
6284 UNUSED(_end_lineno); // Only used by EXTRA macro
6285 int _end_col_offset = _token->end_col_offset;
6286 UNUSED(_end_col_offset); // Only used by EXTRA macro
6287 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6288 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006289 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006291 return NULL;
6292 }
6293 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 star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6297 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006298 }
6299 { // star_expression ','
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> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006305 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006306 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006307 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006308 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006309 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006310 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006311 )
6312 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006313 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 +01006314 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6315 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006316 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 return NULL;
6318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006319 int _end_lineno = _token->end_lineno;
6320 UNUSED(_end_lineno); // Only used by EXTRA macro
6321 int _end_col_offset = _token->end_col_offset;
6322 UNUSED(_end_col_offset); // Only used by EXTRA macro
6323 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6324 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006325 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006326 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006327 return NULL;
6328 }
6329 goto done;
6330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006331 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006332 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006334 }
6335 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006336 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006337 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006338 return NULL;
6339 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006340 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006341 expr_ty star_expression_var;
6342 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006343 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006344 )
6345 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006346 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 +01006347 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006348 goto done;
6349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006350 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006351 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006354 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006355 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006356 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006357 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006358}
6359
6360// star_expression: '*' bitwise_or | expression
6361static expr_ty
6362star_expression_rule(Parser *p)
6363{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006364 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006365 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006366 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006367 return NULL;
6368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006369 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006370 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6371 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006372 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006374 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006375 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006378 return NULL;
6379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006380 int _start_lineno = p->tokens[_mark]->lineno;
6381 UNUSED(_start_lineno); // Only used by EXTRA macro
6382 int _start_col_offset = p->tokens[_mark]->col_offset;
6383 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006384 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006386 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006387 return NULL;
6388 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006389 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006390 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006391 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006392 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006393 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006394 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006395 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006396 )
6397 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006398 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 +01006399 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6400 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006402 return NULL;
6403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006404 int _end_lineno = _token->end_lineno;
6405 UNUSED(_end_lineno); // Only used by EXTRA macro
6406 int _end_col_offset = _token->end_col_offset;
6407 UNUSED(_end_col_offset); // Only used by EXTRA macro
6408 _res = _Py_Starred ( a , Load , EXTRA );
6409 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006410 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006411 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006412 return NULL;
6413 }
6414 goto done;
6415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006416 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006417 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006419 }
6420 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006423 return NULL;
6424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006425 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006426 expr_ty expression_var;
6427 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006428 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006429 )
6430 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006431 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006432 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006433 goto done;
6434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006435 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006436 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006439 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006440 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006441 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006442 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006443 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006444}
6445
6446// star_named_expressions: ','.star_named_expression+ ','?
6447static asdl_seq*
6448star_named_expressions_rule(Parser *p)
6449{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006450 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006451 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006452 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006453 return NULL;
6454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006455 asdl_seq* _res = NULL;
6456 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006457 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006460 return NULL;
6461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006462 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 +01006463 void *_opt_var;
6464 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006465 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006466 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006467 (a = _gather_72_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006468 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006469 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006470 )
6471 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006472 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 +01006473 _res = a;
6474 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006475 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006477 return NULL;
6478 }
6479 goto done;
6480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006481 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006482 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6483 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006485 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006486 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006487 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006488 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006489}
6490
6491// star_named_expression: '*' bitwise_or | named_expression
6492static expr_ty
6493star_named_expression_rule(Parser *p)
6494{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006495 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006496 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006497 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006498 return NULL;
6499 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006500 expr_ty _res = NULL;
6501 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006502 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6503 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006505 return NULL;
6506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006507 int _start_lineno = p->tokens[_mark]->lineno;
6508 UNUSED(_start_lineno); // Only used by EXTRA macro
6509 int _start_col_offset = p->tokens[_mark]->col_offset;
6510 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006511 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006512 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006513 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006514 return NULL;
6515 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006516 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 +01006517 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006518 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006519 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006520 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006521 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006522 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006523 )
6524 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006525 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 +01006526 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6527 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006528 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006529 return NULL;
6530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006531 int _end_lineno = _token->end_lineno;
6532 UNUSED(_end_lineno); // Only used by EXTRA macro
6533 int _end_col_offset = _token->end_col_offset;
6534 UNUSED(_end_col_offset); // Only used by EXTRA macro
6535 _res = _Py_Starred ( a , Load , EXTRA );
6536 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006537 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006539 return NULL;
6540 }
6541 goto done;
6542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006543 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006544 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006546 }
6547 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006548 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006549 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006550 return NULL;
6551 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006552 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 +01006553 expr_ty named_expression_var;
6554 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006555 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006556 )
6557 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006558 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 +01006559 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006560 goto done;
6561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006562 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006563 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6564 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006566 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006567 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006568 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006569 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006570}
6571
6572// named_expression: NAME ':=' expression | expression !':=' | invalid_named_expression
6573static expr_ty
6574named_expression_rule(Parser *p)
6575{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006576 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006578 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006579 return NULL;
6580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006581 expr_ty _res = NULL;
6582 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006583 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6584 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006586 return NULL;
6587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006588 int _start_lineno = p->tokens[_mark]->lineno;
6589 UNUSED(_start_lineno); // Only used by EXTRA macro
6590 int _start_col_offset = p->tokens[_mark]->col_offset;
6591 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006592 { // NAME ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006595 return NULL;
6596 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006597 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006598 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006599 expr_ty a;
6600 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006601 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006602 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006603 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006604 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006605 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006606 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006607 )
6608 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006609 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 +01006610 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6611 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006612 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006613 return NULL;
6614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006615 int _end_lineno = _token->end_lineno;
6616 UNUSED(_end_lineno); // Only used by EXTRA macro
6617 int _end_col_offset = _token->end_col_offset;
6618 UNUSED(_end_col_offset); // Only used by EXTRA macro
6619 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6620 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006621 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006623 return NULL;
6624 }
6625 goto done;
6626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006627 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006628 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6629 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006630 }
6631 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006632 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006633 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006634 return NULL;
6635 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006636 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006637 expr_ty expression_var;
6638 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006639 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006640 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006641 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006642 )
6643 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006644 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006645 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006646 goto done;
6647 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006648 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006649 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6650 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006651 }
6652 { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006653 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006654 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006655 return NULL;
6656 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006657 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 +01006658 void *invalid_named_expression_var;
6659 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006660 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006661 )
6662 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006663 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 +01006664 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006665 goto done;
6666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006667 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006668 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6669 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006671 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006672 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006673 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006674 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006675}
6676
6677// annotated_rhs: yield_expr | star_expressions
6678static expr_ty
6679annotated_rhs_rule(Parser *p)
6680{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006681 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006683 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006684 return NULL;
6685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006686 expr_ty _res = NULL;
6687 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006688 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006689 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006690 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006691 return NULL;
6692 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006693 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006694 expr_ty yield_expr_var;
6695 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006696 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006697 )
6698 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006699 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 +01006700 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006701 goto done;
6702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006703 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006704 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6705 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006706 }
6707 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006709 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006710 return NULL;
6711 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006712 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006713 expr_ty star_expressions_var;
6714 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006715 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006716 )
6717 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006718 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 +01006719 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006720 goto done;
6721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006722 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006723 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006726 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006727 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006728 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006729 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006730}
6731
6732// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6733static expr_ty
6734expressions_rule(Parser *p)
6735{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006736 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006737 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006738 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006739 return NULL;
6740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006741 expr_ty _res = NULL;
6742 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006743 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6744 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006746 return NULL;
6747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006748 int _start_lineno = p->tokens[_mark]->lineno;
6749 UNUSED(_start_lineno); // Only used by EXTRA macro
6750 int _start_col_offset = p->tokens[_mark]->col_offset;
6751 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006752 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006753 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006754 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006755 return NULL;
6756 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006757 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006758 void *_opt_var;
6759 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006760 expr_ty a;
6761 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006762 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006763 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006764 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006765 (b = _loop1_74_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006766 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006767 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006768 )
6769 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006770 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006771 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6772 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006774 return NULL;
6775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006776 int _end_lineno = _token->end_lineno;
6777 UNUSED(_end_lineno); // Only used by EXTRA macro
6778 int _end_col_offset = _token->end_col_offset;
6779 UNUSED(_end_col_offset); // Only used by EXTRA macro
6780 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6781 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006782 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006784 return NULL;
6785 }
6786 goto done;
6787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006788 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006789 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006791 }
6792 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006793 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006794 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006795 return NULL;
6796 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006797 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006798 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006799 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006800 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006801 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006802 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006803 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006804 )
6805 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006806 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006807 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6808 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006809 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006810 return NULL;
6811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006812 int _end_lineno = _token->end_lineno;
6813 UNUSED(_end_lineno); // Only used by EXTRA macro
6814 int _end_col_offset = _token->end_col_offset;
6815 UNUSED(_end_col_offset); // Only used by EXTRA macro
6816 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6817 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006818 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006820 return NULL;
6821 }
6822 goto done;
6823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006825 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006827 }
6828 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006829 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006830 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006831 return NULL;
6832 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006833 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006834 expr_ty expression_var;
6835 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006836 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006837 )
6838 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006839 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006840 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006841 goto done;
6842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006843 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006844 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6845 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006847 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006848 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006849 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006850 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006851}
6852
6853// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6854static expr_ty
6855expression_rule(Parser *p)
6856{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006857 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006860 return NULL;
6861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006862 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006863 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
6864 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006865 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006867 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006868 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006871 return NULL;
6872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006873 int _start_lineno = p->tokens[_mark]->lineno;
6874 UNUSED(_start_lineno); // Only used by EXTRA macro
6875 int _start_col_offset = p->tokens[_mark]->col_offset;
6876 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006877 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006879 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006880 return NULL;
6881 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006882 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 +01006883 Token * _keyword;
6884 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006885 expr_ty a;
6886 expr_ty b;
6887 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006888 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006889 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006890 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006891 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006892 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006893 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006894 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006895 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006896 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006897 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006898 )
6899 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006900 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 +01006901 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6902 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006904 return NULL;
6905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006906 int _end_lineno = _token->end_lineno;
6907 UNUSED(_end_lineno); // Only used by EXTRA macro
6908 int _end_col_offset = _token->end_col_offset;
6909 UNUSED(_end_col_offset); // Only used by EXTRA macro
6910 _res = _Py_IfExp ( b , a , c , EXTRA );
6911 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006912 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006913 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006914 return NULL;
6915 }
6916 goto done;
6917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006918 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006919 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
6920 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006921 }
6922 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006925 return NULL;
6926 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006927 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006928 expr_ty disjunction_var;
6929 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006930 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006931 )
6932 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006933 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006934 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006935 goto done;
6936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006937 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006938 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
6939 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006940 }
6941 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006942 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006943 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006944 return NULL;
6945 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006946 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006947 expr_ty lambdef_var;
6948 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006949 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006950 )
6951 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006952 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006953 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006954 goto done;
6955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006956 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006957 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
6958 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006960 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006961 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006962 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006963 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006964 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006965}
6966
6967// lambdef: 'lambda' lambda_parameters? ':' expression
6968static expr_ty
6969lambdef_rule(Parser *p)
6970{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006971 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006972 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006973 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006974 return NULL;
6975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006976 expr_ty _res = NULL;
6977 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006978 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6979 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006981 return NULL;
6982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006983 int _start_lineno = p->tokens[_mark]->lineno;
6984 UNUSED(_start_lineno); // Only used by EXTRA macro
6985 int _start_col_offset = p->tokens[_mark]->col_offset;
6986 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006987 { // 'lambda' lambda_parameters? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006988 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006989 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006990 return NULL;
6991 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006992 D(fprintf(stderr, "%*c> lambdef[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_parameters? ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006993 Token * _keyword;
6994 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006995 void *a;
6996 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006997 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006998 (_keyword = _PyPegen_expect_token(p, 524)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007000 (a = lambda_parameters_rule(p), 1) // lambda_parameters?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007001 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007002 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007004 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007005 )
7006 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007007 D(fprintf(stderr, "%*c+ lambdef[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'lambda' lambda_parameters? ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7009 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007011 return NULL;
7012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007013 int _end_lineno = _token->end_lineno;
7014 UNUSED(_end_lineno); // Only used by EXTRA macro
7015 int _end_col_offset = _token->end_col_offset;
7016 UNUSED(_end_col_offset); // Only used by EXTRA macro
7017 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7018 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007021 return NULL;
7022 }
7023 goto done;
7024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007026 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_parameters? ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007029 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007030 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007032 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007033}
7034
7035// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007036// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7037// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7038// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7039// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007040// | lambda_star_etc
7041static arguments_ty
7042lambda_parameters_rule(Parser *p)
7043{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007044 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007045 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007047 return NULL;
7048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007049 arguments_ty _res = NULL;
7050 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007051 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007053 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007054 return NULL;
7055 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007056 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 +01007057 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007058 asdl_seq * b;
7059 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007060 void *d;
7061 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007062 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007063 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007064 (b = _loop0_75_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007065 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007066 (c = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007068 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007069 )
7070 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007071 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 +01007072 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7073 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007074 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007076 return NULL;
7077 }
7078 goto done;
7079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007080 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007081 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7082 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 +01007083 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007084 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007085 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007086 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007087 return NULL;
7088 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007089 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 +01007090 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007091 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007092 void *c;
7093 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007094 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007095 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007096 (b = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007097 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007098 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007099 )
7100 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007101 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 +01007102 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7103 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007104 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007105 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007106 return NULL;
7107 }
7108 goto done;
7109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007110 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007111 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7112 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 +01007113 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007114 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007115 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007116 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007117 return NULL;
7118 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007119 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 -07007120 asdl_seq * a;
7121 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007122 void *c;
7123 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007124 (a = _loop1_78_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007125 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007126 (b = _loop0_79_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007127 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007128 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007129 )
7130 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007131 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 +01007132 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7133 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007134 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007135 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007136 return NULL;
7137 }
7138 goto done;
7139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007140 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007141 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7142 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 +01007143 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007144 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007145 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007146 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007147 return NULL;
7148 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007149 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 -07007150 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007151 void *b;
7152 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007153 (a = _loop1_80_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007154 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007155 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007156 )
7157 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007158 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 +01007159 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7160 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007161 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007163 return NULL;
7164 }
7165 goto done;
7166 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007167 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007168 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7169 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007170 }
7171 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007173 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007174 return NULL;
7175 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007176 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 +01007177 StarEtc* a;
7178 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007179 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007180 )
7181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007182 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 +01007183 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7184 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007185 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007186 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007187 return NULL;
7188 }
7189 goto done;
7190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007191 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007192 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7193 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007195 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007196 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007197 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007198 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007199}
7200
Guido van Rossum3941d972020-05-01 09:42:03 -07007201// lambda_slash_no_default:
7202// | lambda_param_no_default+ '/' ','
7203// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007204static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007205lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007206{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007207 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007208 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007209 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007210 return NULL;
7211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007212 asdl_seq* _res = NULL;
7213 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007214 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007217 return NULL;
7218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007219 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 +01007220 Token * _literal;
7221 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007222 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007224 (a = _loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007225 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007226 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007227 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007228 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007229 )
7230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007231 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 +01007232 _res = a;
7233 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007235 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007236 return NULL;
7237 }
7238 goto done;
7239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007241 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007243 }
7244 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007246 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007247 return NULL;
7248 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007249 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 +01007250 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007251 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007252 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007253 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007254 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007255 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007256 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007257 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007258 )
7259 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007260 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 +01007261 _res = a;
7262 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007263 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007265 return NULL;
7266 }
7267 goto done;
7268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007269 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007270 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007273 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007274 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007275 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007276 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007277}
7278
Guido van Rossum3941d972020-05-01 09:42:03 -07007279// lambda_slash_with_default:
7280// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7281// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007282static SlashWithDefault*
7283lambda_slash_with_default_rule(Parser *p)
7284{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007285 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007288 return NULL;
7289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007290 SlashWithDefault* _res = NULL;
7291 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007292 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007293 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007294 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007295 return NULL;
7296 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007297 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 +01007298 Token * _literal;
7299 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007300 asdl_seq * a;
7301 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007302 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007303 (a = _loop0_83_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007304 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007305 (b = _loop1_84_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007306 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007307 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007308 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007309 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007310 )
7311 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007312 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 +01007313 _res = _PyPegen_slash_with_default ( p , a , b );
7314 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007315 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007316 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007317 return NULL;
7318 }
7319 goto done;
7320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007321 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007322 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7323 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007324 }
7325 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007326 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007327 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007328 return NULL;
7329 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007330 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 +01007331 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007332 asdl_seq * a;
7333 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007334 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007335 (a = _loop0_85_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007336 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007337 (b = _loop1_86_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007338 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007339 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007340 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007341 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007342 )
7343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007344 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 +01007345 _res = _PyPegen_slash_with_default ( p , a , b );
7346 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007347 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007348 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007349 return NULL;
7350 }
7351 goto done;
7352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007353 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007354 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007356 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007357 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007358 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007359 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007360 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007361}
7362
7363// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007364// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7365// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7366// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007367// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007368static StarEtc*
7369lambda_star_etc_rule(Parser *p)
7370{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007371 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007373 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007374 return NULL;
7375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007376 StarEtc* _res = NULL;
7377 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007378 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007380 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007381 return NULL;
7382 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007383 D(fprintf(stderr, "%*c> lambda_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 +01007384 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007385 arg_ty a;
7386 asdl_seq * b;
7387 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007388 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007389 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007390 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007391 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007392 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007393 (b = _loop0_87_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007394 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007395 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007396 )
7397 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007398 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 +01007399 _res = _PyPegen_star_etc ( p , a , b , c );
7400 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007401 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007402 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007403 return NULL;
7404 }
7405 goto done;
7406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007407 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007408 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007410 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007411 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007413 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007414 return NULL;
7415 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007416 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 +01007417 Token * _literal;
7418 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007419 asdl_seq * b;
7420 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007421 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007422 (_literal = _PyPegen_expect_token(p, 16)) // 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=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007426 (b = _loop1_88_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007427 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007428 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007429 )
7430 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007431 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 +01007432 _res = _PyPegen_star_etc ( p , NULL , b , c );
7433 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007434 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007436 return NULL;
7437 }
7438 goto done;
7439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007441 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007443 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007444 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007446 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007447 return NULL;
7448 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007449 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 +01007450 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007451 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007452 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007453 )
7454 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007455 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 +01007456 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7457 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007458 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007460 return NULL;
7461 }
7462 goto done;
7463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007464 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007465 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007467 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007468 { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007469 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007470 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007471 return NULL;
7472 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007473 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 +03007474 void *invalid_lambda_star_etc_var;
7475 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007476 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007477 )
7478 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007479 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 +01007480 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007481 goto done;
7482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007483 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007484 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7485 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007487 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007488 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007489 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007490 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007491}
7492
Guido van Rossum3941d972020-05-01 09:42:03 -07007493// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007494static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007495lambda_kwds_rule(Parser *p)
7496{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007497 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007498 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007499 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007500 return NULL;
7501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007502 arg_ty _res = NULL;
7503 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007504 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007505 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007506 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007507 return NULL;
7508 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007509 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 +01007510 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007511 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007512 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007513 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007514 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007515 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007516 )
7517 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007518 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 +01007519 _res = a;
7520 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007521 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007522 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007523 return NULL;
7524 }
7525 goto done;
7526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007527 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007528 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7529 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007531 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007532 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007533 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007534 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007535}
7536
7537// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7538static arg_ty
7539lambda_param_no_default_rule(Parser *p)
7540{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007541 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007542 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007543 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007544 return NULL;
7545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007546 arg_ty _res = NULL;
7547 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007548 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007549 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007550 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007551 return NULL;
7552 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007553 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 +01007554 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007555 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007556 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007557 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007558 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007559 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007560 )
7561 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007562 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 +01007563 _res = a;
7564 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007566 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007567 return NULL;
7568 }
7569 goto done;
7570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007572 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007574 }
7575 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007578 return NULL;
7579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007580 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 -07007581 arg_ty a;
7582 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007583 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007585 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007586 )
7587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007588 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 +01007589 _res = a;
7590 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007591 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007592 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007593 return NULL;
7594 }
7595 goto done;
7596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007597 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007598 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007601 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007602 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007603 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007604 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007605}
7606
7607// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7608static NameDefaultPair*
7609lambda_param_with_default_rule(Parser *p)
7610{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007611 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007613 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007614 return NULL;
7615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007616 NameDefaultPair* _res = NULL;
7617 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007618 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007619 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007620 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007621 return NULL;
7622 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007623 D(fprintf(stderr, "%*c> lambda_param_with_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param default ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007624 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007625 arg_ty a;
7626 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007627 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007628 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007629 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007630 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007631 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007632 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007633 )
7634 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007635 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 +01007636 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7637 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007638 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007639 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007640 return NULL;
7641 }
7642 goto done;
7643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007644 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007645 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7646 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007647 }
7648 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007649 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007650 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007651 return NULL;
7652 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007653 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 -07007654 arg_ty a;
7655 expr_ty c;
7656 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007657 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007658 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007659 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007660 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007661 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007662 )
7663 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007664 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 +01007665 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7666 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007668 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007669 return NULL;
7670 }
7671 goto done;
7672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007673 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007674 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007677 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007678 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007679 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007680 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007681}
7682
7683// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7684static NameDefaultPair*
7685lambda_param_maybe_default_rule(Parser *p)
7686{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007687 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007688 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007689 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007690 return NULL;
7691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007692 NameDefaultPair* _res = NULL;
7693 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007694 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007695 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007696 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007697 return NULL;
7698 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007699 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 +01007700 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007701 arg_ty a;
7702 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007703 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007704 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007705 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007706 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007707 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007708 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007709 )
7710 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007711 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 +01007712 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7713 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007714 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007715 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007716 return NULL;
7717 }
7718 goto done;
7719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007720 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007721 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007723 }
7724 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007727 return NULL;
7728 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007729 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 -07007730 arg_ty a;
7731 void *c;
7732 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007733 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007734 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007735 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007736 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007737 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007738 )
7739 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007740 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 +01007741 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7742 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007743 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007744 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007745 return NULL;
7746 }
7747 goto done;
7748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007749 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007750 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007753 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007754 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007755 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007756 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007757}
7758
7759// lambda_param: NAME
7760static arg_ty
7761lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007762{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007763 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007764 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007766 return NULL;
7767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007768 arg_ty _res = NULL;
7769 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007770 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7771 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007773 return NULL;
7774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007775 int _start_lineno = p->tokens[_mark]->lineno;
7776 UNUSED(_start_lineno); // Only used by EXTRA macro
7777 int _start_col_offset = p->tokens[_mark]->col_offset;
7778 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007779 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007780 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007781 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007782 return NULL;
7783 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007784 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007785 expr_ty a;
7786 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007787 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007788 )
7789 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007790 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007791 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7792 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007794 return NULL;
7795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007796 int _end_lineno = _token->end_lineno;
7797 UNUSED(_end_lineno); // Only used by EXTRA macro
7798 int _end_col_offset = _token->end_col_offset;
7799 UNUSED(_end_col_offset); // Only used by EXTRA macro
7800 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7801 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007802 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007804 return NULL;
7805 }
7806 goto done;
7807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007808 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007809 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
7810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007811 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007812 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007813 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007814 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007815 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007816}
7817
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007818// disjunction: conjunction (('or' conjunction))+ | conjunction
7819static expr_ty
7820disjunction_rule(Parser *p)
7821{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007822 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007824 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007825 return NULL;
7826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007827 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007828 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
7829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007830 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007832 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007833 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7834 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007835 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007836 return NULL;
7837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007838 int _start_lineno = p->tokens[_mark]->lineno;
7839 UNUSED(_start_lineno); // Only used by EXTRA macro
7840 int _start_col_offset = p->tokens[_mark]->col_offset;
7841 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007842 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007844 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007845 return NULL;
7846 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007847 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007848 expr_ty a;
7849 asdl_seq * b;
7850 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007851 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007852 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007853 (b = _loop1_89_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007854 )
7855 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007856 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 +01007857 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7858 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007860 return NULL;
7861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007862 int _end_lineno = _token->end_lineno;
7863 UNUSED(_end_lineno); // Only used by EXTRA macro
7864 int _end_col_offset = _token->end_col_offset;
7865 UNUSED(_end_col_offset); // Only used by EXTRA macro
7866 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
7867 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007868 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007869 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007870 return NULL;
7871 }
7872 goto done;
7873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007874 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007875 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
7876 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007877 }
7878 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007879 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007880 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007881 return NULL;
7882 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007883 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007884 expr_ty conjunction_var;
7885 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007886 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007887 )
7888 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007889 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007890 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007891 goto done;
7892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007893 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007894 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
7895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007897 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007898 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007899 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007900 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007901 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007902}
7903
7904// conjunction: inversion (('and' inversion))+ | inversion
7905static expr_ty
7906conjunction_rule(Parser *p)
7907{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007908 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007910 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007911 return NULL;
7912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007913 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007914 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
7915 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007916 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007918 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007919 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7920 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007921 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007922 return NULL;
7923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007924 int _start_lineno = p->tokens[_mark]->lineno;
7925 UNUSED(_start_lineno); // Only used by EXTRA macro
7926 int _start_col_offset = p->tokens[_mark]->col_offset;
7927 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007928 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007929 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007930 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007931 return NULL;
7932 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007933 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007934 expr_ty a;
7935 asdl_seq * b;
7936 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007937 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007938 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007939 (b = _loop1_90_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007940 )
7941 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007942 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 +01007943 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7944 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007945 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007946 return NULL;
7947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007948 int _end_lineno = _token->end_lineno;
7949 UNUSED(_end_lineno); // Only used by EXTRA macro
7950 int _end_col_offset = _token->end_col_offset;
7951 UNUSED(_end_col_offset); // Only used by EXTRA macro
7952 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
7953 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007954 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007956 return NULL;
7957 }
7958 goto done;
7959 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007960 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007961 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
7962 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007963 }
7964 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007967 return NULL;
7968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007969 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007970 expr_ty inversion_var;
7971 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007972 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007973 )
7974 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007975 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007976 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007977 goto done;
7978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007979 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007980 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
7981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007983 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007984 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007985 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007986 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007987 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007988}
7989
7990// inversion: 'not' inversion | comparison
7991static expr_ty
7992inversion_rule(Parser *p)
7993{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007994 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007995 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007996 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007997 return NULL;
7998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007999 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008000 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8001 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008002 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008004 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008005 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8006 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008007 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008008 return NULL;
8009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008010 int _start_lineno = p->tokens[_mark]->lineno;
8011 UNUSED(_start_lineno); // Only used by EXTRA macro
8012 int _start_col_offset = p->tokens[_mark]->col_offset;
8013 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008014 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008016 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008017 return NULL;
8018 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008019 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008020 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008021 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008022 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008023 (_keyword = _PyPegen_expect_token(p, 525)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008024 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008025 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008026 )
8027 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008028 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008029 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8030 if (_token == NULL) {
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 _end_lineno = _token->end_lineno;
8035 UNUSED(_end_lineno); // Only used by EXTRA macro
8036 int _end_col_offset = _token->end_col_offset;
8037 UNUSED(_end_col_offset); // Only used by EXTRA macro
8038 _res = _Py_UnaryOp ( Not , a , EXTRA );
8039 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008040 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008041 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008042 return NULL;
8043 }
8044 goto done;
8045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008046 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008047 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008049 }
8050 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008051 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008052 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008053 return NULL;
8054 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008055 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008056 expr_ty comparison_var;
8057 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008058 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008059 )
8060 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008061 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008062 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008063 goto done;
8064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008065 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008066 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008069 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008070 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008071 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008072 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008073 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008074}
8075
8076// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8077static expr_ty
8078comparison_rule(Parser *p)
8079{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008080 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008082 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008083 return NULL;
8084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008085 expr_ty _res = NULL;
8086 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008087 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8088 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008090 return NULL;
8091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008092 int _start_lineno = p->tokens[_mark]->lineno;
8093 UNUSED(_start_lineno); // Only used by EXTRA macro
8094 int _start_col_offset = p->tokens[_mark]->col_offset;
8095 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008096 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008099 return NULL;
8100 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008101 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 +01008102 expr_ty a;
8103 asdl_seq * b;
8104 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008105 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008106 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008107 (b = _loop1_91_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008108 )
8109 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008110 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 +01008111 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8112 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008114 return NULL;
8115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008116 int _end_lineno = _token->end_lineno;
8117 UNUSED(_end_lineno); // Only used by EXTRA macro
8118 int _end_col_offset = _token->end_col_offset;
8119 UNUSED(_end_col_offset); // Only used by EXTRA macro
8120 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8121 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008122 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008124 return NULL;
8125 }
8126 goto done;
8127 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008128 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008129 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8130 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008131 }
8132 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008135 return NULL;
8136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008137 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008138 expr_ty bitwise_or_var;
8139 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008140 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008141 )
8142 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008143 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008144 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008145 goto done;
8146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008147 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008148 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008151 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008152 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008153 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008154 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008155}
8156
8157// compare_op_bitwise_or_pair:
8158// | eq_bitwise_or
8159// | noteq_bitwise_or
8160// | lte_bitwise_or
8161// | lt_bitwise_or
8162// | gte_bitwise_or
8163// | gt_bitwise_or
8164// | notin_bitwise_or
8165// | in_bitwise_or
8166// | isnot_bitwise_or
8167// | is_bitwise_or
8168static CmpopExprPair*
8169compare_op_bitwise_or_pair_rule(Parser *p)
8170{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008171 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008173 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008174 return NULL;
8175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008176 CmpopExprPair* _res = NULL;
8177 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008178 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008180 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008181 return NULL;
8182 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008183 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 +01008184 CmpopExprPair* eq_bitwise_or_var;
8185 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008186 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008187 )
8188 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008189 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 +01008190 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008191 goto done;
8192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008193 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008194 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8195 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008196 }
8197 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008199 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008200 return NULL;
8201 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008202 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 +01008203 CmpopExprPair* noteq_bitwise_or_var;
8204 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008205 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008206 )
8207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008208 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 +01008209 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008210 goto done;
8211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008212 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008213 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8214 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008215 }
8216 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008219 return NULL;
8220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008221 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 +01008222 CmpopExprPair* lte_bitwise_or_var;
8223 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008224 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008225 )
8226 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008227 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 +01008228 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008229 goto done;
8230 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008231 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008232 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8233 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008234 }
8235 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008236 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008237 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008238 return NULL;
8239 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008240 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 +01008241 CmpopExprPair* lt_bitwise_or_var;
8242 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008243 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008244 )
8245 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008246 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 +01008247 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008248 goto done;
8249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008250 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008251 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008253 }
8254 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008256 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008257 return NULL;
8258 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008259 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 +01008260 CmpopExprPair* gte_bitwise_or_var;
8261 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008262 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008263 )
8264 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008265 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 +01008266 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008267 goto done;
8268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008269 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008270 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8271 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008272 }
8273 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008275 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008276 return NULL;
8277 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008278 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 +01008279 CmpopExprPair* gt_bitwise_or_var;
8280 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008281 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008282 )
8283 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008284 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 +01008285 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008286 goto done;
8287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008288 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008289 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8290 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008291 }
8292 { // notin_bitwise_or
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> compare_op_bitwise_or_pair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008298 CmpopExprPair* notin_bitwise_or_var;
8299 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008300 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008301 )
8302 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008303 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 +01008304 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008305 goto done;
8306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008307 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008308 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008310 }
8311 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008314 return NULL;
8315 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008316 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 +01008317 CmpopExprPair* in_bitwise_or_var;
8318 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008319 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008320 )
8321 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008322 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 +01008323 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008324 goto done;
8325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008326 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008327 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008329 }
8330 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008331 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008332 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008333 return NULL;
8334 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008335 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 +01008336 CmpopExprPair* isnot_bitwise_or_var;
8337 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008338 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008339 )
8340 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008341 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 +01008342 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008343 goto done;
8344 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008345 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008346 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8347 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008348 }
8349 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008350 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008351 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008352 return NULL;
8353 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008354 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 +01008355 CmpopExprPair* is_bitwise_or_var;
8356 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008357 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008358 )
8359 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008360 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 +01008361 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008362 goto done;
8363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008364 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008365 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8366 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008368 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008369 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008370 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008371 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008372}
8373
8374// eq_bitwise_or: '==' bitwise_or
8375static CmpopExprPair*
8376eq_bitwise_or_rule(Parser *p)
8377{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008378 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008379 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008380 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008381 return NULL;
8382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008383 CmpopExprPair* _res = NULL;
8384 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008385 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008388 return NULL;
8389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008390 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008391 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008392 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008393 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008394 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008395 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008396 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008397 )
8398 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008399 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 +01008400 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8401 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008402 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008403 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008404 return NULL;
8405 }
8406 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 eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008412 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008413 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008414 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008415 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008416}
8417
Pablo Galindo2b74c832020-04-27 18:02:07 +01008418// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008419static CmpopExprPair*
8420noteq_bitwise_or_rule(Parser *p)
8421{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008422 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008423 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008425 return NULL;
8426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008427 CmpopExprPair* _res = NULL;
8428 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008429 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008431 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008432 return NULL;
8433 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008434 D(fprintf(stderr, "%*c> noteq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Guido van Rossum3941d972020-05-01 09:42:03 -07008435 void *_tmp_92_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008436 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008437 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008438 (_tmp_92_var = _tmp_92_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008439 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008440 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008441 )
8442 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008443 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 +01008444 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8445 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008446 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008447 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008448 return NULL;
8449 }
8450 goto done;
8451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008452 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008453 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8454 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008455 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008456 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008457 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008458 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008459 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008460}
8461
8462// lte_bitwise_or: '<=' bitwise_or
8463static CmpopExprPair*
8464lte_bitwise_or_rule(Parser *p)
8465{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008466 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008467 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008468 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008469 return NULL;
8470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008471 CmpopExprPair* _res = NULL;
8472 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008473 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008475 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008476 return NULL;
8477 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008478 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 +01008479 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008480 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008481 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008482 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008483 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008484 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008485 )
8486 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008487 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 +01008488 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8489 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008490 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008491 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008492 return NULL;
8493 }
8494 goto done;
8495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008496 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008497 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008499 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008500 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008501 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008502 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008503 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008504}
8505
8506// lt_bitwise_or: '<' bitwise_or
8507static CmpopExprPair*
8508lt_bitwise_or_rule(Parser *p)
8509{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008510 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008513 return NULL;
8514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008515 CmpopExprPair* _res = NULL;
8516 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008517 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008518 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008519 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008520 return NULL;
8521 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008522 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 +01008523 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008524 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008525 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008526 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008527 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008528 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008529 )
8530 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008531 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 +01008532 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8533 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008534 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008535 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008536 return NULL;
8537 }
8538 goto done;
8539 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008540 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008541 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8542 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008544 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008545 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008546 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008547 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008548}
8549
8550// gte_bitwise_or: '>=' bitwise_or
8551static CmpopExprPair*
8552gte_bitwise_or_rule(Parser *p)
8553{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008554 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008557 return NULL;
8558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008559 CmpopExprPair* _res = NULL;
8560 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008561 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008564 return NULL;
8565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008566 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 +01008567 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008568 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008569 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008570 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008571 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008572 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008573 )
8574 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008575 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 +01008576 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8577 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008578 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008579 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008580 return NULL;
8581 }
8582 goto done;
8583 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008584 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008585 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8586 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008588 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008589 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008590 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008591 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008592}
8593
8594// gt_bitwise_or: '>' bitwise_or
8595static CmpopExprPair*
8596gt_bitwise_or_rule(Parser *p)
8597{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008598 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008601 return NULL;
8602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008603 CmpopExprPair* _res = NULL;
8604 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008605 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008608 return NULL;
8609 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008610 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 +01008611 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008612 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008613 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008614 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008616 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008617 )
8618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008619 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 +01008620 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8621 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008622 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008623 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008624 return NULL;
8625 }
8626 goto done;
8627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008628 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008629 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008632 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008633 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008634 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008635 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008636}
8637
8638// notin_bitwise_or: 'not' 'in' bitwise_or
8639static CmpopExprPair*
8640notin_bitwise_or_rule(Parser *p)
8641{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008642 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008644 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008645 return NULL;
8646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008647 CmpopExprPair* _res = NULL;
8648 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008649 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008652 return NULL;
8653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008654 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 +01008655 Token * _keyword;
8656 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008657 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008658 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008659 (_keyword = _PyPegen_expect_token(p, 525)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008660 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008661 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008662 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008663 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008664 )
8665 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008666 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 +01008667 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8668 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008671 return NULL;
8672 }
8673 goto done;
8674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008675 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008676 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008679 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008680 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008681 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008682 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008683}
8684
8685// in_bitwise_or: 'in' bitwise_or
8686static CmpopExprPair*
8687in_bitwise_or_rule(Parser *p)
8688{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008689 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008690 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008692 return NULL;
8693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008694 CmpopExprPair* _res = NULL;
8695 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008696 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008699 return NULL;
8700 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008701 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 +01008702 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008703 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008704 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008705 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008706 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008707 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008708 )
8709 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008710 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 +01008711 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8712 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008713 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008714 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008715 return NULL;
8716 }
8717 goto done;
8718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008719 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008720 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008723 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008724 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008725 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008726 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008727}
8728
8729// isnot_bitwise_or: 'is' 'not' bitwise_or
8730static CmpopExprPair*
8731isnot_bitwise_or_rule(Parser *p)
8732{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008733 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008736 return NULL;
8737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008738 CmpopExprPair* _res = NULL;
8739 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008740 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008743 return NULL;
8744 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008745 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 +01008746 Token * _keyword;
8747 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008748 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008749 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008750 (_keyword = _PyPegen_expect_token(p, 526)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008751 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008752 (_keyword_1 = _PyPegen_expect_token(p, 525)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008753 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008754 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008755 )
8756 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008757 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 +01008758 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8759 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008760 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008762 return NULL;
8763 }
8764 goto done;
8765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008766 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008767 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008770 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008771 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008772 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008773 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008774}
8775
8776// is_bitwise_or: 'is' bitwise_or
8777static CmpopExprPair*
8778is_bitwise_or_rule(Parser *p)
8779{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008780 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008781 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008782 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008783 return NULL;
8784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008785 CmpopExprPair* _res = NULL;
8786 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008787 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008789 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008790 return NULL;
8791 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008792 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 +01008793 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008794 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008796 (_keyword = _PyPegen_expect_token(p, 526)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008798 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008799 )
8800 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008801 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 +01008802 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8803 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008804 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008805 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008806 return NULL;
8807 }
8808 goto done;
8809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008810 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008811 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008814 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008815 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008816 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008817 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008818}
8819
8820// Left-recursive
8821// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
8822static expr_ty bitwise_or_raw(Parser *);
8823static expr_ty
8824bitwise_or_rule(Parser *p)
8825{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008826 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008827 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008828 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
8829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008830 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008832 int _mark = p->mark;
8833 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008834 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008835 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008836 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008838 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008840 p->mark = _mark;
8841 void *_raw = bitwise_or_raw(p);
8842 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008843 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008844 _resmark = p->mark;
8845 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008846 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008847 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008848 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008849 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008850}
8851static expr_ty
8852bitwise_or_raw(Parser *p)
8853{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008854 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008857 return NULL;
8858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008859 expr_ty _res = NULL;
8860 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008861 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8862 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008863 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008864 return NULL;
8865 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008866 int _start_lineno = p->tokens[_mark]->lineno;
8867 UNUSED(_start_lineno); // Only used by EXTRA macro
8868 int _start_col_offset = p->tokens[_mark]->col_offset;
8869 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008870 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008871 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008872 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008873 return NULL;
8874 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008875 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 +01008876 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008877 expr_ty a;
8878 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008879 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008880 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008881 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008882 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008884 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008885 )
8886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008887 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 +01008888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8889 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008891 return NULL;
8892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008893 int _end_lineno = _token->end_lineno;
8894 UNUSED(_end_lineno); // Only used by EXTRA macro
8895 int _end_col_offset = _token->end_col_offset;
8896 UNUSED(_end_col_offset); // Only used by EXTRA macro
8897 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
8898 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008899 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008901 return NULL;
8902 }
8903 goto done;
8904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008906 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008908 }
8909 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008912 return NULL;
8913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008914 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008915 expr_ty bitwise_xor_var;
8916 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008917 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008918 )
8919 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008920 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 +01008921 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008922 goto done;
8923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008924 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008925 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8926 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008927 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008928 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008929 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008930 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008931 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008932}
8933
8934// Left-recursive
8935// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
8936static expr_ty bitwise_xor_raw(Parser *);
8937static expr_ty
8938bitwise_xor_rule(Parser *p)
8939{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008940 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008941 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008942 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
8943 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008944 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008946 int _mark = p->mark;
8947 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008948 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008949 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008950 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008952 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008954 p->mark = _mark;
8955 void *_raw = bitwise_xor_raw(p);
8956 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008957 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008958 _resmark = p->mark;
8959 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008961 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008962 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008963 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008964}
8965static expr_ty
8966bitwise_xor_raw(Parser *p)
8967{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008968 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008969 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008970 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008971 return NULL;
8972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008973 expr_ty _res = NULL;
8974 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008975 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8976 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008977 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008978 return NULL;
8979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008980 int _start_lineno = p->tokens[_mark]->lineno;
8981 UNUSED(_start_lineno); // Only used by EXTRA macro
8982 int _start_col_offset = p->tokens[_mark]->col_offset;
8983 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008984 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008985 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008986 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008987 return NULL;
8988 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008989 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 +01008990 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008991 expr_ty a;
8992 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008993 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008994 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008995 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008996 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008997 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008998 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008999 )
9000 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009001 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 +01009002 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9003 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009005 return NULL;
9006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009007 int _end_lineno = _token->end_lineno;
9008 UNUSED(_end_lineno); // Only used by EXTRA macro
9009 int _end_col_offset = _token->end_col_offset;
9010 UNUSED(_end_col_offset); // Only used by EXTRA macro
9011 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9012 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009013 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009014 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009015 return NULL;
9016 }
9017 goto done;
9018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009019 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009020 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9021 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009022 }
9023 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009024 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009025 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009026 return NULL;
9027 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009028 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009029 expr_ty bitwise_and_var;
9030 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009031 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009032 )
9033 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009034 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 +01009035 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009036 goto done;
9037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009038 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009039 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9040 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009042 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009043 done:
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}
9047
9048// Left-recursive
9049// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9050static expr_ty bitwise_and_raw(Parser *);
9051static expr_ty
9052bitwise_and_rule(Parser *p)
9053{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009054 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009055 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009056 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9057 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009058 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009060 int _mark = p->mark;
9061 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009062 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009063 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009064 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009065 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009066 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009068 p->mark = _mark;
9069 void *_raw = bitwise_and_raw(p);
9070 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009071 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009072 _resmark = p->mark;
9073 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009075 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009076 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009077 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009078}
9079static expr_ty
9080bitwise_and_raw(Parser *p)
9081{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009082 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009085 return NULL;
9086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009087 expr_ty _res = NULL;
9088 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009089 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9090 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009091 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009092 return NULL;
9093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009094 int _start_lineno = p->tokens[_mark]->lineno;
9095 UNUSED(_start_lineno); // Only used by EXTRA macro
9096 int _start_col_offset = p->tokens[_mark]->col_offset;
9097 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009098 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009099 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009100 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009101 return NULL;
9102 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009103 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 +01009104 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009105 expr_ty a;
9106 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009107 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009108 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009109 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009110 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009111 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009112 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009113 )
9114 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009115 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 +01009116 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9117 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009118 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009119 return NULL;
9120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009121 int _end_lineno = _token->end_lineno;
9122 UNUSED(_end_lineno); // Only used by EXTRA macro
9123 int _end_col_offset = _token->end_col_offset;
9124 UNUSED(_end_col_offset); // Only used by EXTRA macro
9125 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9126 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009127 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009129 return NULL;
9130 }
9131 goto done;
9132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009133 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009134 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9135 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009136 }
9137 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009139 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009140 return NULL;
9141 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009142 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009143 expr_ty shift_expr_var;
9144 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009145 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009146 )
9147 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009148 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 +01009149 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009150 goto done;
9151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009152 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009153 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009155 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009156 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009157 done:
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}
9161
9162// Left-recursive
9163// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9164static expr_ty shift_expr_raw(Parser *);
9165static expr_ty
9166shift_expr_rule(Parser *p)
9167{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009168 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009169 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009170 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9171 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009172 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009174 int _mark = p->mark;
9175 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009176 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009177 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009178 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009179 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009180 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009182 p->mark = _mark;
9183 void *_raw = shift_expr_raw(p);
9184 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009185 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009186 _resmark = p->mark;
9187 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009189 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009190 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009191 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009192}
9193static expr_ty
9194shift_expr_raw(Parser *p)
9195{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009196 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009198 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009199 return NULL;
9200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009201 expr_ty _res = NULL;
9202 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009203 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009206 return NULL;
9207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009208 int _start_lineno = p->tokens[_mark]->lineno;
9209 UNUSED(_start_lineno); // Only used by EXTRA macro
9210 int _start_col_offset = p->tokens[_mark]->col_offset;
9211 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009212 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009214 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009215 return NULL;
9216 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009217 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 +01009218 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009219 expr_ty a;
9220 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009221 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009222 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009223 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009224 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009225 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009226 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009227 )
9228 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009229 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 +01009230 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9231 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009232 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009233 return NULL;
9234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009235 int _end_lineno = _token->end_lineno;
9236 UNUSED(_end_lineno); // Only used by EXTRA macro
9237 int _end_col_offset = _token->end_col_offset;
9238 UNUSED(_end_col_offset); // Only used by EXTRA macro
9239 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9240 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009241 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009243 return NULL;
9244 }
9245 goto done;
9246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009247 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009248 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9249 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009250 }
9251 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009253 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009254 return NULL;
9255 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009256 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 +01009257 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009258 expr_ty a;
9259 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009260 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009261 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009262 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009263 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009264 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009265 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009266 )
9267 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009268 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 +01009269 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9270 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009271 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009272 return NULL;
9273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009274 int _end_lineno = _token->end_lineno;
9275 UNUSED(_end_lineno); // Only used by EXTRA macro
9276 int _end_col_offset = _token->end_col_offset;
9277 UNUSED(_end_col_offset); // Only used by EXTRA macro
9278 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9279 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009280 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009282 return NULL;
9283 }
9284 goto done;
9285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009286 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009287 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009289 }
9290 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009292 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009293 return NULL;
9294 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009295 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009296 expr_ty sum_var;
9297 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009298 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009299 )
9300 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009301 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009302 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009303 goto done;
9304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009305 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009306 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009309 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009310 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009311 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009312 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009313}
9314
9315// Left-recursive
9316// sum: sum '+' term | sum '-' term | term
9317static expr_ty sum_raw(Parser *);
9318static expr_ty
9319sum_rule(Parser *p)
9320{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009321 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009322 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009323 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9324 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009325 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009327 int _mark = p->mark;
9328 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009329 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009330 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009331 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009332 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009333 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009335 p->mark = _mark;
9336 void *_raw = sum_raw(p);
9337 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009338 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009339 _resmark = p->mark;
9340 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009342 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009343 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009344 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009345}
9346static expr_ty
9347sum_raw(Parser *p)
9348{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009349 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009350 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009351 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009352 return NULL;
9353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009354 expr_ty _res = NULL;
9355 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009356 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9357 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009358 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009359 return NULL;
9360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009361 int _start_lineno = p->tokens[_mark]->lineno;
9362 UNUSED(_start_lineno); // Only used by EXTRA macro
9363 int _start_col_offset = p->tokens[_mark]->col_offset;
9364 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009365 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009368 return NULL;
9369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009370 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009371 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009372 expr_ty a;
9373 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009375 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009376 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009377 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009378 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009379 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009380 )
9381 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009382 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009383 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9384 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009386 return NULL;
9387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009388 int _end_lineno = _token->end_lineno;
9389 UNUSED(_end_lineno); // Only used by EXTRA macro
9390 int _end_col_offset = _token->end_col_offset;
9391 UNUSED(_end_col_offset); // Only used by EXTRA macro
9392 _res = _Py_BinOp ( a , Add , b , EXTRA );
9393 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009394 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009395 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009396 return NULL;
9397 }
9398 goto done;
9399 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009400 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009401 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9402 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009403 }
9404 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009406 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009407 return NULL;
9408 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009409 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009410 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009411 expr_ty a;
9412 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009413 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009414 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009415 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009416 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009417 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009418 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009419 )
9420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009421 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009422 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9423 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009425 return NULL;
9426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009427 int _end_lineno = _token->end_lineno;
9428 UNUSED(_end_lineno); // Only used by EXTRA macro
9429 int _end_col_offset = _token->end_col_offset;
9430 UNUSED(_end_col_offset); // Only used by EXTRA macro
9431 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9432 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009433 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009434 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009435 return NULL;
9436 }
9437 goto done;
9438 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009439 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009440 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9441 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009442 }
9443 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009444 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009445 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009446 return NULL;
9447 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009448 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009449 expr_ty term_var;
9450 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009451 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009452 )
9453 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009454 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009455 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009456 goto done;
9457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009458 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009459 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009462 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009463 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009464 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009465 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009466}
9467
9468// Left-recursive
9469// term:
9470// | term '*' factor
9471// | term '/' factor
9472// | term '//' factor
9473// | term '%' factor
9474// | term '@' factor
9475// | factor
9476static expr_ty term_raw(Parser *);
9477static expr_ty
9478term_rule(Parser *p)
9479{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009480 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009481 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009482 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9483 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009484 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009486 int _mark = p->mark;
9487 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009488 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009489 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009490 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009492 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009494 p->mark = _mark;
9495 void *_raw = term_raw(p);
9496 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009497 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009498 _resmark = p->mark;
9499 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009501 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009502 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009503 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009504}
9505static expr_ty
9506term_raw(Parser *p)
9507{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009508 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009510 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009511 return NULL;
9512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009513 expr_ty _res = NULL;
9514 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009515 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9516 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009517 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009518 return NULL;
9519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009520 int _start_lineno = p->tokens[_mark]->lineno;
9521 UNUSED(_start_lineno); // Only used by EXTRA macro
9522 int _start_col_offset = p->tokens[_mark]->col_offset;
9523 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009524 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009525 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009526 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009527 return NULL;
9528 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009529 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009530 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009531 expr_ty a;
9532 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009533 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009534 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009535 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009536 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009537 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009538 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009539 )
9540 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009541 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009542 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9543 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009545 return NULL;
9546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009547 int _end_lineno = _token->end_lineno;
9548 UNUSED(_end_lineno); // Only used by EXTRA macro
9549 int _end_col_offset = _token->end_col_offset;
9550 UNUSED(_end_col_offset); // Only used by EXTRA macro
9551 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009553 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 }
9557 goto done;
9558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009560 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009562 }
9563 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009564 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009565 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009566 return NULL;
9567 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009568 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009569 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009570 expr_ty a;
9571 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009572 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009573 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009574 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009575 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009576 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009577 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009578 )
9579 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009580 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009581 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9582 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009584 return NULL;
9585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009586 int _end_lineno = _token->end_lineno;
9587 UNUSED(_end_lineno); // Only used by EXTRA macro
9588 int _end_col_offset = _token->end_col_offset;
9589 UNUSED(_end_col_offset); // Only used by EXTRA macro
9590 _res = _Py_BinOp ( a , Div , b , EXTRA );
9591 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009592 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009594 return NULL;
9595 }
9596 goto done;
9597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009598 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009599 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9600 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009601 }
9602 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009603 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009604 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009605 return NULL;
9606 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009607 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009608 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009609 expr_ty a;
9610 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009611 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009612 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009613 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009614 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009615 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009616 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009617 )
9618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009619 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009620 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9621 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009623 return NULL;
9624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009625 int _end_lineno = _token->end_lineno;
9626 UNUSED(_end_lineno); // Only used by EXTRA macro
9627 int _end_col_offset = _token->end_col_offset;
9628 UNUSED(_end_col_offset); // Only used by EXTRA macro
9629 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9630 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009633 return NULL;
9634 }
9635 goto done;
9636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009637 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009638 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009640 }
9641 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009644 return NULL;
9645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009646 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009647 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009648 expr_ty a;
9649 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009650 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009651 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009652 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009653 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009654 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009655 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009656 )
9657 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009658 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009659 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9660 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009662 return NULL;
9663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009664 int _end_lineno = _token->end_lineno;
9665 UNUSED(_end_lineno); // Only used by EXTRA macro
9666 int _end_col_offset = _token->end_col_offset;
9667 UNUSED(_end_col_offset); // Only used by EXTRA macro
9668 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9669 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009670 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009671 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009672 return NULL;
9673 }
9674 goto done;
9675 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009676 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009677 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9678 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009679 }
9680 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009681 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009682 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009683 return NULL;
9684 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009685 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009686 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009687 expr_ty a;
9688 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009689 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009690 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009691 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009692 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009693 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009694 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009695 )
9696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009697 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009698 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9699 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009700 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009701 return NULL;
9702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009703 int _end_lineno = _token->end_lineno;
9704 UNUSED(_end_lineno); // Only used by EXTRA macro
9705 int _end_col_offset = _token->end_col_offset;
9706 UNUSED(_end_col_offset); // Only used by EXTRA macro
9707 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9708 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009709 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009710 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009711 return NULL;
9712 }
9713 goto done;
9714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009715 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009716 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9717 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009718 }
9719 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009720 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009721 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009722 return NULL;
9723 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009724 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009725 expr_ty factor_var;
9726 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009727 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009728 )
9729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009730 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009731 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009732 goto done;
9733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009734 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009735 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9736 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009738 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009739 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009740 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009741 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009742}
9743
9744// factor: '+' factor | '-' factor | '~' factor | power
9745static expr_ty
9746factor_rule(Parser *p)
9747{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009748 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009750 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009751 return NULL;
9752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009753 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009754 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9755 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009756 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009758 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009759 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9760 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009761 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009762 return NULL;
9763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009764 int _start_lineno = p->tokens[_mark]->lineno;
9765 UNUSED(_start_lineno); // Only used by EXTRA macro
9766 int _start_col_offset = p->tokens[_mark]->col_offset;
9767 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009768 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009771 return NULL;
9772 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009773 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009774 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009775 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009776 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009777 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009778 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009779 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009780 )
9781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009782 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009783 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9784 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009785 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009786 return NULL;
9787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009788 int _end_lineno = _token->end_lineno;
9789 UNUSED(_end_lineno); // Only used by EXTRA macro
9790 int _end_col_offset = _token->end_col_offset;
9791 UNUSED(_end_col_offset); // Only used by EXTRA macro
9792 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9793 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009794 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009795 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009796 return NULL;
9797 }
9798 goto done;
9799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009800 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009801 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9802 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009803 }
9804 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009805 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009806 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009807 return NULL;
9808 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009809 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009810 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009812 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009813 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009814 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009815 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009816 )
9817 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009818 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009819 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9820 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009822 return NULL;
9823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009824 int _end_lineno = _token->end_lineno;
9825 UNUSED(_end_lineno); // Only used by EXTRA macro
9826 int _end_col_offset = _token->end_col_offset;
9827 UNUSED(_end_col_offset); // Only used by EXTRA macro
9828 _res = _Py_UnaryOp ( USub , a , EXTRA );
9829 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009830 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009832 return NULL;
9833 }
9834 goto done;
9835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009837 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009839 }
9840 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009841 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009842 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009843 return NULL;
9844 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009845 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009846 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009847 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009848 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009849 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009850 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009851 (a = 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+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' 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_UnaryOp ( Invert , a , 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 factor[%d-%d]: %s failed!\n", p->level, ' ',
9874 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009875 }
9876 { // power
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> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009882 expr_ty power_var;
9883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009884 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009885 )
9886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009887 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009888 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009889 goto done;
9890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009891 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009892 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9893 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009895 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009896 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009897 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009898 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009899 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009900}
9901
9902// power: await_primary '**' factor | await_primary
9903static expr_ty
9904power_rule(Parser *p)
9905{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009906 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009909 return NULL;
9910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009911 expr_ty _res = NULL;
9912 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009913 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9914 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009915 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009916 return NULL;
9917 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009918 int _start_lineno = p->tokens[_mark]->lineno;
9919 UNUSED(_start_lineno); // Only used by EXTRA macro
9920 int _start_col_offset = p->tokens[_mark]->col_offset;
9921 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009922 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009924 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009925 return NULL;
9926 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009927 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009928 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009929 expr_ty a;
9930 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009931 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009932 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009933 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009934 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009935 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009936 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009937 )
9938 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009939 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 +01009940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9941 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009942 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009943 return NULL;
9944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009945 int _end_lineno = _token->end_lineno;
9946 UNUSED(_end_lineno); // Only used by EXTRA macro
9947 int _end_col_offset = _token->end_col_offset;
9948 UNUSED(_end_col_offset); // Only used by EXTRA macro
9949 _res = _Py_BinOp ( a , Pow , b , EXTRA );
9950 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009951 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009952 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009953 return NULL;
9954 }
9955 goto done;
9956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009957 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009958 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
9959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009960 }
9961 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009962 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009963 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009964 return NULL;
9965 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009966 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009967 expr_ty await_primary_var;
9968 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009969 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009970 )
9971 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009972 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009973 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009974 goto done;
9975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009976 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009977 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
9978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009979 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009980 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009981 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009982 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009983 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009984}
9985
9986// await_primary: AWAIT primary | primary
9987static expr_ty
9988await_primary_rule(Parser *p)
9989{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009990 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009991 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009992 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009993 return NULL;
9994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009995 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009996 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
9997 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009998 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010000 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010001 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10002 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010003 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010004 return NULL;
10005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010006 int _start_lineno = p->tokens[_mark]->lineno;
10007 UNUSED(_start_lineno); // Only used by EXTRA macro
10008 int _start_col_offset = p->tokens[_mark]->col_offset;
10009 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010010 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010011 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010012 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010013 return NULL;
10014 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010015 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010016 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010017 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010018 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010019 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010020 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010021 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010022 )
10023 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010024 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 +010010025 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10026 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010027 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010028 return NULL;
10029 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010030 int _end_lineno = _token->end_lineno;
10031 UNUSED(_end_lineno); // Only used by EXTRA macro
10032 int _end_col_offset = _token->end_col_offset;
10033 UNUSED(_end_col_offset); // Only used by EXTRA macro
10034 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10035 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010036 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010038 return NULL;
10039 }
10040 goto done;
10041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010042 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010043 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10044 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010045 }
10046 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010049 return NULL;
10050 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010051 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010052 expr_ty primary_var;
10053 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010054 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010055 )
10056 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010057 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010058 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010059 goto done;
10060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010061 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010062 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10063 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010065 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010066 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010067 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010068 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010069 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010070}
10071
10072// Left-recursive
10073// primary:
10074// | primary '.' NAME
10075// | primary genexp
10076// | primary '(' arguments? ')'
10077// | primary '[' slices ']'
10078// | atom
10079static expr_ty primary_raw(Parser *);
10080static expr_ty
10081primary_rule(Parser *p)
10082{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010083 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010084 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010085 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10086 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010087 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010089 int _mark = p->mark;
10090 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010091 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010092 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010093 if (tmpvar_7) {
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 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010097 p->mark = _mark;
10098 void *_raw = primary_raw(p);
10099 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010100 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010101 _resmark = p->mark;
10102 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010104 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010105 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010106 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010107}
10108static expr_ty
10109primary_raw(Parser *p)
10110{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010111 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010114 return NULL;
10115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010116 expr_ty _res = NULL;
10117 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010118 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10119 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010120 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010121 return NULL;
10122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010123 int _start_lineno = p->tokens[_mark]->lineno;
10124 UNUSED(_start_lineno); // Only used by EXTRA macro
10125 int _start_col_offset = p->tokens[_mark]->col_offset;
10126 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010127 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010128 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010129 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010130 return NULL;
10131 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010132 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010133 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010134 expr_ty a;
10135 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010137 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010138 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010139 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010140 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010141 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010142 )
10143 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010144 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010145 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10146 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010147 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010148 return NULL;
10149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010150 int _end_lineno = _token->end_lineno;
10151 UNUSED(_end_lineno); // Only used by EXTRA macro
10152 int _end_col_offset = _token->end_col_offset;
10153 UNUSED(_end_col_offset); // Only used by EXTRA macro
10154 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10155 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010156 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010157 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010158 return NULL;
10159 }
10160 goto done;
10161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010163 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010165 }
10166 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010168 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010169 return NULL;
10170 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010171 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010172 expr_ty a;
10173 expr_ty b;
10174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010175 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010176 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010177 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010178 )
10179 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010180 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010181 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10182 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010183 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010184 return NULL;
10185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010186 int _end_lineno = _token->end_lineno;
10187 UNUSED(_end_lineno); // Only used by EXTRA macro
10188 int _end_col_offset = _token->end_col_offset;
10189 UNUSED(_end_col_offset); // Only used by EXTRA macro
10190 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10191 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010192 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010193 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010194 return NULL;
10195 }
10196 goto done;
10197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010198 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010199 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10200 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010201 }
10202 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010204 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010205 return NULL;
10206 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010207 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010208 Token * _literal;
10209 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010210 expr_ty a;
10211 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010212 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010213 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010214 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010215 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010216 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010217 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010218 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010219 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010220 )
10221 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010222 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010223 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10224 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010226 return NULL;
10227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010228 int _end_lineno = _token->end_lineno;
10229 UNUSED(_end_lineno); // Only used by EXTRA macro
10230 int _end_col_offset = _token->end_col_offset;
10231 UNUSED(_end_col_offset); // Only used by EXTRA macro
10232 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10233 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010234 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010236 return NULL;
10237 }
10238 goto done;
10239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010241 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010243 }
10244 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010245 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010246 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010247 return NULL;
10248 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010249 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010250 Token * _literal;
10251 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010252 expr_ty a;
10253 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010254 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010255 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010256 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010257 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010258 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010259 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010261 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010262 )
10263 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010264 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010265 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10266 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010267 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010268 return NULL;
10269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010270 int _end_lineno = _token->end_lineno;
10271 UNUSED(_end_lineno); // Only used by EXTRA macro
10272 int _end_col_offset = _token->end_col_offset;
10273 UNUSED(_end_col_offset); // Only used by EXTRA macro
10274 _res = _Py_Subscript ( a , b , Load , EXTRA );
10275 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010276 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010278 return NULL;
10279 }
10280 goto done;
10281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010282 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010283 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10284 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010285 }
10286 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010288 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010289 return NULL;
10290 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010291 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010292 expr_ty atom_var;
10293 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010294 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010295 )
10296 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010297 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010298 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010299 goto done;
10300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010301 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010302 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010305 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010306 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010307 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010308 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010309}
10310
10311// slices: slice !',' | ','.slice+ ','?
10312static expr_ty
10313slices_rule(Parser *p)
10314{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010315 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010317 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010318 return NULL;
10319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010320 expr_ty _res = NULL;
10321 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010322 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010325 return NULL;
10326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010327 int _start_lineno = p->tokens[_mark]->lineno;
10328 UNUSED(_start_lineno); // Only used by EXTRA macro
10329 int _start_col_offset = p->tokens[_mark]->col_offset;
10330 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010331 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010332 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010333 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010334 return NULL;
10335 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010336 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010337 expr_ty a;
10338 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010339 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010340 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010341 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010342 )
10343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010344 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010345 _res = a;
10346 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010347 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010348 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010349 return NULL;
10350 }
10351 goto done;
10352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010353 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010354 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010356 }
10357 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010359 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010360 return NULL;
10361 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010362 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010363 void *_opt_var;
10364 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010365 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010366 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010367 (a = _gather_93_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010368 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010369 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010370 )
10371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010372 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010373 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10374 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010376 return NULL;
10377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010378 int _end_lineno = _token->end_lineno;
10379 UNUSED(_end_lineno); // Only used by EXTRA macro
10380 int _end_col_offset = _token->end_col_offset;
10381 UNUSED(_end_col_offset); // Only used by EXTRA macro
10382 _res = _Py_Tuple ( a , Load , EXTRA );
10383 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010384 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010386 return NULL;
10387 }
10388 goto done;
10389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010390 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010391 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10392 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010394 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010395 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010396 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010397 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010398}
10399
10400// slice: expression? ':' expression? [':' expression?] | expression
10401static expr_ty
10402slice_rule(Parser *p)
10403{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010404 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010407 return NULL;
10408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010409 expr_ty _res = NULL;
10410 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010411 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10412 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010413 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010414 return NULL;
10415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010416 int _start_lineno = p->tokens[_mark]->lineno;
10417 UNUSED(_start_lineno); // Only used by EXTRA macro
10418 int _start_col_offset = p->tokens[_mark]->col_offset;
10419 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010420 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010421 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010422 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010423 return NULL;
10424 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010425 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010426 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010427 void *a;
10428 void *b;
10429 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010430 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010431 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010432 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010433 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010434 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010435 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010436 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010437 (c = _tmp_95_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010438 )
10439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010440 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 +010010441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10442 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010444 return NULL;
10445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010446 int _end_lineno = _token->end_lineno;
10447 UNUSED(_end_lineno); // Only used by EXTRA macro
10448 int _end_col_offset = _token->end_col_offset;
10449 UNUSED(_end_col_offset); // Only used by EXTRA macro
10450 _res = _Py_Slice ( a , b , c , EXTRA );
10451 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010454 return NULL;
10455 }
10456 goto done;
10457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010458 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010459 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010461 }
10462 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010463 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010464 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010465 return NULL;
10466 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010467 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010468 expr_ty a;
10469 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010470 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010471 )
10472 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010473 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010474 _res = a;
10475 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010476 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010477 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010478 return NULL;
10479 }
10480 goto done;
10481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010482 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010483 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10484 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010486 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010487 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010488 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010489 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010490}
10491
10492// atom:
10493// | NAME
10494// | 'True'
10495// | 'False'
10496// | 'None'
10497// | '__new_parser__'
10498// | &STRING strings
10499// | NUMBER
10500// | &'(' (tuple | group | genexp)
10501// | &'[' (list | listcomp)
10502// | &'{' (dict | set | dictcomp | setcomp)
10503// | '...'
10504static expr_ty
10505atom_rule(Parser *p)
10506{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010507 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010509 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010510 return NULL;
10511 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010512 expr_ty _res = NULL;
10513 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010514 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10515 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010516 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010517 return NULL;
10518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010519 int _start_lineno = p->tokens[_mark]->lineno;
10520 UNUSED(_start_lineno); // Only used by EXTRA macro
10521 int _start_col_offset = p->tokens[_mark]->col_offset;
10522 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010523 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010525 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010526 return NULL;
10527 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010528 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010529 expr_ty name_var;
10530 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010531 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010532 )
10533 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010534 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010535 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010536 goto done;
10537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010538 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010539 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10540 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010541 }
10542 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010544 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010545 return NULL;
10546 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010547 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010548 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010549 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010550 (_keyword = _PyPegen_expect_token(p, 527)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010551 )
10552 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010553 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010554 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10555 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010556 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010557 return NULL;
10558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010559 int _end_lineno = _token->end_lineno;
10560 UNUSED(_end_lineno); // Only used by EXTRA macro
10561 int _end_col_offset = _token->end_col_offset;
10562 UNUSED(_end_col_offset); // Only used by EXTRA macro
10563 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10564 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010565 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010567 return NULL;
10568 }
10569 goto done;
10570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010572 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010574 }
10575 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010578 return NULL;
10579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010580 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010581 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010582 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010583 (_keyword = _PyPegen_expect_token(p, 528)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010584 )
10585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010586 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010587 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10588 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010589 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010590 return NULL;
10591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010592 int _end_lineno = _token->end_lineno;
10593 UNUSED(_end_lineno); // Only used by EXTRA macro
10594 int _end_col_offset = _token->end_col_offset;
10595 UNUSED(_end_col_offset); // Only used by EXTRA macro
10596 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10597 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010598 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010600 return NULL;
10601 }
10602 goto done;
10603 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010604 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010605 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10606 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010607 }
10608 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010610 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010611 return NULL;
10612 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010613 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010614 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010615 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010616 (_keyword = _PyPegen_expect_token(p, 529)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010617 )
10618 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010619 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010620 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10621 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010622 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010623 return NULL;
10624 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010625 int _end_lineno = _token->end_lineno;
10626 UNUSED(_end_lineno); // Only used by EXTRA macro
10627 int _end_col_offset = _token->end_col_offset;
10628 UNUSED(_end_col_offset); // Only used by EXTRA macro
10629 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10630 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010633 return NULL;
10634 }
10635 goto done;
10636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010637 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010638 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10639 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010640 }
10641 { // '__new_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010644 return NULL;
10645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010646 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__new_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010647 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010648 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010649 (_keyword = _PyPegen_expect_token(p, 530)) // token='__new_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010650 )
10651 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010652 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__new_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010653 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10654 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010655 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010657 return NULL;
10658 }
10659 goto done;
10660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010661 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010662 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__new_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010664 }
10665 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010667 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010668 return NULL;
10669 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010670 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010671 expr_ty strings_var;
10672 if (
10673 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10674 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010675 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010676 )
10677 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010678 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010679 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010680 goto done;
10681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010682 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010683 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010685 }
10686 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010687 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010688 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010689 return NULL;
10690 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010691 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010692 expr_ty number_var;
10693 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010694 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010695 )
10696 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010697 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010698 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010699 goto done;
10700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010701 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010702 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10703 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010704 }
10705 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010707 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010708 return NULL;
10709 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010710 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Guido van Rossum3941d972020-05-01 09:42:03 -070010711 void *_tmp_96_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010712 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010713 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010714 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010715 (_tmp_96_var = _tmp_96_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010716 )
10717 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010718 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010719 _res = _tmp_96_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010720 goto done;
10721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010722 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010723 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010725 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010726 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010727 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010728 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010729 return NULL;
10730 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010731 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Guido van Rossum3941d972020-05-01 09:42:03 -070010732 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010733 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010734 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010735 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010736 (_tmp_97_var = _tmp_97_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010737 )
10738 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010739 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010740 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010741 goto done;
10742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010743 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010744 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10745 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010746 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010747 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010748 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010749 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010750 return NULL;
10751 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010752 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Guido van Rossum3941d972020-05-01 09:42:03 -070010753 void *_tmp_98_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010754 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010755 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010756 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010757 (_tmp_98_var = _tmp_98_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010758 )
10759 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010760 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010761 _res = _tmp_98_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010762 goto done;
10763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010765 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010767 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010768 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010771 return NULL;
10772 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010773 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010774 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010775 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010776 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010777 )
10778 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010779 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010780 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10781 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010782 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010783 return NULL;
10784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010785 int _end_lineno = _token->end_lineno;
10786 UNUSED(_end_lineno); // Only used by EXTRA macro
10787 int _end_col_offset = _token->end_col_offset;
10788 UNUSED(_end_col_offset); // Only used by EXTRA macro
10789 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10790 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010791 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010792 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010793 return NULL;
10794 }
10795 goto done;
10796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010798 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010801 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010802 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010804 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010805}
10806
10807// strings: STRING+
10808static expr_ty
10809strings_rule(Parser *p)
10810{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010811 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010814 return NULL;
10815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010816 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010817 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
10818 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010819 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010821 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010822 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010823 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010824 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010825 return NULL;
10826 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010827 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010828 asdl_seq * a;
10829 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010830 (a = _loop1_99_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010831 )
10832 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010833 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010834 _res = _PyPegen_concatenate_strings ( p , a );
10835 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010836 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010838 return NULL;
10839 }
10840 goto done;
10841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010843 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
10844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010846 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010847 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010848 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010849 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010850 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010851}
10852
10853// list: '[' star_named_expressions? ']'
10854static expr_ty
10855list_rule(Parser *p)
10856{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010857 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010858 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010859 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010860 return NULL;
10861 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010862 expr_ty _res = NULL;
10863 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010864 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10865 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010866 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010867 return NULL;
10868 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010869 int _start_lineno = p->tokens[_mark]->lineno;
10870 UNUSED(_start_lineno); // Only used by EXTRA macro
10871 int _start_col_offset = p->tokens[_mark]->col_offset;
10872 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010873 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010874 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010875 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010876 return NULL;
10877 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010878 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010879 Token * _literal;
10880 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010881 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010882 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010883 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010884 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010885 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010886 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010887 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010888 )
10889 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010890 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 +010010891 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10892 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010893 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010894 return NULL;
10895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010896 int _end_lineno = _token->end_lineno;
10897 UNUSED(_end_lineno); // Only used by EXTRA macro
10898 int _end_col_offset = _token->end_col_offset;
10899 UNUSED(_end_col_offset); // Only used by EXTRA macro
10900 _res = _Py_List ( a , Load , EXTRA );
10901 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010902 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010903 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010904 return NULL;
10905 }
10906 goto done;
10907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010908 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010909 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
10910 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010912 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010913 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010914 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010915 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010916}
10917
10918// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
10919static expr_ty
10920listcomp_rule(Parser *p)
10921{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010922 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010923 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010925 return NULL;
10926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010927 expr_ty _res = NULL;
10928 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010929 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10930 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010932 return NULL;
10933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010934 int _start_lineno = p->tokens[_mark]->lineno;
10935 UNUSED(_start_lineno); // Only used by EXTRA macro
10936 int _start_col_offset = p->tokens[_mark]->col_offset;
10937 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010938 { // '[' named_expression for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010940 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010941 return NULL;
10942 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010943 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010944 Token * _literal;
10945 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010946 expr_ty a;
10947 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010948 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010949 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010950 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010951 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010952 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010953 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010954 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010955 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010956 )
10957 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010958 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 +010010959 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10960 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010961 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010962 return NULL;
10963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010964 int _end_lineno = _token->end_lineno;
10965 UNUSED(_end_lineno); // Only used by EXTRA macro
10966 int _end_col_offset = _token->end_col_offset;
10967 UNUSED(_end_col_offset); // Only used by EXTRA macro
10968 _res = _Py_ListComp ( a , b , EXTRA );
10969 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010970 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010971 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010972 return NULL;
10973 }
10974 goto done;
10975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010976 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010977 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
10978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010979 }
10980 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010982 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010983 return NULL;
10984 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010985 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010986 void *invalid_comprehension_var;
10987 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010988 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010989 )
10990 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010991 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010992 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010993 goto done;
10994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010996 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
10997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010999 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011000 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011001 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011002 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011003}
11004
11005// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11006static expr_ty
11007tuple_rule(Parser *p)
11008{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011009 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011012 return NULL;
11013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011014 expr_ty _res = NULL;
11015 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011016 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11017 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011018 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011019 return NULL;
11020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011021 int _start_lineno = p->tokens[_mark]->lineno;
11022 UNUSED(_start_lineno); // Only used by EXTRA macro
11023 int _start_col_offset = p->tokens[_mark]->col_offset;
11024 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011025 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011026 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011027 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011028 return NULL;
11029 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011030 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 +010011031 Token * _literal;
11032 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011033 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011034 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011035 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011036 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011037 (a = _tmp_100_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011038 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011039 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011040 )
11041 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011042 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 +010011043 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11044 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011046 return NULL;
11047 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011048 int _end_lineno = _token->end_lineno;
11049 UNUSED(_end_lineno); // Only used by EXTRA macro
11050 int _end_col_offset = _token->end_col_offset;
11051 UNUSED(_end_col_offset); // Only used by EXTRA macro
11052 _res = _Py_Tuple ( a , Load , EXTRA );
11053 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011054 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011055 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011056 return NULL;
11057 }
11058 goto done;
11059 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011060 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011061 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11062 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011064 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011065 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011066 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011067 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011068}
11069
11070// group: '(' (yield_expr | named_expression) ')'
11071static expr_ty
11072group_rule(Parser *p)
11073{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011074 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011076 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011077 return NULL;
11078 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011079 expr_ty _res = NULL;
11080 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011081 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011082 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011083 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011084 return NULL;
11085 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011086 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 +010011087 Token * _literal;
11088 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011089 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011090 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011091 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011092 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011093 (a = _tmp_101_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011094 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011095 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011096 )
11097 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011098 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 +010011099 _res = a;
11100 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011101 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011102 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011103 return NULL;
11104 }
11105 goto done;
11106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011107 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011108 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011111 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011112 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011113 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011114 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011115}
11116
11117// genexp: '(' expression for_if_clauses ')' | invalid_comprehension
11118static expr_ty
11119genexp_rule(Parser *p)
11120{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011121 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011123 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011124 return NULL;
11125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011126 expr_ty _res = NULL;
11127 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011128 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11129 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011130 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011131 return NULL;
11132 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011133 int _start_lineno = p->tokens[_mark]->lineno;
11134 UNUSED(_start_lineno); // Only used by EXTRA macro
11135 int _start_col_offset = p->tokens[_mark]->col_offset;
11136 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011137 { // '(' expression for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011138 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011139 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011140 return NULL;
11141 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011142 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' expression for_if_clauses ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011143 Token * _literal;
11144 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011145 expr_ty a;
11146 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011147 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011148 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011149 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011150 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011151 &&
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, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011155 )
11156 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011157 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 +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_GeneratorExp ( 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 genexp[%d-%d]: %s failed!\n", p->level, ' ',
11177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression for_if_clauses ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011178 }
11179 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011182 return NULL;
11183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011184 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011185 void *invalid_comprehension_var;
11186 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011187 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011188 )
11189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011190 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011191 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011192 goto done;
11193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011194 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011195 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011198 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011199 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011200 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011201 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011202}
11203
11204// set: '{' expressions_list '}'
11205static expr_ty
11206set_rule(Parser *p)
11207{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011208 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011211 return NULL;
11212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011213 expr_ty _res = NULL;
11214 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011215 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11216 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011218 return NULL;
11219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011220 int _start_lineno = p->tokens[_mark]->lineno;
11221 UNUSED(_start_lineno); // Only used by EXTRA macro
11222 int _start_col_offset = p->tokens[_mark]->col_offset;
11223 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011224 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011226 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011227 return NULL;
11228 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011229 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011230 Token * _literal;
11231 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011232 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011233 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011234 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011235 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011236 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011237 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011238 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011239 )
11240 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011241 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011242 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11243 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011244 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011245 return NULL;
11246 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011247 int _end_lineno = _token->end_lineno;
11248 UNUSED(_end_lineno); // Only used by EXTRA macro
11249 int _end_col_offset = _token->end_col_offset;
11250 UNUSED(_end_col_offset); // Only used by EXTRA macro
11251 _res = _Py_Set ( a , EXTRA );
11252 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011253 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011254 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011255 return NULL;
11256 }
11257 goto done;
11258 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011259 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011260 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11261 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011263 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011264 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011265 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011266 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011267}
11268
11269// setcomp: '{' expression for_if_clauses '}' | invalid_comprehension
11270static expr_ty
11271setcomp_rule(Parser *p)
11272{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011273 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011276 return NULL;
11277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011278 expr_ty _res = NULL;
11279 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011280 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11281 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011283 return NULL;
11284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011285 int _start_lineno = p->tokens[_mark]->lineno;
11286 UNUSED(_start_lineno); // Only used by EXTRA macro
11287 int _start_col_offset = p->tokens[_mark]->col_offset;
11288 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011289 { // '{' expression for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011291 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011292 return NULL;
11293 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011294 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expression for_if_clauses '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011295 Token * _literal;
11296 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 expr_ty a;
11298 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011299 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011300 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011301 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011302 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011303 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011304 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011305 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011306 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011307 )
11308 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011309 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 +010011310 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11311 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011313 return NULL;
11314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011315 int _end_lineno = _token->end_lineno;
11316 UNUSED(_end_lineno); // Only used by EXTRA macro
11317 int _end_col_offset = _token->end_col_offset;
11318 UNUSED(_end_col_offset); // Only used by EXTRA macro
11319 _res = _Py_SetComp ( a , b , EXTRA );
11320 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011321 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011322 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011323 return NULL;
11324 }
11325 goto done;
11326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011327 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011328 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11329 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011330 }
11331 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011332 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011333 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011334 return NULL;
11335 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011336 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011337 void *invalid_comprehension_var;
11338 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011339 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011340 )
11341 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011342 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011343 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011344 goto done;
11345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011346 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011347 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11348 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011350 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011351 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011352 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011353 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011354}
11355
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011356// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011357static expr_ty
11358dict_rule(Parser *p)
11359{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011360 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011361 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011363 return NULL;
11364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011365 expr_ty _res = NULL;
11366 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011367 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11368 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011370 return NULL;
11371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011372 int _start_lineno = p->tokens[_mark]->lineno;
11373 UNUSED(_start_lineno); // Only used by EXTRA macro
11374 int _start_col_offset = p->tokens[_mark]->col_offset;
11375 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011376 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011378 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011379 return NULL;
11380 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011381 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011382 Token * _literal;
11383 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011384 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011385 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011386 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011387 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011388 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011389 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011390 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011391 )
11392 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011393 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 +010011394 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11395 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011396 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011397 return NULL;
11398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011399 int _end_lineno = _token->end_lineno;
11400 UNUSED(_end_lineno); // Only used by EXTRA macro
11401 int _end_col_offset = _token->end_col_offset;
11402 UNUSED(_end_col_offset); // Only used by EXTRA macro
11403 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11404 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011405 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011406 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011407 return NULL;
11408 }
11409 goto done;
11410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011411 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011412 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011415 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011416 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011417 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011418 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011419}
11420
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011421// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011422static expr_ty
11423dictcomp_rule(Parser *p)
11424{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011425 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011428 return NULL;
11429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011430 expr_ty _res = NULL;
11431 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011432 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11433 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011434 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011435 return NULL;
11436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011437 int _start_lineno = p->tokens[_mark]->lineno;
11438 UNUSED(_start_lineno); // Only used by EXTRA macro
11439 int _start_col_offset = p->tokens[_mark]->col_offset;
11440 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011441 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011443 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011444 return NULL;
11445 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011446 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 +010011447 Token * _literal;
11448 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011449 KeyValuePair* a;
11450 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011451 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011452 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011453 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011454 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011455 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011456 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011457 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011458 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011459 )
11460 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011461 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 +010011462 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11463 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011464 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011465 return NULL;
11466 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011467 int _end_lineno = _token->end_lineno;
11468 UNUSED(_end_lineno); // Only used by EXTRA macro
11469 int _end_col_offset = _token->end_col_offset;
11470 UNUSED(_end_col_offset); // Only used by EXTRA macro
11471 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11472 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011473 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011474 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011475 return NULL;
11476 }
11477 goto done;
11478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011479 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011480 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11481 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011482 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011483 { // invalid_dict_comprehension
11484 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011485 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011486 return NULL;
11487 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011488 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 -070011489 void *invalid_dict_comprehension_var;
11490 if (
11491 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11492 )
11493 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011494 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 -070011495 _res = invalid_dict_comprehension_var;
11496 goto done;
11497 }
11498 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011499 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011502 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011503 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011504 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011505 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011506}
11507
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011508// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011509static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011510double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011511{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011512 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011513 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011515 return NULL;
11516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011517 asdl_seq* _res = NULL;
11518 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011519 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011522 return NULL;
11523 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011524 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 +010011525 void *_opt_var;
11526 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011527 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011528 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011529 (a = _gather_102_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011530 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011531 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011532 )
11533 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011534 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 +010011535 _res = a;
11536 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011537 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011539 return NULL;
11540 }
11541 goto done;
11542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011543 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011544 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011547 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011548 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011549 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011550 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011551}
11552
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011553// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011554static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011555double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011556{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011557 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011560 return NULL;
11561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011562 KeyValuePair* _res = NULL;
11563 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011564 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011566 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011567 return NULL;
11568 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011569 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 +010011570 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011571 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011572 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011573 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011575 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011576 )
11577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011578 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 +010011579 _res = _PyPegen_key_value_pair ( p , NULL , a );
11580 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011581 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011582 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011583 return NULL;
11584 }
11585 goto done;
11586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011587 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011588 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011590 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011591 { // kvpair
11592 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011593 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011594 return NULL;
11595 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011596 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 -070011597 KeyValuePair* kvpair_var;
11598 if (
11599 (kvpair_var = kvpair_rule(p)) // kvpair
11600 )
11601 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011602 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 -070011603 _res = kvpair_var;
11604 goto done;
11605 }
11606 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011607 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011609 }
11610 _res = NULL;
11611 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011612 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011613 return _res;
11614}
11615
11616// kvpair: expression ':' expression
11617static KeyValuePair*
11618kvpair_rule(Parser *p)
11619{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011620 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011621 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011622 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011623 return NULL;
11624 }
11625 KeyValuePair* _res = NULL;
11626 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011627 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011628 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011629 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011630 return NULL;
11631 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011632 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011633 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011634 expr_ty a;
11635 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011636 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011637 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011638 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011639 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011640 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011641 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011642 )
11643 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011644 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011645 _res = _PyPegen_key_value_pair ( p , a , b );
11646 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011647 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011648 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011649 return NULL;
11650 }
11651 goto done;
11652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011653 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011654 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11655 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011657 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011658 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011659 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011660 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011661}
11662
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011663// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011664static asdl_seq*
11665for_if_clauses_rule(Parser *p)
11666{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011667 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011668 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011670 return NULL;
11671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011672 asdl_seq* _res = NULL;
11673 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011674 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011675 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011676 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011677 return NULL;
11678 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011679 D(fprintf(stderr, "%*c> for_if_clauses[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Guido van Rossum3941d972020-05-01 09:42:03 -070011680 asdl_seq * _loop1_104_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011681 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011682 (_loop1_104_var = _loop1_104_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011683 )
11684 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011685 D(fprintf(stderr, "%*c+ for_if_clauses[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "for_if_clause+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011686 _res = _loop1_104_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011687 goto done;
11688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011689 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011690 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11691 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011693 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011694 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011695 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011696 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011697}
11698
11699// for_if_clause:
11700// | ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*
11701// | 'for' star_targets 'in' disjunction (('if' disjunction))*
11702static comprehension_ty
11703for_if_clause_rule(Parser *p)
11704{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011705 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011707 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011708 return NULL;
11709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011710 comprehension_ty _res = NULL;
11711 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011712 { // ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011715 return NULL;
11716 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011717 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011718 Token * _keyword;
11719 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011720 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011721 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011722 expr_ty b;
11723 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011724 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011725 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011726 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011727 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011728 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011729 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011730 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011731 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011732 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011733 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011734 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011735 (c = _loop0_105_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011736 )
11737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011738 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 +010011739 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11740 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011741 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011742 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011743 return NULL;
11744 }
11745 goto done;
11746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011747 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011748 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
11749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011750 }
11751 { // 'for' star_targets 'in' disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011752 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011753 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011754 return NULL;
11755 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011756 D(fprintf(stderr, "%*c> for_if_clause[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for' star_targets 'in' disjunction (('if' disjunction))*"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011757 Token * _keyword;
11758 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011759 expr_ty a;
11760 expr_ty b;
11761 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011762 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011763 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011764 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011765 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011766 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011767 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011768 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011769 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011770 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011771 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011772 )
11773 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011774 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 +010011775 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
11776 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011777 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011779 return NULL;
11780 }
11781 goto done;
11782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011784 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
11785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' disjunction (('if' disjunction))*"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011787 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011788 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011789 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011790 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011791}
11792
11793// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
11794static expr_ty
11795yield_expr_rule(Parser *p)
11796{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011797 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011798 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011799 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011800 return NULL;
11801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011802 expr_ty _res = NULL;
11803 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011804 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11805 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011806 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011807 return NULL;
11808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011809 int _start_lineno = p->tokens[_mark]->lineno;
11810 UNUSED(_start_lineno); // Only used by EXTRA macro
11811 int _start_col_offset = p->tokens[_mark]->col_offset;
11812 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011813 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011815 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011816 return NULL;
11817 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011818 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 +010011819 Token * _keyword;
11820 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011821 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011822 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011823 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011824 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011825 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011826 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011827 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011828 )
11829 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011830 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 +010011831 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11832 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011834 return NULL;
11835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011836 int _end_lineno = _token->end_lineno;
11837 UNUSED(_end_lineno); // Only used by EXTRA macro
11838 int _end_col_offset = _token->end_col_offset;
11839 UNUSED(_end_col_offset); // Only used by EXTRA macro
11840 _res = _Py_YieldFrom ( a , EXTRA );
11841 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011842 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011843 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011844 return NULL;
11845 }
11846 goto done;
11847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011848 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011849 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
11850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011851 }
11852 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011854 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011855 return NULL;
11856 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011857 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 +010011858 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011859 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011860 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011861 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011862 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011863 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011864 )
11865 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011866 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 +010011867 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11868 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011869 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011870 return NULL;
11871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011872 int _end_lineno = _token->end_lineno;
11873 UNUSED(_end_lineno); // Only used by EXTRA macro
11874 int _end_col_offset = _token->end_col_offset;
11875 UNUSED(_end_col_offset); // Only used by EXTRA macro
11876 _res = _Py_Yield ( a , EXTRA );
11877 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011878 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011880 return NULL;
11881 }
11882 goto done;
11883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011884 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011885 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
11886 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011887 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011888 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011889 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011890 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011891 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011892}
11893
11894// arguments: args ','? &')' | incorrect_arguments
11895static expr_ty
11896arguments_rule(Parser *p)
11897{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011898 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011901 return NULL;
11902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011903 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011904 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
11905 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011906 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011907 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011908 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011909 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011912 return NULL;
11913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011914 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011915 void *_opt_var;
11916 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011917 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011918 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011919 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011920 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011921 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011922 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011923 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011924 )
11925 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011926 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011927 _res = a;
11928 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011929 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011930 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011931 return NULL;
11932 }
11933 goto done;
11934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011935 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011936 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
11937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011938 }
11939 { // incorrect_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011940 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011941 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011942 return NULL;
11943 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011944 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011945 void *incorrect_arguments_var;
11946 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011947 (incorrect_arguments_var = incorrect_arguments_rule(p)) // incorrect_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011948 )
11949 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011950 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011951 _res = incorrect_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011952 goto done;
11953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011954 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011955 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
11956 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011958 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011959 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011960 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011961 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011962 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011963}
11964
11965// args: starred_expression [',' args] | kwargs | named_expression [',' args]
11966static expr_ty
11967args_rule(Parser *p)
11968{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011969 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011971 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011972 return NULL;
11973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011974 expr_ty _res = NULL;
11975 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011976 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11977 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011979 return NULL;
11980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011981 int _start_lineno = p->tokens[_mark]->lineno;
11982 UNUSED(_start_lineno); // Only used by EXTRA macro
11983 int _start_col_offset = p->tokens[_mark]->col_offset;
11984 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011985 { // starred_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011986 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011987 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011988 return NULL;
11989 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011990 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011991 expr_ty a;
11992 void *b;
11993 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011994 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011995 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011996 (b = _tmp_107_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011997 )
11998 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011999 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 +010012000 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12001 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012002 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012003 return NULL;
12004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012005 int _end_lineno = _token->end_lineno;
12006 UNUSED(_end_lineno); // Only used by EXTRA macro
12007 int _end_col_offset = _token->end_col_offset;
12008 UNUSED(_end_col_offset); // Only used by EXTRA macro
12009 _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 );
12010 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012011 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012013 return NULL;
12014 }
12015 goto done;
12016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012017 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012018 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12019 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012020 }
12021 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012022 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012023 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012024 return NULL;
12025 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012026 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012027 asdl_seq* a;
12028 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012029 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012030 )
12031 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012032 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12034 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012036 return NULL;
12037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012038 int _end_lineno = _token->end_lineno;
12039 UNUSED(_end_lineno); // Only used by EXTRA macro
12040 int _end_col_offset = _token->end_col_offset;
12041 UNUSED(_end_col_offset); // Only used by EXTRA macro
12042 _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 );
12043 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012044 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012046 return NULL;
12047 }
12048 goto done;
12049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012050 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012051 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012053 }
12054 { // named_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012056 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012057 return NULL;
12058 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012059 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012060 expr_ty a;
12061 void *b;
12062 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012063 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012064 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012065 (b = _tmp_108_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012066 )
12067 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012068 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 +010012069 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12070 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012071 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012072 return NULL;
12073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012074 int _end_lineno = _token->end_lineno;
12075 UNUSED(_end_lineno); // Only used by EXTRA macro
12076 int _end_col_offset = _token->end_col_offset;
12077 UNUSED(_end_col_offset); // Only used by EXTRA macro
12078 _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 );
12079 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012080 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012082 return NULL;
12083 }
12084 goto done;
12085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012086 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012087 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012090 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012091 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012092 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012093 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012094}
12095
12096// kwargs:
12097// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12098// | ','.kwarg_or_starred+
12099// | ','.kwarg_or_double_starred+
12100static asdl_seq*
12101kwargs_rule(Parser *p)
12102{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012103 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012104 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012105 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012106 return NULL;
12107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012108 asdl_seq* _res = NULL;
12109 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012110 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012112 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012113 return NULL;
12114 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012115 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 +010012116 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012117 asdl_seq * a;
12118 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012119 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012120 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012121 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012122 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012123 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012124 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012125 )
12126 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012127 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 +010012128 _res = _PyPegen_join_sequences ( p , a , b );
12129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012132 return NULL;
12133 }
12134 goto done;
12135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012137 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012139 }
12140 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012143 return NULL;
12144 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012145 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Guido van Rossum3941d972020-05-01 09:42:03 -070012146 asdl_seq * _gather_113_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012147 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012148 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012149 )
12150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012151 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012152 _res = _gather_113_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012153 goto done;
12154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012155 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012156 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012158 }
12159 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012160 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012161 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012162 return NULL;
12163 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012164 D(fprintf(stderr, "%*c> kwargs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Guido van Rossum3941d972020-05-01 09:42:03 -070012165 asdl_seq * _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012166 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012167 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012168 )
12169 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012170 D(fprintf(stderr, "%*c+ kwargs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012171 _res = _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012172 goto done;
12173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012174 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012175 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012178 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012179 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012180 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012181 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012182}
12183
12184// starred_expression: '*' expression
12185static expr_ty
12186starred_expression_rule(Parser *p)
12187{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012188 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012189 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012190 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012191 return NULL;
12192 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012193 expr_ty _res = NULL;
12194 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012195 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12196 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012197 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012198 return NULL;
12199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012200 int _start_lineno = p->tokens[_mark]->lineno;
12201 UNUSED(_start_lineno); // Only used by EXTRA macro
12202 int _start_col_offset = p->tokens[_mark]->col_offset;
12203 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012204 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012205 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012206 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012207 return NULL;
12208 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012209 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012210 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012211 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012212 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012213 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012214 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012215 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012216 )
12217 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012218 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012219 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12220 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012222 return NULL;
12223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012224 int _end_lineno = _token->end_lineno;
12225 UNUSED(_end_lineno); // Only used by EXTRA macro
12226 int _end_col_offset = _token->end_col_offset;
12227 UNUSED(_end_col_offset); // Only used by EXTRA macro
12228 _res = _Py_Starred ( a , Load , EXTRA );
12229 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012230 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012231 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012232 return NULL;
12233 }
12234 goto done;
12235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012236 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012237 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12238 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012240 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012241 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012242 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012243 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012244}
12245
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012246// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012247static KeywordOrStarred*
12248kwarg_or_starred_rule(Parser *p)
12249{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012250 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012251 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012253 return NULL;
12254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012255 KeywordOrStarred* _res = NULL;
12256 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012257 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12258 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012259 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012260 return NULL;
12261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012262 int _start_lineno = p->tokens[_mark]->lineno;
12263 UNUSED(_start_lineno); // Only used by EXTRA macro
12264 int _start_col_offset = p->tokens[_mark]->col_offset;
12265 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012266 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012267 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012268 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012269 return NULL;
12270 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012271 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 +010012272 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012273 expr_ty a;
12274 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012275 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012276 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012277 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012278 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012279 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012280 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012281 )
12282 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012283 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 +010012284 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12285 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012286 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012287 return NULL;
12288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012289 int _end_lineno = _token->end_lineno;
12290 UNUSED(_end_lineno); // Only used by EXTRA macro
12291 int _end_col_offset = _token->end_col_offset;
12292 UNUSED(_end_col_offset); // Only used by EXTRA macro
12293 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12294 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012295 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012297 return NULL;
12298 }
12299 goto done;
12300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012301 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012302 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12303 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012304 }
12305 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012306 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012307 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012308 return NULL;
12309 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012310 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 +010012311 expr_ty a;
12312 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012313 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012314 )
12315 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012316 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 +010012317 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12318 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012319 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012321 return NULL;
12322 }
12323 goto done;
12324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012325 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012326 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012328 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012329 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012331 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012332 return NULL;
12333 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012334 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 +030012335 void *invalid_kwarg_var;
12336 if (
12337 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12338 )
12339 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012340 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 +010012341 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012342 goto done;
12343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012344 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012345 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12346 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012348 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012349 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012350 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012351 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012352}
12353
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012354// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012355static KeywordOrStarred*
12356kwarg_or_double_starred_rule(Parser *p)
12357{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012358 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012359 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012361 return NULL;
12362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012363 KeywordOrStarred* _res = NULL;
12364 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012365 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12366 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012367 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012368 return NULL;
12369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012370 int _start_lineno = p->tokens[_mark]->lineno;
12371 UNUSED(_start_lineno); // Only used by EXTRA macro
12372 int _start_col_offset = p->tokens[_mark]->col_offset;
12373 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012374 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012375 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012376 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012377 return NULL;
12378 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012379 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 +010012380 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012381 expr_ty a;
12382 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012383 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012384 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012385 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012386 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012387 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012388 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012389 )
12390 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012391 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 +010012392 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12393 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012395 return NULL;
12396 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012397 int _end_lineno = _token->end_lineno;
12398 UNUSED(_end_lineno); // Only used by EXTRA macro
12399 int _end_col_offset = _token->end_col_offset;
12400 UNUSED(_end_col_offset); // Only used by EXTRA macro
12401 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12402 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012403 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012405 return NULL;
12406 }
12407 goto done;
12408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012409 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012410 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012412 }
12413 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012415 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012416 return NULL;
12417 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012418 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 +010012419 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012420 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012421 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012422 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012423 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012424 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012425 )
12426 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012427 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 +010012428 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12429 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012431 return NULL;
12432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012433 int _end_lineno = _token->end_lineno;
12434 UNUSED(_end_lineno); // Only used by EXTRA macro
12435 int _end_col_offset = _token->end_col_offset;
12436 UNUSED(_end_col_offset); // Only used by EXTRA macro
12437 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12438 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012439 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012441 return NULL;
12442 }
12443 goto done;
12444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012445 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012446 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12447 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012448 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012449 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012452 return NULL;
12453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012454 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 +030012455 void *invalid_kwarg_var;
12456 if (
12457 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12458 )
12459 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012460 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 +010012461 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012462 goto done;
12463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012464 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012465 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12466 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012468 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012469 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012470 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012471 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012472}
12473
12474// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12475static expr_ty
12476star_targets_rule(Parser *p)
12477{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012478 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012479 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012480 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012481 return NULL;
12482 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012483 expr_ty _res = NULL;
12484 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012485 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12486 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012488 return NULL;
12489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012490 int _start_lineno = p->tokens[_mark]->lineno;
12491 UNUSED(_start_lineno); // Only used by EXTRA macro
12492 int _start_col_offset = p->tokens[_mark]->col_offset;
12493 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012494 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012495 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012496 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012497 return NULL;
12498 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012499 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012500 expr_ty a;
12501 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012502 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012503 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012504 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012505 )
12506 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012507 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 +010012508 _res = a;
12509 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012510 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012512 return NULL;
12513 }
12514 goto done;
12515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012516 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012517 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012519 }
12520 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012522 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012523 return NULL;
12524 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012525 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 +010012526 void *_opt_var;
12527 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012528 expr_ty a;
12529 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012530 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012531 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012532 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012533 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012534 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012535 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012536 )
12537 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012538 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 +010012539 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12540 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012541 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012542 return NULL;
12543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012544 int _end_lineno = _token->end_lineno;
12545 UNUSED(_end_lineno); // Only used by EXTRA macro
12546 int _end_col_offset = _token->end_col_offset;
12547 UNUSED(_end_col_offset); // Only used by EXTRA macro
12548 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12549 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012550 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012552 return NULL;
12553 }
12554 goto done;
12555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012556 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012557 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012560 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012561 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012562 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012563 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012564}
12565
12566// star_targets_seq: ','.star_target+ ','?
12567static asdl_seq*
12568star_targets_seq_rule(Parser *p)
12569{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012570 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012572 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012573 return NULL;
12574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012575 asdl_seq* _res = NULL;
12576 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012577 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012579 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012580 return NULL;
12581 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012582 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 +010012583 void *_opt_var;
12584 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012585 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012586 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012587 (a = _gather_118_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012588 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012589 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012590 )
12591 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012592 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 +010012593 _res = a;
12594 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012595 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012596 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012597 return NULL;
12598 }
12599 goto done;
12600 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012601 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012602 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012605 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012606 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012607 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012608 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012609}
12610
12611// star_target:
12612// | '*' (!'*' star_target)
12613// | t_primary '.' NAME !t_lookahead
12614// | t_primary '[' slices ']' !t_lookahead
12615// | star_atom
12616static expr_ty
12617star_target_rule(Parser *p)
12618{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012619 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012621 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012622 return NULL;
12623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012624 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012625 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12626 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012627 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012628 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012629 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012630 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12631 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012632 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012633 return NULL;
12634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012635 int _start_lineno = p->tokens[_mark]->lineno;
12636 UNUSED(_start_lineno); // Only used by EXTRA macro
12637 int _start_col_offset = p->tokens[_mark]->col_offset;
12638 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012639 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012642 return NULL;
12643 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012644 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012645 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012646 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012647 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012648 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012649 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012650 (a = _tmp_120_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012651 )
12652 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012653 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 +010012654 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12655 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012657 return NULL;
12658 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012659 int _end_lineno = _token->end_lineno;
12660 UNUSED(_end_lineno); // Only used by EXTRA macro
12661 int _end_col_offset = _token->end_col_offset;
12662 UNUSED(_end_col_offset); // Only used by EXTRA macro
12663 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12664 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012665 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012666 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012667 return NULL;
12668 }
12669 goto done;
12670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012671 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012672 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12673 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012674 }
12675 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012677 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012678 return NULL;
12679 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012680 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 +010012681 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012682 expr_ty a;
12683 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012684 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012685 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012686 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012687 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012688 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012689 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012690 &&
12691 _PyPegen_lookahead(0, t_lookahead_rule, p)
12692 )
12693 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012694 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 +010012695 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12696 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012698 return NULL;
12699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012700 int _end_lineno = _token->end_lineno;
12701 UNUSED(_end_lineno); // Only used by EXTRA macro
12702 int _end_col_offset = _token->end_col_offset;
12703 UNUSED(_end_col_offset); // Only used by EXTRA macro
12704 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12705 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012706 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012707 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012708 return NULL;
12709 }
12710 goto done;
12711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012712 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012713 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12714 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012715 }
12716 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012717 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012718 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012719 return NULL;
12720 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012721 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 +010012722 Token * _literal;
12723 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012724 expr_ty a;
12725 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012726 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012727 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012728 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012729 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012730 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012731 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012732 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012733 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012734 &&
12735 _PyPegen_lookahead(0, t_lookahead_rule, p)
12736 )
12737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012738 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 +010012739 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12740 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012742 return NULL;
12743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012744 int _end_lineno = _token->end_lineno;
12745 UNUSED(_end_lineno); // Only used by EXTRA macro
12746 int _end_col_offset = _token->end_col_offset;
12747 UNUSED(_end_col_offset); // Only used by EXTRA macro
12748 _res = _Py_Subscript ( a , b , Store , EXTRA );
12749 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012750 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012751 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012752 return NULL;
12753 }
12754 goto done;
12755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012756 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012757 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12758 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012759 }
12760 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012761 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012762 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012763 return NULL;
12764 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012765 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012766 expr_ty star_atom_var;
12767 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012768 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012769 )
12770 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012771 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 +010012772 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012773 goto done;
12774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012775 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012776 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12777 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012779 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012780 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012781 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012782 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012783 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012784}
12785
12786// star_atom:
12787// | NAME
12788// | '(' star_target ')'
12789// | '(' star_targets_seq? ')'
12790// | '[' star_targets_seq? ']'
12791static expr_ty
12792star_atom_rule(Parser *p)
12793{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012794 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012796 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012797 return NULL;
12798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012799 expr_ty _res = NULL;
12800 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012801 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12802 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012804 return NULL;
12805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012806 int _start_lineno = p->tokens[_mark]->lineno;
12807 UNUSED(_start_lineno); // Only used by EXTRA macro
12808 int _start_col_offset = p->tokens[_mark]->col_offset;
12809 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012810 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012812 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012813 return NULL;
12814 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012815 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012816 expr_ty a;
12817 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012818 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012819 )
12820 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012821 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012822 _res = _PyPegen_set_expr_context ( p , a , Store );
12823 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012824 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012825 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012826 return NULL;
12827 }
12828 goto done;
12829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012830 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012831 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012833 }
12834 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012835 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012836 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012837 return NULL;
12838 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012839 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012840 Token * _literal;
12841 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012842 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012843 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012844 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012845 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012846 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012847 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012848 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012849 )
12850 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012851 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 +010012852 _res = _PyPegen_set_expr_context ( p , a , Store );
12853 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012854 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012855 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012856 return NULL;
12857 }
12858 goto done;
12859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012860 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012861 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012863 }
12864 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012866 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012867 return NULL;
12868 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012869 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 +010012870 Token * _literal;
12871 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012872 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012873 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012874 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012875 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012876 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012877 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012878 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012879 )
12880 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012881 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 +010012882 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12883 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012885 return NULL;
12886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012887 int _end_lineno = _token->end_lineno;
12888 UNUSED(_end_lineno); // Only used by EXTRA macro
12889 int _end_col_offset = _token->end_col_offset;
12890 UNUSED(_end_col_offset); // Only used by EXTRA macro
12891 _res = _Py_Tuple ( a , Store , EXTRA );
12892 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012893 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012895 return NULL;
12896 }
12897 goto done;
12898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012899 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012900 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012902 }
12903 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012905 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012906 return NULL;
12907 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012908 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012909 Token * _literal;
12910 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012911 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012912 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012913 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012914 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012915 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012916 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012917 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012918 )
12919 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012920 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 +010012921 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12922 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012924 return NULL;
12925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012926 int _end_lineno = _token->end_lineno;
12927 UNUSED(_end_lineno); // Only used by EXTRA macro
12928 int _end_col_offset = _token->end_col_offset;
12929 UNUSED(_end_col_offset); // Only used by EXTRA macro
12930 _res = _Py_List ( a , Store , EXTRA );
12931 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012932 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012933 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012934 return NULL;
12935 }
12936 goto done;
12937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012938 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012939 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12940 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012942 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012943 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012944 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012945 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012946}
12947
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012948// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012949static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012950single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012951{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012952 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012953 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012954 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012955 return NULL;
12956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012957 expr_ty _res = NULL;
12958 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012959 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012960 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012961 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012962 return NULL;
12963 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012964 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 +030012965 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012966 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012967 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012968 )
12969 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012970 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 +030012971 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012972 goto done;
12973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012974 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012975 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
12976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012977 }
12978 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012979 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012980 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012981 return NULL;
12982 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012983 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012984 expr_ty a;
12985 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012986 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012987 )
12988 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012989 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012990 _res = _PyPegen_set_expr_context ( p , a , Store );
12991 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012992 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012993 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012994 return NULL;
12995 }
12996 goto done;
12997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012998 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012999 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13000 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013001 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013002 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013004 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013005 return NULL;
13006 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013007 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013008 Token * _literal;
13009 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013010 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013011 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013012 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013013 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013014 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013015 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013016 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013017 )
13018 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013019 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 +010013020 _res = a;
13021 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013022 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013024 return NULL;
13025 }
13026 goto done;
13027 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013028 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013029 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13030 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013032 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013033 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013034 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013035 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013036}
13037
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013038// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013039// | t_primary '.' NAME !t_lookahead
13040// | t_primary '[' slices ']' !t_lookahead
13041static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013042single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013043{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013044 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013045 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013047 return NULL;
13048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013049 expr_ty _res = NULL;
13050 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013051 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13052 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013054 return NULL;
13055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013056 int _start_lineno = p->tokens[_mark]->lineno;
13057 UNUSED(_start_lineno); // Only used by EXTRA macro
13058 int _start_col_offset = p->tokens[_mark]->col_offset;
13059 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013060 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013061 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013062 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013063 return NULL;
13064 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013065 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 +010013066 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013067 expr_ty a;
13068 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013069 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013070 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013071 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013072 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013073 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013074 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013075 &&
13076 _PyPegen_lookahead(0, t_lookahead_rule, p)
13077 )
13078 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013079 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 +010013080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13081 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013082 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013083 return NULL;
13084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013085 int _end_lineno = _token->end_lineno;
13086 UNUSED(_end_lineno); // Only used by EXTRA macro
13087 int _end_col_offset = _token->end_col_offset;
13088 UNUSED(_end_col_offset); // Only used by EXTRA macro
13089 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13090 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013091 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013092 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013093 return NULL;
13094 }
13095 goto done;
13096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013097 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013098 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013100 }
13101 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013102 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013103 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013104 return NULL;
13105 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013106 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 +010013107 Token * _literal;
13108 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013109 expr_ty a;
13110 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013111 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013112 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013113 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013114 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013115 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013116 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013118 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013119 &&
13120 _PyPegen_lookahead(0, t_lookahead_rule, p)
13121 )
13122 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013123 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 +010013124 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13125 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013126 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013127 return NULL;
13128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013129 int _end_lineno = _token->end_lineno;
13130 UNUSED(_end_lineno); // Only used by EXTRA macro
13131 int _end_col_offset = _token->end_col_offset;
13132 UNUSED(_end_col_offset); // Only used by EXTRA macro
13133 _res = _Py_Subscript ( a , b , Store , EXTRA );
13134 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013135 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013136 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013137 return NULL;
13138 }
13139 goto done;
13140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013141 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013142 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013144 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013145 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013146 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013147 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013148 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013149}
13150
13151// del_targets: ','.del_target+ ','?
13152static asdl_seq*
13153del_targets_rule(Parser *p)
13154{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013155 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013156 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013157 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013158 return NULL;
13159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013160 asdl_seq* _res = NULL;
13161 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013162 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013163 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013164 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013165 return NULL;
13166 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013167 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013168 void *_opt_var;
13169 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013170 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013171 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013172 (a = _gather_121_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013173 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013174 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013175 )
13176 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013177 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 +010013178 _res = a;
13179 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013180 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013181 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013182 return NULL;
13183 }
13184 goto done;
13185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013186 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013187 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013190 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013191 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013192 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013193 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013194}
13195
13196// del_target:
Shantanu27c0d9b2020-05-11 14:53:58 -070013197// | t_primary '.' NAME &del_target_end
13198// | t_primary '[' slices ']' &del_target_end
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013199// | del_t_atom
13200static expr_ty
13201del_target_rule(Parser *p)
13202{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013203 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013206 return NULL;
13207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013208 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013209 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13210 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013211 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013213 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013214 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13215 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013217 return NULL;
13218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013219 int _start_lineno = p->tokens[_mark]->lineno;
13220 UNUSED(_start_lineno); // Only used by EXTRA macro
13221 int _start_col_offset = p->tokens[_mark]->col_offset;
13222 UNUSED(_start_col_offset); // Only used by EXTRA macro
Shantanu27c0d9b2020-05-11 14:53:58 -070013223 { // t_primary '.' NAME &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013225 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013226 return NULL;
13227 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013228 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &del_target_end"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013229 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013230 expr_ty a;
13231 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013232 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013233 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013234 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013235 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013236 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013237 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013238 &&
Shantanu27c0d9b2020-05-11 14:53:58 -070013239 _PyPegen_lookahead(1, del_target_end_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013240 )
13241 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013242 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &del_target_end"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013243 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13244 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013245 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013246 return NULL;
13247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013248 int _end_lineno = _token->end_lineno;
13249 UNUSED(_end_lineno); // Only used by EXTRA macro
13250 int _end_col_offset = _token->end_col_offset;
13251 UNUSED(_end_col_offset); // Only used by EXTRA macro
13252 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13253 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013254 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013255 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013256 return NULL;
13257 }
13258 goto done;
13259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013260 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013261 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013263 }
Shantanu27c0d9b2020-05-11 14:53:58 -070013264 { // t_primary '[' slices ']' &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013265 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013266 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013267 return NULL;
13268 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013269 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &del_target_end"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013270 Token * _literal;
13271 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013272 expr_ty a;
13273 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013274 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013275 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013276 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013277 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013278 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013279 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013280 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013281 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013282 &&
Shantanu27c0d9b2020-05-11 14:53:58 -070013283 _PyPegen_lookahead(1, del_target_end_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013284 )
13285 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013286 D(fprintf(stderr, "%*c+ del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &del_target_end"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013287 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13288 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013289 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013290 return NULL;
13291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013292 int _end_lineno = _token->end_lineno;
13293 UNUSED(_end_lineno); // Only used by EXTRA macro
13294 int _end_col_offset = _token->end_col_offset;
13295 UNUSED(_end_col_offset); // Only used by EXTRA macro
13296 _res = _Py_Subscript ( a , b , Del , EXTRA );
13297 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013298 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013300 return NULL;
13301 }
13302 goto done;
13303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013304 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013305 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013307 }
13308 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013310 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013311 return NULL;
13312 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013313 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 +010013314 expr_ty del_t_atom_var;
13315 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013316 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013317 )
13318 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013319 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 +010013320 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013321 goto done;
13322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013324 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013327 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013328 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013329 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013330 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013331 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013332}
13333
Shantanu27c0d9b2020-05-11 14:53:58 -070013334// del_t_atom:
13335// | NAME &del_target_end
13336// | '(' del_target ')'
13337// | '(' del_targets? ')'
13338// | '[' del_targets? ']'
13339// | invalid_del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013340static expr_ty
13341del_t_atom_rule(Parser *p)
13342{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013343 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013345 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013346 return NULL;
13347 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013348 expr_ty _res = NULL;
13349 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013350 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13351 p->error_indicator = 1;
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 _start_lineno = p->tokens[_mark]->lineno;
13356 UNUSED(_start_lineno); // Only used by EXTRA macro
13357 int _start_col_offset = p->tokens[_mark]->col_offset;
13358 UNUSED(_start_col_offset); // Only used by EXTRA macro
Shantanu27c0d9b2020-05-11 14:53:58 -070013359 { // NAME &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013362 return NULL;
13363 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013364 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013365 expr_ty a;
13366 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013367 (a = _PyPegen_name_token(p)) // NAME
Shantanu27c0d9b2020-05-11 14:53:58 -070013368 &&
13369 _PyPegen_lookahead(1, del_target_end_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013370 )
13371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013372 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME &del_target_end"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013373 _res = _PyPegen_set_expr_context ( p , a , Del );
13374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013377 return NULL;
13378 }
13379 goto done;
13380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013382 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013384 }
13385 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013386 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013387 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013388 return NULL;
13389 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013390 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 +010013391 Token * _literal;
13392 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013393 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013394 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013395 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013396 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013397 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013398 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013399 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013400 )
13401 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013402 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 +010013403 _res = _PyPegen_set_expr_context ( p , a , Del );
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 del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13413 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013414 }
13415 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013418 return NULL;
13419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013420 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 +010013421 Token * _literal;
13422 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013423 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013424 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013425 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013426 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013427 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013428 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013429 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013430 )
13431 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013432 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 +010013433 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13434 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013436 return NULL;
13437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013438 int _end_lineno = _token->end_lineno;
13439 UNUSED(_end_lineno); // Only used by EXTRA macro
13440 int _end_col_offset = _token->end_col_offset;
13441 UNUSED(_end_col_offset); // Only used by EXTRA macro
13442 _res = _Py_Tuple ( a , Del , EXTRA );
13443 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013444 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013445 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013446 return NULL;
13447 }
13448 goto done;
13449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013451 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013453 }
13454 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013457 return NULL;
13458 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013459 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 +010013460 Token * _literal;
13461 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013462 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013463 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013464 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013465 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013466 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013467 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013468 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013469 )
13470 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013471 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 +010013472 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13473 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013474 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013475 return NULL;
13476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013477 int _end_lineno = _token->end_lineno;
13478 UNUSED(_end_lineno); // Only used by EXTRA macro
13479 int _end_col_offset = _token->end_col_offset;
13480 UNUSED(_end_col_offset); // Only used by EXTRA macro
13481 _res = _Py_List ( a , Del , EXTRA );
13482 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013483 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013485 return NULL;
13486 }
13487 goto done;
13488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013489 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013490 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013492 }
Shantanu27c0d9b2020-05-11 14:53:58 -070013493 { // invalid_del_target
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 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013498 D(fprintf(stderr, "%*c> del_t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_del_target"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013499 void *invalid_del_target_var;
13500 if (
13501 (invalid_del_target_var = invalid_del_target_rule(p)) // invalid_del_target
13502 )
13503 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013504 D(fprintf(stderr, "%*c+ del_t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_del_target"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013505 _res = invalid_del_target_var;
13506 goto done;
13507 }
13508 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013509 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13510 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_target"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013511 }
13512 _res = NULL;
13513 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013514 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070013515 return _res;
13516}
13517
13518// del_target_end: ')' | ']' | ',' | ';' | NEWLINE
13519static void *
13520del_target_end_rule(Parser *p)
13521{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013522 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070013523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013524 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070013525 return NULL;
13526 }
13527 void * _res = NULL;
13528 int _mark = p->mark;
13529 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013532 return NULL;
13533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013534 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013535 Token * _literal;
13536 if (
13537 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
13538 )
13539 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013540 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013541 _res = _literal;
13542 goto done;
13543 }
13544 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013545 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13546 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013547 }
13548 { // ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013549 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013550 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013551 return NULL;
13552 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013553 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "']'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013554 Token * _literal;
13555 if (
13556 (_literal = _PyPegen_expect_token(p, 10)) // token=']'
13557 )
13558 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013559 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "']'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013560 _res = _literal;
13561 goto done;
13562 }
13563 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013564 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13565 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "']'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013566 }
13567 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013568 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013569 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013570 return NULL;
13571 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013572 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013573 Token * _literal;
13574 if (
13575 (_literal = _PyPegen_expect_token(p, 12)) // token=','
13576 )
13577 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013578 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013579 _res = _literal;
13580 goto done;
13581 }
13582 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013583 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13584 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013585 }
13586 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013587 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013588 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013589 return NULL;
13590 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013591 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013592 Token * _literal;
13593 if (
13594 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
13595 )
13596 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013597 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013598 _res = _literal;
13599 goto done;
13600 }
13601 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013602 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13603 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013604 }
13605 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013606 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013607 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013608 return NULL;
13609 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013610 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013611 Token * newline_var;
13612 if (
13613 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
13614 )
13615 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013616 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013617 _res = newline_var;
13618 goto done;
13619 }
13620 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013621 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13622 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013624 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013625 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013626 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013627 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013628}
13629
13630// targets: ','.target+ ','?
13631static asdl_seq*
13632targets_rule(Parser *p)
13633{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013634 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013635 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013637 return NULL;
13638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013639 asdl_seq* _res = NULL;
13640 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013641 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013642 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013643 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013644 return NULL;
13645 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013646 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013647 void *_opt_var;
13648 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013649 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013650 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013651 (a = _gather_123_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013652 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013653 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013654 )
13655 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013656 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013657 _res = a;
13658 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013659 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013660 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013661 return NULL;
13662 }
13663 goto done;
13664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013665 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013666 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013669 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013670 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013671 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013672 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013673}
13674
13675// target:
13676// | t_primary '.' NAME !t_lookahead
13677// | t_primary '[' slices ']' !t_lookahead
13678// | t_atom
13679static expr_ty
13680target_rule(Parser *p)
13681{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013682 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013683 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013684 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013685 return NULL;
13686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013687 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013688 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13689 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013690 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013692 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013693 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13694 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013696 return NULL;
13697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013698 int _start_lineno = p->tokens[_mark]->lineno;
13699 UNUSED(_start_lineno); // Only used by EXTRA macro
13700 int _start_col_offset = p->tokens[_mark]->col_offset;
13701 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013702 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013704 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013705 return NULL;
13706 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013707 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 +010013708 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013709 expr_ty a;
13710 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013711 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013712 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013713 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013714 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013715 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013716 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013717 &&
13718 _PyPegen_lookahead(0, t_lookahead_rule, p)
13719 )
13720 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013721 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 +010013722 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13723 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013724 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 return NULL;
13726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013727 int _end_lineno = _token->end_lineno;
13728 UNUSED(_end_lineno); // Only used by EXTRA macro
13729 int _end_col_offset = _token->end_col_offset;
13730 UNUSED(_end_col_offset); // Only used by EXTRA macro
13731 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13732 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013733 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013734 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013735 return NULL;
13736 }
13737 goto done;
13738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013739 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013740 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013742 }
13743 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013745 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013746 return NULL;
13747 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013748 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 +010013749 Token * _literal;
13750 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013751 expr_ty a;
13752 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013753 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013754 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013755 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013756 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013757 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013758 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013759 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013760 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013761 &&
13762 _PyPegen_lookahead(0, t_lookahead_rule, p)
13763 )
13764 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013765 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 +010013766 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13767 if (_token == NULL) {
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 int _end_lineno = _token->end_lineno;
13772 UNUSED(_end_lineno); // Only used by EXTRA macro
13773 int _end_col_offset = _token->end_col_offset;
13774 UNUSED(_end_col_offset); // Only used by EXTRA macro
13775 _res = _Py_Subscript ( a , b , Store , EXTRA );
13776 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013777 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013778 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013779 return NULL;
13780 }
13781 goto done;
13782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013784 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013786 }
13787 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013789 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013790 return NULL;
13791 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013792 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013793 expr_ty t_atom_var;
13794 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013795 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013796 )
13797 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013798 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013799 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013800 goto done;
13801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013802 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013803 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13804 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013806 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013807 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013808 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013809 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013810 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013811}
13812
13813// Left-recursive
13814// t_primary:
13815// | t_primary '.' NAME &t_lookahead
13816// | t_primary '[' slices ']' &t_lookahead
13817// | t_primary genexp &t_lookahead
13818// | t_primary '(' arguments? ')' &t_lookahead
13819// | atom &t_lookahead
13820static expr_ty t_primary_raw(Parser *);
13821static expr_ty
13822t_primary_rule(Parser *p)
13823{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013824 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013825 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013826 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13827 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013828 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013830 int _mark = p->mark;
13831 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013832 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013833 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013834 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013835 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013836 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013838 p->mark = _mark;
13839 void *_raw = t_primary_raw(p);
13840 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013841 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013842 _resmark = p->mark;
13843 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013845 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013846 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013847 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013848}
13849static expr_ty
13850t_primary_raw(Parser *p)
13851{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013852 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013854 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013855 return NULL;
13856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013857 expr_ty _res = NULL;
13858 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013859 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13860 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013861 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013862 return NULL;
13863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013864 int _start_lineno = p->tokens[_mark]->lineno;
13865 UNUSED(_start_lineno); // Only used by EXTRA macro
13866 int _start_col_offset = p->tokens[_mark]->col_offset;
13867 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013868 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013869 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013870 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013871 return NULL;
13872 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013873 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013874 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013875 expr_ty a;
13876 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013877 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013878 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013879 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013880 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013881 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013882 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 &&
13884 _PyPegen_lookahead(1, t_lookahead_rule, p)
13885 )
13886 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013887 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 +010013888 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13889 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013890 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013891 return NULL;
13892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013893 int _end_lineno = _token->end_lineno;
13894 UNUSED(_end_lineno); // Only used by EXTRA macro
13895 int _end_col_offset = _token->end_col_offset;
13896 UNUSED(_end_col_offset); // Only used by EXTRA macro
13897 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
13898 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013899 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013900 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013901 return NULL;
13902 }
13903 goto done;
13904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013905 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013906 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13907 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013908 }
13909 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013910 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013911 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013912 return NULL;
13913 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013914 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 +010013915 Token * _literal;
13916 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013917 expr_ty a;
13918 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013919 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013920 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013921 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013922 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013923 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013924 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013925 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013926 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013927 &&
13928 _PyPegen_lookahead(1, t_lookahead_rule, p)
13929 )
13930 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013931 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 +010013932 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13933 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013934 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013935 return NULL;
13936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013937 int _end_lineno = _token->end_lineno;
13938 UNUSED(_end_lineno); // Only used by EXTRA macro
13939 int _end_col_offset = _token->end_col_offset;
13940 UNUSED(_end_col_offset); // Only used by EXTRA macro
13941 _res = _Py_Subscript ( a , b , Load , EXTRA );
13942 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013943 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013944 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013945 return NULL;
13946 }
13947 goto done;
13948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013949 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013950 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13951 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013952 }
13953 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013954 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013955 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013956 return NULL;
13957 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013958 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 +010013959 expr_ty a;
13960 expr_ty b;
13961 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013962 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013963 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013964 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013965 &&
13966 _PyPegen_lookahead(1, t_lookahead_rule, p)
13967 )
13968 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013969 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 +010013970 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13971 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013972 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973 return NULL;
13974 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013975 int _end_lineno = _token->end_lineno;
13976 UNUSED(_end_lineno); // Only used by EXTRA macro
13977 int _end_col_offset = _token->end_col_offset;
13978 UNUSED(_end_col_offset); // Only used by EXTRA macro
13979 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
13980 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013981 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013983 return NULL;
13984 }
13985 goto done;
13986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013988 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013990 }
13991 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013992 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013993 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013994 return NULL;
13995 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013996 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 +010013997 Token * _literal;
13998 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013999 expr_ty a;
14000 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014001 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014002 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014003 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014004 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014005 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014006 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014007 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014008 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014009 &&
14010 _PyPegen_lookahead(1, t_lookahead_rule, p)
14011 )
14012 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014013 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 +010014014 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14015 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014016 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014017 return NULL;
14018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014019 int _end_lineno = _token->end_lineno;
14020 UNUSED(_end_lineno); // Only used by EXTRA macro
14021 int _end_col_offset = _token->end_col_offset;
14022 UNUSED(_end_col_offset); // Only used by EXTRA macro
14023 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14024 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014025 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014026 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014027 return NULL;
14028 }
14029 goto done;
14030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014031 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014032 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014034 }
14035 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014037 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014038 return NULL;
14039 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014040 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 +010014041 expr_ty a;
14042 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014043 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014044 &&
14045 _PyPegen_lookahead(1, t_lookahead_rule, p)
14046 )
14047 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014048 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 +010014049 _res = a;
14050 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014051 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014053 return NULL;
14054 }
14055 goto done;
14056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014057 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014058 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014060 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014061 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014062 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014063 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014064 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014065}
14066
14067// t_lookahead: '(' | '[' | '.'
14068static void *
14069t_lookahead_rule(Parser *p)
14070{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014071 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014074 return NULL;
14075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014076 void * _res = NULL;
14077 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014078 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014080 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014081 return NULL;
14082 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014083 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014084 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014085 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014086 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014087 )
14088 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014089 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014090 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014091 goto done;
14092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014093 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014094 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14095 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014096 }
14097 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014098 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014099 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014100 return NULL;
14101 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014102 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014103 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014104 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014105 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014106 )
14107 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014108 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014109 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014110 goto done;
14111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014112 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014113 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014115 }
14116 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014119 return NULL;
14120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014121 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014122 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014123 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014124 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014125 )
14126 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014127 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014128 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014129 goto done;
14130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014131 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014132 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014135 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014136 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014137 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014138 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014139}
14140
14141// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14142static expr_ty
14143t_atom_rule(Parser *p)
14144{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014145 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014146 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014147 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014148 return NULL;
14149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014150 expr_ty _res = NULL;
14151 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014152 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14153 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014154 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014155 return NULL;
14156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014157 int _start_lineno = p->tokens[_mark]->lineno;
14158 UNUSED(_start_lineno); // Only used by EXTRA macro
14159 int _start_col_offset = p->tokens[_mark]->col_offset;
14160 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014161 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014162 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014163 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014164 return NULL;
14165 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014166 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014167 expr_ty a;
14168 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014169 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014170 )
14171 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014172 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014173 _res = _PyPegen_set_expr_context ( p , a , Store );
14174 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014175 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014176 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014177 return NULL;
14178 }
14179 goto done;
14180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014181 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014182 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14183 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014184 }
14185 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014187 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014188 return NULL;
14189 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014190 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014191 Token * _literal;
14192 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014193 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014194 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014195 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014196 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014197 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014198 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014199 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014200 )
14201 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014202 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014203 _res = _PyPegen_set_expr_context ( p , a , Store );
14204 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014205 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014206 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014207 return NULL;
14208 }
14209 goto done;
14210 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014211 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014212 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014214 }
14215 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014217 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014218 return NULL;
14219 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014220 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014221 Token * _literal;
14222 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014223 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014224 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014225 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014226 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014227 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014228 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014229 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014230 )
14231 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014232 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014233 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14234 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014236 return NULL;
14237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014238 int _end_lineno = _token->end_lineno;
14239 UNUSED(_end_lineno); // Only used by EXTRA macro
14240 int _end_col_offset = _token->end_col_offset;
14241 UNUSED(_end_col_offset); // Only used by EXTRA macro
14242 _res = _Py_Tuple ( b , Store , EXTRA );
14243 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014244 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014245 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014246 return NULL;
14247 }
14248 goto done;
14249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014250 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014251 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14252 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014253 }
14254 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014256 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014257 return NULL;
14258 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014259 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014260 Token * _literal;
14261 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014262 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014263 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014264 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014265 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014266 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014267 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014268 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014269 )
14270 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014271 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014272 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14273 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014275 return NULL;
14276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014277 int _end_lineno = _token->end_lineno;
14278 UNUSED(_end_lineno); // Only used by EXTRA macro
14279 int _end_col_offset = _token->end_col_offset;
14280 UNUSED(_end_col_offset); // Only used by EXTRA macro
14281 _res = _Py_List ( b , Store , EXTRA );
14282 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014283 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014284 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014285 return NULL;
14286 }
14287 goto done;
14288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014289 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014290 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14291 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014293 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014294 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014295 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014296 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014297}
14298
14299// incorrect_arguments:
14300// | args ',' '*'
14301// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014302// | args for_if_clauses
14303// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014304// | args ',' args
14305static void *
14306incorrect_arguments_rule(Parser *p)
14307{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014308 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014309 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014310 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014311 return NULL;
14312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014313 void * _res = NULL;
14314 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014315 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014317 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014318 return NULL;
14319 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014320 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014321 Token * _literal;
14322 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014323 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014324 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014325 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014326 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014327 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014328 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014329 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014330 )
14331 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014332 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014333 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14334 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014335 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014336 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014337 return NULL;
14338 }
14339 goto done;
14340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014341 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014342 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14343 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014344 }
14345 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014348 return NULL;
14349 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014350 D(fprintf(stderr, "%*c> 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 +010014351 Token * _literal;
14352 void *_opt_var;
14353 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014354 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014355 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014356 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014357 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014358 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014359 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014360 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014361 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014362 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014363 (_opt_var = _tmp_125_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014364 )
14365 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014366 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 +030014367 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014368 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014369 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014371 return NULL;
14372 }
14373 goto done;
14374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014376 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014378 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014379 { // args for_if_clauses
14380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014381 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014382 return NULL;
14383 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014384 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 -070014385 expr_ty a;
14386 asdl_seq* for_if_clauses_var;
14387 if (
14388 (a = args_rule(p)) // args
14389 &&
14390 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14391 )
14392 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014393 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 -070014394 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14395 if (_res == NULL && PyErr_Occurred()) {
14396 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014397 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014398 return NULL;
14399 }
14400 goto done;
14401 }
14402 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014403 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014405 }
14406 { // args ',' expression for_if_clauses
14407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014408 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014409 return NULL;
14410 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014411 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 -070014412 Token * _literal;
14413 expr_ty a;
14414 expr_ty args_var;
14415 asdl_seq* for_if_clauses_var;
14416 if (
14417 (args_var = args_rule(p)) // args
14418 &&
14419 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14420 &&
14421 (a = expression_rule(p)) // expression
14422 &&
14423 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14424 )
14425 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014426 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 -070014427 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14428 if (_res == NULL && PyErr_Occurred()) {
14429 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014430 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014431 return NULL;
14432 }
14433 goto done;
14434 }
14435 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014436 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14437 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014438 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014439 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014440 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014441 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014442 return NULL;
14443 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014444 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014445 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014446 expr_ty a;
14447 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014448 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014449 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014450 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014451 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014452 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014453 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014454 )
14455 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014456 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 +010014457 _res = _PyPegen_arguments_parsing_error ( p , a );
14458 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014459 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014461 return NULL;
14462 }
14463 goto done;
14464 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014465 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014466 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14467 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014469 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014470 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014471 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014472 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014473}
14474
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014475// invalid_kwarg: expression '='
14476static void *
14477invalid_kwarg_rule(Parser *p)
14478{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014479 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014480 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014481 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014482 return NULL;
14483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014484 void * _res = NULL;
14485 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014486 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014489 return NULL;
14490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014491 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014492 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014493 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014494 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014495 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014496 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014497 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014498 )
14499 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014500 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014501 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014502 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014503 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014504 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014505 return NULL;
14506 }
14507 goto done;
14508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014509 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014510 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14511 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014513 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014514 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014515 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014516 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014517}
14518
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014519// invalid_named_expression: expression ':=' expression
14520static void *
14521invalid_named_expression_rule(Parser *p)
14522{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014523 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014524 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014525 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014526 return NULL;
14527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014528 void * _res = NULL;
14529 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014530 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014531 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014532 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014533 return NULL;
14534 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014535 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 +010014536 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014537 expr_ty a;
14538 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014539 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014540 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014541 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014542 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014543 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014544 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014545 )
14546 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014547 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 +030014548 _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 +010014549 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014550 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014552 return NULL;
14553 }
14554 goto done;
14555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014556 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014557 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014560 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014561 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014562 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014563 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014564}
14565
14566// invalid_assignment:
14567// | list ':'
14568// | tuple ':'
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014569// | star_named_expression ',' star_named_expressions* ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014570// | expression ':' expression ['=' annotated_rhs]
Pablo Galindo16ab0702020-05-15 02:04:52 +010014571// | star_expressions '=' (yield_expr | star_expressions)
14572// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014573static void *
14574invalid_assignment_rule(Parser *p)
14575{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014576 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014577 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014578 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014579 return NULL;
14580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014581 void * _res = NULL;
14582 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014583 { // list ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014585 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014586 return NULL;
14587 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014588 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list ':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014589 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014590 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014591 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014592 (a = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014593 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014594 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014595 )
14596 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014597 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014598 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not list) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014599 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014600 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014601 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014602 return NULL;
14603 }
14604 goto done;
14605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014606 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014607 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list ':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014609 }
14610 { // tuple ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014611 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014612 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014613 return NULL;
14614 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014615 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple ':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014616 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014617 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014618 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014619 (a = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014620 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014621 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014622 )
14623 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014624 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014625 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14626 if (_res == NULL && PyErr_Occurred()) {
14627 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014628 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014629 return NULL;
14630 }
14631 goto done;
14632 }
14633 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014634 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014636 }
14637 { // star_named_expression ',' star_named_expressions* ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014638 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014639 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014640 return NULL;
14641 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014642 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 +030014643 Token * _literal;
14644 Token * _literal_1;
14645 asdl_seq * _loop0_126_var;
14646 expr_ty a;
14647 if (
14648 (a = star_named_expression_rule(p)) // star_named_expression
14649 &&
14650 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14651 &&
14652 (_loop0_126_var = _loop0_126_rule(p)) // star_named_expressions*
14653 &&
14654 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
14655 )
14656 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014657 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 +030014658 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014659 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014660 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014661 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014662 return NULL;
14663 }
14664 goto done;
14665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014666 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014667 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14668 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 }
14670 { // expression ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014671 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014672 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014673 return NULL;
14674 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014675 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 +010014676 Token * _literal;
14677 void *_opt_var;
14678 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014679 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014680 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014681 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014682 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014683 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014684 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014685 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014686 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014687 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014688 (_opt_var = _tmp_127_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014689 )
14690 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014691 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 +030014692 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014693 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014694 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014696 return NULL;
14697 }
14698 goto done;
14699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014700 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014701 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014703 }
Pablo Galindo16ab0702020-05-15 02:04:52 +010014704 { // star_expressions '=' (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014707 return NULL;
14708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014709 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions '=' (yield_expr | star_expressions)"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014710 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070014711 void *_tmp_128_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014712 expr_ty a;
14713 if (
Pablo Galindo16ab0702020-05-15 02:04:52 +010014714 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014715 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014716 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14717 &&
14718 (_tmp_128_var = _tmp_128_rule(p)) // yield_expr | star_expressions
14719 )
14720 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014721 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions '=' (yield_expr | star_expressions)"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014722 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( _PyPegen_get_invalid_target ( a ) , "cannot assign to %s" , _PyPegen_get_expr_name ( _PyPegen_get_invalid_target ( a ) ) );
14723 if (_res == NULL && PyErr_Occurred()) {
14724 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014725 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014726 return NULL;
14727 }
14728 goto done;
14729 }
14730 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014731 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions '=' (yield_expr | star_expressions)"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014733 }
14734 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014737 return NULL;
14738 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014739 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014740 void *_tmp_129_var;
14741 expr_ty a;
14742 AugOperator* augassign_var;
14743 if (
14744 (a = star_expressions_rule(p)) // star_expressions
14745 &&
14746 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014747 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014748 (_tmp_129_var = _tmp_129_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014749 )
14750 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014751 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 +010014752 _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 +010014753 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014754 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014756 return NULL;
14757 }
14758 goto done;
14759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014760 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014761 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014764 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014765 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014766 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014767 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014768}
14769
14770// invalid_block: NEWLINE !INDENT
14771static void *
14772invalid_block_rule(Parser *p)
14773{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014774 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014777 return NULL;
14778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014779 void * _res = NULL;
14780 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014781 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014783 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014784 return NULL;
14785 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014786 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010014787 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014788 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014789 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014790 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014791 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014792 )
14793 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014794 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 +010014795 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
14796 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014797 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014798 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014799 return NULL;
14800 }
14801 goto done;
14802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014803 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014804 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
14805 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014807 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014808 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014809 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014810 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014811}
14812
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014813// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014814static void *
14815invalid_comprehension_rule(Parser *p)
14816{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014817 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014818 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014819 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014820 return NULL;
14821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014822 void * _res = NULL;
14823 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014824 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014825 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014826 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014827 return NULL;
14828 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014829 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014830 void *_tmp_130_var;
14831 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014832 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014833 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014834 (_tmp_130_var = _tmp_130_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014835 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014836 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014837 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014838 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014839 )
14840 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014841 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 +030014842 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014843 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014844 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014845 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014846 return NULL;
14847 }
14848 goto done;
14849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014850 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014851 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
14852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014854 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014855 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014856 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014857 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014858}
14859
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014860// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
14861static void *
14862invalid_dict_comprehension_rule(Parser *p)
14863{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014864 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014865 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014866 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014867 return NULL;
14868 }
14869 void * _res = NULL;
14870 int _mark = p->mark;
14871 { // '{' '**' bitwise_or for_if_clauses '}'
14872 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014873 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014874 return NULL;
14875 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014876 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 -070014877 Token * _literal;
14878 Token * _literal_1;
14879 Token * a;
14880 expr_ty bitwise_or_var;
14881 asdl_seq* for_if_clauses_var;
14882 if (
14883 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14884 &&
14885 (a = _PyPegen_expect_token(p, 35)) // token='**'
14886 &&
14887 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
14888 &&
14889 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14890 &&
14891 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14892 )
14893 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014894 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 -070014895 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
14896 if (_res == NULL && PyErr_Occurred()) {
14897 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014898 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014899 return NULL;
14900 }
14901 goto done;
14902 }
14903 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014904 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
14905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014906 }
14907 _res = NULL;
14908 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014909 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014910 return _res;
14911}
14912
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014913// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070014914// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014915static void *
14916invalid_parameters_rule(Parser *p)
14917{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014918 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014920 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014921 return NULL;
14922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014923 void * _res = NULL;
14924 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070014925 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014926 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014927 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014928 return NULL;
14929 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014930 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 Nikolaoua15c9b32020-05-13 22:36:27 +030014931 asdl_seq * _loop0_131_var;
14932 void *_tmp_132_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070014933 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014934 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014935 (_loop0_131_var = _loop0_131_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014936 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014937 (_tmp_132_var = _tmp_132_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014938 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014939 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014940 )
14941 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014942 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 +010014943 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
14944 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014945 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014947 return NULL;
14948 }
14949 goto done;
14950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014951 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014952 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14953 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 +010014954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014955 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014956 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014957 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014958 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014959}
14960
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030014961// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014962static void *
14963invalid_star_etc_rule(Parser *p)
14964{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014965 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014966 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014967 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014968 return NULL;
14969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014970 void * _res = NULL;
14971 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014972 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014975 return NULL;
14976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014977 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014978 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014979 void *_tmp_133_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014980 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014981 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014982 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014983 (_tmp_133_var = _tmp_133_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014984 )
14985 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014986 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014987 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
14988 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014989 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014990 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014991 return NULL;
14992 }
14993 goto done;
14994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014996 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
14997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030014998 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030014999 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015001 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015002 return NULL;
15003 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015004 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 +030015005 Token * _literal;
15006 Token * _literal_1;
15007 Token * type_comment_var;
15008 if (
15009 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15010 &&
15011 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15012 &&
15013 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15014 )
15015 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015016 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 +030015017 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15018 if (_res == NULL && PyErr_Occurred()) {
15019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015020 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015021 return NULL;
15022 }
15023 goto done;
15024 }
15025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015026 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015029 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015030 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015032 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015033}
15034
15035// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15036static void *
15037invalid_lambda_star_etc_rule(Parser *p)
15038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015039 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015041 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015042 return NULL;
15043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015044 void * _res = NULL;
15045 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015046 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015047 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015048 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015049 return NULL;
15050 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015051 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015052 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015053 void *_tmp_134_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015054 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015055 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015056 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015057 (_tmp_134_var = _tmp_134_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015058 )
15059 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015060 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 +010015061 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15062 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015063 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015064 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015065 return NULL;
15066 }
15067 goto done;
15068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015069 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015070 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015073 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015074 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015075 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015076 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015077}
15078
Guido van Rossumc001c092020-04-30 12:12:19 -070015079// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15080static void *
15081invalid_double_type_comments_rule(Parser *p)
15082{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015083 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015085 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015086 return NULL;
15087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015088 void * _res = NULL;
15089 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015090 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015093 return NULL;
15094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015095 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 +010015096 Token * indent_var;
15097 Token * newline_var;
15098 Token * newline_var_1;
15099 Token * type_comment_var;
15100 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015101 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015102 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015104 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015105 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015106 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015107 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015108 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015109 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015110 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015111 )
15112 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015113 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 +010015114 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15115 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015116 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015117 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015118 return NULL;
15119 }
15120 goto done;
15121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015122 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015123 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015126 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015127 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015128 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015129 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015130}
15131
Shantanu27c0d9b2020-05-11 14:53:58 -070015132// invalid_del_target: star_expression &del_target_end
15133static void *
15134invalid_del_target_rule(Parser *p)
15135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015136 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015138 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015139 return NULL;
15140 }
15141 void * _res = NULL;
15142 int _mark = p->mark;
15143 { // star_expression &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015146 return NULL;
15147 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015148 D(fprintf(stderr, "%*c> invalid_del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression &del_target_end"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015149 expr_ty a;
15150 if (
15151 (a = star_expression_rule(p)) // star_expression
15152 &&
15153 _PyPegen_lookahead(1, del_target_end_rule, p)
15154 )
15155 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015156 D(fprintf(stderr, "%*c+ invalid_del_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression &del_target_end"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030015157 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot delete %s" , _PyPegen_get_expr_name ( a ) );
Shantanu27c0d9b2020-05-11 14:53:58 -070015158 if (_res == NULL && PyErr_Occurred()) {
15159 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015160 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015161 return NULL;
15162 }
15163 goto done;
15164 }
15165 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015166 D(fprintf(stderr, "%*c%s invalid_del_target[%d-%d]: %s failed!\n", p->level, ' ',
15167 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression &del_target_end"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015168 }
15169 _res = NULL;
15170 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015171 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015172 return _res;
15173}
15174
Pablo Galindo275d7e12020-05-21 22:04:54 +010015175// invalid_import_from_targets: import_from_as_names ','
15176static void *
15177invalid_import_from_targets_rule(Parser *p)
15178{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015179 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015181 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015182 return NULL;
15183 }
15184 void * _res = NULL;
15185 int _mark = p->mark;
15186 { // import_from_as_names ','
15187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015188 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015189 return NULL;
15190 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015191 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 +010015192 Token * _literal;
15193 asdl_seq* import_from_as_names_var;
15194 if (
15195 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15196 &&
15197 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15198 )
15199 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015200 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 +010015201 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15202 if (_res == NULL && PyErr_Occurred()) {
15203 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015204 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015205 return NULL;
15206 }
15207 goto done;
15208 }
15209 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015210 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15211 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015212 }
15213 _res = NULL;
15214 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015215 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015216 return _res;
15217}
15218
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015219// _loop0_1: NEWLINE
15220static asdl_seq *
15221_loop0_1_rule(Parser *p)
15222{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015223 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015226 return NULL;
15227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015228 void *_res = NULL;
15229 int _mark = p->mark;
15230 int _start_mark = p->mark;
15231 void **_children = PyMem_Malloc(sizeof(void *));
15232 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015233 p->error_indicator = 1;
15234 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015235 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015236 return NULL;
15237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015238 ssize_t _children_capacity = 1;
15239 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015240 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015242 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015243 return NULL;
15244 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015245 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015246 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015247 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015248 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015249 )
15250 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015251 _res = newline_var;
15252 if (_n == _children_capacity) {
15253 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015254 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15255 if (!_new_children) {
15256 p->error_indicator = 1;
15257 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015258 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015259 return NULL;
15260 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015261 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015263 _children[_n++] = _res;
15264 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015265 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015266 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015267 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15268 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015270 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15271 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015272 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015273 p->error_indicator = 1;
15274 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015276 return NULL;
15277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015278 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15279 PyMem_Free(_children);
15280 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015281 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015282 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015283}
15284
Guido van Rossumc001c092020-04-30 12:12:19 -070015285// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015286static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015287_loop0_2_rule(Parser *p)
15288{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015289 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015290 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015291 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015292 return NULL;
15293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015294 void *_res = NULL;
15295 int _mark = p->mark;
15296 int _start_mark = p->mark;
15297 void **_children = PyMem_Malloc(sizeof(void *));
15298 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015299 p->error_indicator = 1;
15300 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015301 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015302 return NULL;
15303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015304 ssize_t _children_capacity = 1;
15305 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015306 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015308 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015309 return NULL;
15310 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015311 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015312 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015313 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015314 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015315 )
15316 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015317 _res = newline_var;
15318 if (_n == _children_capacity) {
15319 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015320 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15321 if (!_new_children) {
15322 p->error_indicator = 1;
15323 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015324 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015325 return NULL;
15326 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015327 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015329 _children[_n++] = _res;
15330 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015332 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015333 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15334 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015336 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15337 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015338 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015339 p->error_indicator = 1;
15340 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015341 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015342 return NULL;
15343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015344 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15345 PyMem_Free(_children);
15346 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015347 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015348 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015349}
15350
15351// _loop0_4: ',' expression
15352static asdl_seq *
15353_loop0_4_rule(Parser *p)
15354{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015355 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015356 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015357 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015358 return NULL;
15359 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015360 void *_res = NULL;
15361 int _mark = p->mark;
15362 int _start_mark = p->mark;
15363 void **_children = PyMem_Malloc(sizeof(void *));
15364 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015365 p->error_indicator = 1;
15366 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015367 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015368 return NULL;
15369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015370 ssize_t _children_capacity = 1;
15371 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015372 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015374 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015375 return NULL;
15376 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015377 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015378 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015379 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015380 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015381 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015382 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015383 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015384 )
15385 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015386 _res = elem;
15387 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015388 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015389 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015390 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015391 return NULL;
15392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015393 if (_n == _children_capacity) {
15394 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015395 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15396 if (!_new_children) {
15397 p->error_indicator = 1;
15398 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015399 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015400 return NULL;
15401 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015402 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015404 _children[_n++] = _res;
15405 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015407 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015408 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15409 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015411 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15412 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015413 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015414 p->error_indicator = 1;
15415 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015416 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015417 return NULL;
15418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015419 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15420 PyMem_Free(_children);
15421 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015422 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015423 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015424}
15425
15426// _gather_3: expression _loop0_4
15427static asdl_seq *
15428_gather_3_rule(Parser *p)
15429{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015430 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015431 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015432 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015433 return NULL;
15434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015435 asdl_seq * _res = NULL;
15436 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015437 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015440 return NULL;
15441 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015442 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 -070015443 expr_ty elem;
15444 asdl_seq * seq;
15445 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015446 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015447 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015448 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015449 )
15450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015451 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 +010015452 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015453 goto done;
15454 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015455 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015456 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15457 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015459 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015460 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015461 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015462 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015463}
15464
15465// _loop0_6: ',' expression
15466static asdl_seq *
15467_loop0_6_rule(Parser *p)
15468{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015469 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015470 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015471 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015472 return NULL;
15473 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015474 void *_res = NULL;
15475 int _mark = p->mark;
15476 int _start_mark = p->mark;
15477 void **_children = PyMem_Malloc(sizeof(void *));
15478 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015479 p->error_indicator = 1;
15480 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015481 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015482 return NULL;
15483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015484 ssize_t _children_capacity = 1;
15485 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015486 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015488 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015489 return NULL;
15490 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015491 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015492 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015493 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015494 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015495 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015496 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015497 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015498 )
15499 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015500 _res = elem;
15501 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015502 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015503 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015504 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015505 return NULL;
15506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015507 if (_n == _children_capacity) {
15508 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015509 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15510 if (!_new_children) {
15511 p->error_indicator = 1;
15512 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015513 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015514 return NULL;
15515 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015516 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015518 _children[_n++] = _res;
15519 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015521 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015522 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15523 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015525 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15526 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015527 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015528 p->error_indicator = 1;
15529 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015530 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015531 return NULL;
15532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015533 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15534 PyMem_Free(_children);
15535 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015536 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015537 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015538}
15539
15540// _gather_5: expression _loop0_6
15541static asdl_seq *
15542_gather_5_rule(Parser *p)
15543{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015544 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015545 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015546 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015547 return NULL;
15548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015549 asdl_seq * _res = NULL;
15550 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015551 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015554 return NULL;
15555 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015556 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 -070015557 expr_ty elem;
15558 asdl_seq * seq;
15559 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015560 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015561 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015562 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015563 )
15564 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015565 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 +010015566 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015567 goto done;
15568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015569 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015570 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15571 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015572 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015573 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015574 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015575 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015576 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015577}
15578
15579// _loop0_8: ',' expression
15580static asdl_seq *
15581_loop0_8_rule(Parser *p)
15582{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015583 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015585 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015586 return NULL;
15587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015588 void *_res = NULL;
15589 int _mark = p->mark;
15590 int _start_mark = p->mark;
15591 void **_children = PyMem_Malloc(sizeof(void *));
15592 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015593 p->error_indicator = 1;
15594 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015595 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015596 return NULL;
15597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015598 ssize_t _children_capacity = 1;
15599 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015600 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015603 return NULL;
15604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015605 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015606 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015607 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015608 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015609 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015610 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015611 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015612 )
15613 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015614 _res = elem;
15615 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015616 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015617 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015618 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015619 return NULL;
15620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015621 if (_n == _children_capacity) {
15622 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015623 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15624 if (!_new_children) {
15625 p->error_indicator = 1;
15626 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015627 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015628 return NULL;
15629 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015630 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015632 _children[_n++] = _res;
15633 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015636 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
15637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015639 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15640 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015641 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015642 p->error_indicator = 1;
15643 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015644 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015645 return NULL;
15646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015647 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15648 PyMem_Free(_children);
15649 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015650 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015651 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015652}
15653
15654// _gather_7: expression _loop0_8
15655static asdl_seq *
15656_gather_7_rule(Parser *p)
15657{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015658 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015659 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015660 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015661 return NULL;
15662 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015663 asdl_seq * _res = NULL;
15664 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015665 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015666 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015667 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015668 return NULL;
15669 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015670 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 -070015671 expr_ty elem;
15672 asdl_seq * seq;
15673 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015674 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015675 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015676 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070015677 )
15678 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015679 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 +010015680 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015681 goto done;
15682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015684 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
15685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015687 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015688 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015689 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015690 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015691}
15692
15693// _loop0_10: ',' expression
15694static asdl_seq *
15695_loop0_10_rule(Parser *p)
15696{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015697 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015698 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015699 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015700 return NULL;
15701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015702 void *_res = NULL;
15703 int _mark = p->mark;
15704 int _start_mark = p->mark;
15705 void **_children = PyMem_Malloc(sizeof(void *));
15706 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015707 p->error_indicator = 1;
15708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015709 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015710 return NULL;
15711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015712 ssize_t _children_capacity = 1;
15713 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015714 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015715 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015716 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015717 return NULL;
15718 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015719 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015720 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015721 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015722 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015723 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015724 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015725 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015726 )
15727 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015728 _res = elem;
15729 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015730 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015731 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015732 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015733 return NULL;
15734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015735 if (_n == _children_capacity) {
15736 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015737 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15738 if (!_new_children) {
15739 p->error_indicator = 1;
15740 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015741 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015742 return NULL;
15743 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015744 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015746 _children[_n++] = _res;
15747 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015749 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015750 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
15751 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015752 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015753 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15754 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015755 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015756 p->error_indicator = 1;
15757 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015758 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015759 return NULL;
15760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015761 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15762 PyMem_Free(_children);
15763 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015764 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015765 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015766}
15767
15768// _gather_9: expression _loop0_10
15769static asdl_seq *
15770_gather_9_rule(Parser *p)
15771{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015772 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015773 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015774 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015775 return NULL;
15776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015777 asdl_seq * _res = NULL;
15778 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015779 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015780 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015781 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015782 return NULL;
15783 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015784 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 -070015785 expr_ty elem;
15786 asdl_seq * seq;
15787 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015788 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015789 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015790 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070015791 )
15792 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015793 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 +010015794 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015795 goto done;
15796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015798 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
15799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015801 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015802 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015804 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015805}
15806
15807// _loop1_11: statement
15808static asdl_seq *
15809_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015810{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015811 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015814 return NULL;
15815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015816 void *_res = NULL;
15817 int _mark = p->mark;
15818 int _start_mark = p->mark;
15819 void **_children = PyMem_Malloc(sizeof(void *));
15820 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015821 p->error_indicator = 1;
15822 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015823 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015824 return NULL;
15825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015826 ssize_t _children_capacity = 1;
15827 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015828 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015829 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015830 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015831 return NULL;
15832 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015833 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015834 asdl_seq* statement_var;
15835 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015836 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015837 )
15838 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015839 _res = statement_var;
15840 if (_n == _children_capacity) {
15841 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015842 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15843 if (!_new_children) {
15844 p->error_indicator = 1;
15845 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015847 return NULL;
15848 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015849 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015851 _children[_n++] = _res;
15852 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015854 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015855 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
15856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015858 if (_n == 0 || p->error_indicator) {
15859 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015861 return NULL;
15862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015863 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15864 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015865 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015866 p->error_indicator = 1;
15867 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015868 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015869 return NULL;
15870 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015871 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15872 PyMem_Free(_children);
15873 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015874 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015875 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015876}
15877
Guido van Rossumc001c092020-04-30 12:12:19 -070015878// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015879static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015880_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015881{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015882 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015885 return NULL;
15886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015887 void *_res = NULL;
15888 int _mark = p->mark;
15889 int _start_mark = p->mark;
15890 void **_children = PyMem_Malloc(sizeof(void *));
15891 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015892 p->error_indicator = 1;
15893 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015894 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015895 return NULL;
15896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015897 ssize_t _children_capacity = 1;
15898 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015899 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015902 return NULL;
15903 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015904 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015905 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015906 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015907 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015908 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015909 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015910 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015911 )
15912 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015913 _res = elem;
15914 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015915 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015916 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015917 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015918 return NULL;
15919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015920 if (_n == _children_capacity) {
15921 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15923 if (!_new_children) {
15924 p->error_indicator = 1;
15925 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015926 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015927 return NULL;
15928 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015929 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015931 _children[_n++] = _res;
15932 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015935 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
15936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015938 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15939 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015940 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015941 p->error_indicator = 1;
15942 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015943 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015944 return NULL;
15945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015946 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15947 PyMem_Free(_children);
15948 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015949 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015950 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015951}
15952
Guido van Rossumc001c092020-04-30 12:12:19 -070015953// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015954static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015955_gather_12_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015956{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015957 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015960 return NULL;
15961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015962 asdl_seq * _res = NULL;
15963 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015964 { // small_stmt _loop0_13
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015967 return NULL;
15968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015969 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 +010015970 stmt_ty elem;
15971 asdl_seq * seq;
15972 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015973 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015974 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015975 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015976 )
15977 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015978 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 +010015979 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015980 goto done;
15981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015982 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015983 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
15984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015986 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015987 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015988 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015989 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015990}
15991
Guido van Rossumc001c092020-04-30 12:12:19 -070015992// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015993static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070015994_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015995{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015996 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015997 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015998 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015999 return NULL;
16000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016001 void * _res = NULL;
16002 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016003 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016004 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016005 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016006 return NULL;
16007 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016008 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016009 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016010 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016011 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016012 )
16013 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016014 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016015 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016016 goto done;
16017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016018 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016019 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16020 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016021 }
16022 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016024 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016025 return NULL;
16026 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016027 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016028 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016029 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016030 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016031 )
16032 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016033 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016034 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016035 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 _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16039 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016041 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016042 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016043 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016044 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016045}
16046
Guido van Rossumc001c092020-04-30 12:12:19 -070016047// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016048static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016049_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016050{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016051 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016054 return NULL;
16055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016056 void * _res = NULL;
16057 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016058 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016059 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016060 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016061 return NULL;
16062 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016063 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016064 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016065 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016066 (_keyword = _PyPegen_expect_token(p, 522)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016067 )
16068 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016069 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016070 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016071 goto done;
16072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016073 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016074 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016076 }
16077 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016078 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016079 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016080 return NULL;
16081 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016082 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016083 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016084 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016085 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016086 )
16087 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016088 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016089 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016090 goto done;
16091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016093 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016095 }
16096 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016098 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016099 return NULL;
16100 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016101 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016102 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016103 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016104 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016105 )
16106 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016107 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016108 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016109 goto done;
16110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016111 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016112 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16113 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016115 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016116 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016117 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016118 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016119}
16120
Guido van Rossumc001c092020-04-30 12:12:19 -070016121// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016122static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016123_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016124{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016125 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016126 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016127 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016128 return NULL;
16129 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016130 void * _res = NULL;
16131 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016132 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016133 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016134 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016135 return NULL;
16136 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016137 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016138 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016139 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016140 (_keyword = _PyPegen_expect_token(p, 523)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016141 )
16142 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016143 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016144 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016145 goto done;
16146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016147 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016148 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016150 }
16151 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016153 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016154 return NULL;
16155 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016156 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016157 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016158 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016159 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016160 )
16161 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016162 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016163 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016164 goto done;
16165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016166 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016167 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16168 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016170 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016171 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016172 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016173 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016174}
16175
Guido van Rossumc001c092020-04-30 12:12:19 -070016176// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016177static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016178_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016179{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016180 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016181 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016182 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016183 return NULL;
16184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016185 void * _res = NULL;
16186 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016187 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016190 return NULL;
16191 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016192 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016193 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016194 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016195 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016196 )
16197 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016198 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016199 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016200 goto done;
16201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016202 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016203 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016205 }
16206 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016207 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016208 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016209 return NULL;
16210 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016211 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016212 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016213 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016214 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016215 )
16216 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016217 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016218 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016219 goto done;
16220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016221 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016222 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16223 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016225 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016226 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016227 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016228 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016229}
16230
Guido van Rossumc001c092020-04-30 12:12:19 -070016231// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016232static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016233_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016234{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016235 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016236 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016238 return NULL;
16239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016240 void * _res = NULL;
16241 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016242 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016245 return NULL;
16246 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016247 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016248 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016249 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016250 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016251 )
16252 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016253 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016254 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016255 goto done;
16256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016257 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016258 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16259 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016260 }
16261 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016262 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016263 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016264 return NULL;
16265 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016266 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016267 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016268 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016269 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016270 )
16271 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016272 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016273 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016274 goto done;
16275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016276 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016277 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16278 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016280 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016281 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016282 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016283 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016284}
16285
Guido van Rossumc001c092020-04-30 12:12:19 -070016286// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016287static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016288_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016289{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016290 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016293 return NULL;
16294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016295 void * _res = NULL;
16296 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016297 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016299 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016300 return NULL;
16301 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016302 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016303 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016304 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016305 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016306 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016307 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016308 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016309 )
16310 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016311 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 +010016312 _res = d;
16313 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016314 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016315 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016316 return NULL;
16317 }
16318 goto done;
16319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016320 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016321 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016323 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016324 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016325 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016326 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016327 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016328}
16329
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016330// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016331static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016332_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016333{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016334 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016336 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016337 return NULL;
16338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016339 void * _res = NULL;
16340 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016341 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016342 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016343 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016344 return NULL;
16345 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016346 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016347 Token * _literal;
16348 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016349 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016350 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016351 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016352 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016353 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016354 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016355 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016356 )
16357 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016358 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 +010016359 _res = b;
16360 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016361 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016363 return NULL;
16364 }
16365 goto done;
16366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016367 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016368 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016370 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016371 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016372 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016373 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016374 return NULL;
16375 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016376 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 +030016377 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016378 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016379 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016380 )
16381 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016382 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 +030016383 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016384 goto done;
16385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016386 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016387 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016390 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016391 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016392 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016393 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016394}
16395
Guido van Rossumc001c092020-04-30 12:12:19 -070016396// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016397static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016398_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016399{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016400 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016402 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016403 return NULL;
16404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016405 void * _res = NULL;
16406 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016407 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016410 return NULL;
16411 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016412 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016413 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016414 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016415 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016416 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016417 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016418 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016419 )
16420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016421 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 +010016422 _res = d;
16423 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016424 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016426 return NULL;
16427 }
16428 goto done;
16429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016430 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016431 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016434 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016435 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016436 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016437 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016438}
16439
Guido van Rossumc001c092020-04-30 12:12:19 -070016440// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016441static asdl_seq *
16442_loop1_22_rule(Parser *p)
16443{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016444 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016447 return NULL;
16448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016449 void *_res = NULL;
16450 int _mark = p->mark;
16451 int _start_mark = p->mark;
16452 void **_children = PyMem_Malloc(sizeof(void *));
16453 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016454 p->error_indicator = 1;
16455 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016456 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016457 return NULL;
16458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016459 ssize_t _children_capacity = 1;
16460 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016461 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016462 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016463 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016464 return NULL;
16465 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016466 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016467 void *_tmp_135_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016468 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016469 (_tmp_135_var = _tmp_135_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016470 )
16471 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016472 _res = _tmp_135_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016473 if (_n == _children_capacity) {
16474 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016475 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16476 if (!_new_children) {
16477 p->error_indicator = 1;
16478 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016480 return NULL;
16481 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016482 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016484 _children[_n++] = _res;
16485 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016487 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016488 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016491 if (_n == 0 || p->error_indicator) {
16492 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016493 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016494 return NULL;
16495 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016496 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16497 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016498 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016499 p->error_indicator = 1;
16500 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016502 return NULL;
16503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016504 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16505 PyMem_Free(_children);
16506 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016507 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016508 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016509}
16510
Guido van Rossumc001c092020-04-30 12:12:19 -070016511// _tmp_23: yield_expr | star_expressions
16512static void *
16513_tmp_23_rule(Parser *p)
16514{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016515 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016516 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016517 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016518 return NULL;
16519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016520 void * _res = NULL;
16521 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016522 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016523 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016524 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016525 return NULL;
16526 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016527 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 -070016528 expr_ty yield_expr_var;
16529 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016530 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016531 )
16532 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016533 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 +010016534 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016535 goto done;
16536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016537 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016538 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016540 }
16541 { // star_expressions
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_23[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016547 expr_ty star_expressions_var;
16548 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016549 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016550 )
16551 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016552 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 +010016553 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016554 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_23[%d-%d]: %s failed!\n", p->level, ' ',
16558 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016560 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016561 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016562 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016563 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016564}
16565
16566// _tmp_24: yield_expr | star_expressions
16567static void *
16568_tmp_24_rule(Parser *p)
16569{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016570 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016571 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016572 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016573 return NULL;
16574 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016575 void * _res = NULL;
16576 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016577 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016578 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016579 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016580 return NULL;
16581 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016582 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 -070016583 expr_ty yield_expr_var;
16584 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016585 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016586 )
16587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016588 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 +010016589 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016590 goto done;
16591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016593 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016595 }
16596 { // star_expressions
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_24[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016602 expr_ty star_expressions_var;
16603 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016604 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016605 )
16606 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016607 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 +010016608 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016609 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_24[%d-%d]: %s failed!\n", p->level, ' ',
16613 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016615 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016616 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016617 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016618 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016619}
16620
16621// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016622static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016623_loop0_26_rule(Parser *p)
16624{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016625 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016626 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016627 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016628 return NULL;
16629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016630 void *_res = NULL;
16631 int _mark = p->mark;
16632 int _start_mark = p->mark;
16633 void **_children = PyMem_Malloc(sizeof(void *));
16634 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016635 p->error_indicator = 1;
16636 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016637 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016638 return NULL;
16639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016640 ssize_t _children_capacity = 1;
16641 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016642 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016644 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016645 return NULL;
16646 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016647 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016648 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016649 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016650 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016651 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016652 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016653 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016654 )
16655 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016656 _res = elem;
16657 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016658 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016659 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016660 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016661 return NULL;
16662 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016663 if (_n == _children_capacity) {
16664 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016665 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16666 if (!_new_children) {
16667 p->error_indicator = 1;
16668 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016669 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016670 return NULL;
16671 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016672 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016674 _children[_n++] = _res;
16675 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016677 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016678 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
16679 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016681 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16682 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016683 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016684 p->error_indicator = 1;
16685 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016686 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016687 return NULL;
16688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016689 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16690 PyMem_Free(_children);
16691 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016692 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016693 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016694}
16695
16696// _gather_25: NAME _loop0_26
16697static asdl_seq *
16698_gather_25_rule(Parser *p)
16699{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016700 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016701 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016702 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016703 return NULL;
16704 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016705 asdl_seq * _res = NULL;
16706 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016707 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016708 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016709 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016710 return NULL;
16711 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016712 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 -070016713 expr_ty elem;
16714 asdl_seq * seq;
16715 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016716 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016717 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016718 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070016719 )
16720 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016721 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 +010016722 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016723 goto done;
16724 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016725 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016726 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
16727 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016729 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016730 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016731 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016732 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016733}
16734
16735// _loop0_28: ',' NAME
16736static asdl_seq *
16737_loop0_28_rule(Parser *p)
16738{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016739 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016740 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016741 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016742 return NULL;
16743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016744 void *_res = NULL;
16745 int _mark = p->mark;
16746 int _start_mark = p->mark;
16747 void **_children = PyMem_Malloc(sizeof(void *));
16748 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016749 p->error_indicator = 1;
16750 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016751 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016752 return NULL;
16753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016754 ssize_t _children_capacity = 1;
16755 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016756 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016758 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016759 return NULL;
16760 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016761 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016762 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016763 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016764 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016765 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016766 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016767 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016768 )
16769 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016770 _res = elem;
16771 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016772 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016773 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016774 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016775 return NULL;
16776 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016777 if (_n == _children_capacity) {
16778 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016779 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16780 if (!_new_children) {
16781 p->error_indicator = 1;
16782 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016783 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016784 return NULL;
16785 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016786 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016788 _children[_n++] = _res;
16789 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016791 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016792 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
16793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016795 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16796 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016797 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016798 p->error_indicator = 1;
16799 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016800 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016801 return NULL;
16802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016803 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16804 PyMem_Free(_children);
16805 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016806 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016807 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016808}
16809
16810// _gather_27: NAME _loop0_28
16811static asdl_seq *
16812_gather_27_rule(Parser *p)
16813{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016814 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016815 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016816 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016817 return NULL;
16818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016819 asdl_seq * _res = NULL;
16820 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016821 { // NAME _loop0_28
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016824 return NULL;
16825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016826 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 -070016827 expr_ty elem;
16828 asdl_seq * seq;
16829 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016830 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016831 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016832 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070016833 )
16834 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016835 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 +010016836 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016837 goto done;
16838 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016839 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016840 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
16841 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016842 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016843 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016844 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016846 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016847}
16848
16849// _tmp_29: ',' expression
16850static void *
16851_tmp_29_rule(Parser *p)
16852{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016853 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016854 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016855 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016856 return NULL;
16857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016858 void * _res = NULL;
16859 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016860 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016862 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016863 return NULL;
16864 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016865 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016866 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016867 expr_ty z;
16868 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016869 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016870 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016871 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016872 )
16873 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016874 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016875 _res = z;
16876 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016878 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016879 return NULL;
16880 }
16881 goto done;
16882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016883 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016884 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
16885 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016887 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016888 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016889 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016890 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016891}
16892
16893// _loop0_30: ('.' | '...')
16894static asdl_seq *
16895_loop0_30_rule(Parser *p)
16896{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016897 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016899 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016900 return NULL;
16901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016902 void *_res = NULL;
16903 int _mark = p->mark;
16904 int _start_mark = p->mark;
16905 void **_children = PyMem_Malloc(sizeof(void *));
16906 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016907 p->error_indicator = 1;
16908 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016909 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016910 return NULL;
16911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016912 ssize_t _children_capacity = 1;
16913 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016914 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016915 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016916 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016917 return NULL;
16918 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016919 D(fprintf(stderr, "%*c> _loop0_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016920 void *_tmp_136_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016921 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016922 (_tmp_136_var = _tmp_136_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070016923 )
16924 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016925 _res = _tmp_136_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016926 if (_n == _children_capacity) {
16927 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016928 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16929 if (!_new_children) {
16930 p->error_indicator = 1;
16931 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016932 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016933 return NULL;
16934 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016935 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016936 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016937 _children[_n++] = _res;
16938 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016941 D(fprintf(stderr, "%*c%s _loop0_30[%d-%d]: %s failed!\n", p->level, ' ',
16942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016944 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16945 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016946 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016947 p->error_indicator = 1;
16948 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016949 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016950 return NULL;
16951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016952 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16953 PyMem_Free(_children);
16954 _PyPegen_insert_memo(p, _start_mark, _loop0_30_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016955 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016956 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016957}
16958
16959// _loop1_31: ('.' | '...')
16960static asdl_seq *
16961_loop1_31_rule(Parser *p)
16962{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016963 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016964 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016965 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016966 return NULL;
16967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016968 void *_res = NULL;
16969 int _mark = p->mark;
16970 int _start_mark = p->mark;
16971 void **_children = PyMem_Malloc(sizeof(void *));
16972 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016973 p->error_indicator = 1;
16974 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016975 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016976 return NULL;
16977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016978 ssize_t _children_capacity = 1;
16979 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016980 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016982 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016983 return NULL;
16984 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016985 D(fprintf(stderr, "%*c> _loop1_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016986 void *_tmp_137_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016987 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016988 (_tmp_137_var = _tmp_137_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070016989 )
16990 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030016991 _res = _tmp_137_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016992 if (_n == _children_capacity) {
16993 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016994 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16995 if (!_new_children) {
16996 p->error_indicator = 1;
16997 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016998 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016999 return NULL;
17000 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017001 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017003 _children[_n++] = _res;
17004 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017006 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017007 D(fprintf(stderr, "%*c%s _loop1_31[%d-%d]: %s failed!\n", p->level, ' ',
17008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017010 if (_n == 0 || p->error_indicator) {
17011 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017012 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017013 return NULL;
17014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017015 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17016 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017017 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017018 p->error_indicator = 1;
17019 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017020 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017021 return NULL;
17022 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017023 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17024 PyMem_Free(_children);
17025 _PyPegen_insert_memo(p, _start_mark, _loop1_31_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017026 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017027 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017028}
17029
17030// _loop0_33: ',' import_from_as_name
17031static asdl_seq *
17032_loop0_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017033{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017034 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017035 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017036 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017037 return NULL;
17038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017039 void *_res = NULL;
17040 int _mark = p->mark;
17041 int _start_mark = p->mark;
17042 void **_children = PyMem_Malloc(sizeof(void *));
17043 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017044 p->error_indicator = 1;
17045 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017046 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017047 return NULL;
17048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017049 ssize_t _children_capacity = 1;
17050 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017051 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017052 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017053 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017054 return NULL;
17055 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017056 D(fprintf(stderr, "%*c> _loop0_33[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017057 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017058 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017059 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017060 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017062 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017063 )
17064 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017065 _res = elem;
17066 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017067 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017068 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017070 return NULL;
17071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017072 if (_n == _children_capacity) {
17073 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017074 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17075 if (!_new_children) {
17076 p->error_indicator = 1;
17077 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017078 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017079 return NULL;
17080 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017081 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017083 _children[_n++] = _res;
17084 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017086 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017087 D(fprintf(stderr, "%*c%s _loop0_33[%d-%d]: %s failed!\n", p->level, ' ',
17088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017089 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017090 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17091 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017092 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017093 p->error_indicator = 1;
17094 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017095 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017096 return NULL;
17097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017098 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17099 PyMem_Free(_children);
17100 _PyPegen_insert_memo(p, _start_mark, _loop0_33_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017101 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017102 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017103}
17104
Guido van Rossumc001c092020-04-30 12:12:19 -070017105// _gather_32: import_from_as_name _loop0_33
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017106static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017107_gather_32_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017108{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017109 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017111 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017112 return NULL;
17113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017114 asdl_seq * _res = NULL;
17115 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017116 { // import_from_as_name _loop0_33
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017119 return NULL;
17120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017121 D(fprintf(stderr, "%*c> _gather_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_33"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017122 alias_ty elem;
17123 asdl_seq * seq;
17124 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017125 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017126 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017127 (seq = _loop0_33_rule(p)) // _loop0_33
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017128 )
17129 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017130 D(fprintf(stderr, "%*c+ _gather_32[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_33"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017131 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017132 goto done;
17133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017135 D(fprintf(stderr, "%*c%s _gather_32[%d-%d]: %s failed!\n", p->level, ' ',
17136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_33"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017138 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017139 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017140 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017141 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017142}
17143
Guido van Rossumc001c092020-04-30 12:12:19 -070017144// _tmp_34: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017145static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070017146_tmp_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017147{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017148 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017150 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017151 return NULL;
17152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017153 void * _res = NULL;
17154 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017155 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017156 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017157 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017158 return NULL;
17159 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017160 D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017161 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017162 expr_ty z;
17163 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017164 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017165 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017166 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017167 )
17168 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017169 D(fprintf(stderr, "%*c+ _tmp_34[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017170 _res = z;
17171 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017172 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017173 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017174 return NULL;
17175 }
17176 goto done;
17177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017178 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017179 D(fprintf(stderr, "%*c%s _tmp_34[%d-%d]: %s failed!\n", p->level, ' ',
17180 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017182 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017183 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017184 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017185 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017186}
17187
Guido van Rossumc001c092020-04-30 12:12:19 -070017188// _loop0_36: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017189static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017190_loop0_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017191{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017192 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017195 return NULL;
17196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017197 void *_res = NULL;
17198 int _mark = p->mark;
17199 int _start_mark = p->mark;
17200 void **_children = PyMem_Malloc(sizeof(void *));
17201 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017202 p->error_indicator = 1;
17203 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017204 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017205 return NULL;
17206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017207 ssize_t _children_capacity = 1;
17208 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017209 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017211 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017212 return NULL;
17213 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017214 D(fprintf(stderr, "%*c> _loop0_36[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017215 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017216 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017217 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017218 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017219 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017220 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017221 )
17222 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017223 _res = elem;
17224 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017225 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017226 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017228 return NULL;
17229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017230 if (_n == _children_capacity) {
17231 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017232 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17233 if (!_new_children) {
17234 p->error_indicator = 1;
17235 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017236 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017237 return NULL;
17238 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017239 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017241 _children[_n++] = _res;
17242 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017245 D(fprintf(stderr, "%*c%s _loop0_36[%d-%d]: %s failed!\n", p->level, ' ',
17246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017248 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17249 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017250 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017251 p->error_indicator = 1;
17252 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017254 return NULL;
17255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017256 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17257 PyMem_Free(_children);
17258 _PyPegen_insert_memo(p, _start_mark, _loop0_36_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017259 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017260 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017261}
17262
Guido van Rossumc001c092020-04-30 12:12:19 -070017263// _gather_35: dotted_as_name _loop0_36
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017264static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017265_gather_35_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017266{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017267 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017268 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017270 return NULL;
17271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017272 asdl_seq * _res = NULL;
17273 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017274 { // dotted_as_name _loop0_36
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017276 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017277 return NULL;
17278 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017279 D(fprintf(stderr, "%*c> _gather_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_36"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017280 alias_ty elem;
17281 asdl_seq * seq;
17282 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017283 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017284 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017285 (seq = _loop0_36_rule(p)) // _loop0_36
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017286 )
17287 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017288 D(fprintf(stderr, "%*c+ _gather_35[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_36"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017289 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017290 goto done;
17291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017292 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017293 D(fprintf(stderr, "%*c%s _gather_35[%d-%d]: %s failed!\n", p->level, ' ',
17294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_36"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017296 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017297 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017298 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017299 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017300}
17301
Guido van Rossumc001c092020-04-30 12:12:19 -070017302// _tmp_37: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017303static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070017304_tmp_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017305{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017306 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017307 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017308 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017309 return NULL;
17310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017311 void * _res = NULL;
17312 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017313 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017316 return NULL;
17317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017318 D(fprintf(stderr, "%*c> _tmp_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017319 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017320 expr_ty z;
17321 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017322 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017323 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017324 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017325 )
17326 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017327 D(fprintf(stderr, "%*c+ _tmp_37[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017328 _res = z;
17329 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017330 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017332 return NULL;
17333 }
17334 goto done;
17335 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017336 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017337 D(fprintf(stderr, "%*c%s _tmp_37[%d-%d]: %s failed!\n", p->level, ' ',
17338 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017340 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017341 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017342 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017343 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017344}
17345
Guido van Rossumc001c092020-04-30 12:12:19 -070017346// _loop0_39: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017347static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017348_loop0_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017349{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017350 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017351 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017352 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017353 return NULL;
17354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017355 void *_res = NULL;
17356 int _mark = p->mark;
17357 int _start_mark = p->mark;
17358 void **_children = PyMem_Malloc(sizeof(void *));
17359 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017360 p->error_indicator = 1;
17361 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017363 return NULL;
17364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017365 ssize_t _children_capacity = 1;
17366 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017367 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017370 return NULL;
17371 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017372 D(fprintf(stderr, "%*c> _loop0_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017373 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017374 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017375 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017376 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017377 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017378 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017379 )
17380 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017381 _res = elem;
17382 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017383 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017384 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017386 return NULL;
17387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017388 if (_n == _children_capacity) {
17389 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017390 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17391 if (!_new_children) {
17392 p->error_indicator = 1;
17393 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017394 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017395 return NULL;
17396 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017397 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017399 _children[_n++] = _res;
17400 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017402 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017403 D(fprintf(stderr, "%*c%s _loop0_39[%d-%d]: %s failed!\n", p->level, ' ',
17404 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017406 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17407 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017408 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017409 p->error_indicator = 1;
17410 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017411 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017412 return NULL;
17413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017414 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17415 PyMem_Free(_children);
17416 _PyPegen_insert_memo(p, _start_mark, _loop0_39_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017417 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017418 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017419}
17420
Guido van Rossumc001c092020-04-30 12:12:19 -070017421// _gather_38: with_item _loop0_39
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017422static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017423_gather_38_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017424{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017425 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017428 return NULL;
17429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017430 asdl_seq * _res = NULL;
17431 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017432 { // with_item _loop0_39
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017434 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017435 return NULL;
17436 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017437 D(fprintf(stderr, "%*c> _gather_38[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_39"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017438 withitem_ty elem;
17439 asdl_seq * seq;
17440 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017441 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017442 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017443 (seq = _loop0_39_rule(p)) // _loop0_39
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017444 )
17445 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017446 D(fprintf(stderr, "%*c+ _gather_38[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_39"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017447 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017448 goto done;
17449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017451 D(fprintf(stderr, "%*c%s _gather_38[%d-%d]: %s failed!\n", p->level, ' ',
17452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_39"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017454 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017455 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017456 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017457 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017458}
17459
Guido van Rossumc001c092020-04-30 12:12:19 -070017460// _loop0_41: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017461static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017462_loop0_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017463{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017464 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017465 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017466 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017467 return NULL;
17468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017469 void *_res = NULL;
17470 int _mark = p->mark;
17471 int _start_mark = p->mark;
17472 void **_children = PyMem_Malloc(sizeof(void *));
17473 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017474 p->error_indicator = 1;
17475 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017477 return NULL;
17478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017479 ssize_t _children_capacity = 1;
17480 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017481 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017484 return NULL;
17485 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017486 D(fprintf(stderr, "%*c> _loop0_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017487 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017488 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017489 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017490 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017491 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017492 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017493 )
17494 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017495 _res = elem;
17496 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017497 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017498 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017499 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017500 return NULL;
17501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017502 if (_n == _children_capacity) {
17503 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017504 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17505 if (!_new_children) {
17506 p->error_indicator = 1;
17507 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017508 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017509 return NULL;
17510 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017511 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017513 _children[_n++] = _res;
17514 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017516 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017517 D(fprintf(stderr, "%*c%s _loop0_41[%d-%d]: %s failed!\n", p->level, ' ',
17518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017520 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17521 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017522 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017523 p->error_indicator = 1;
17524 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017525 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017526 return NULL;
17527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017528 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17529 PyMem_Free(_children);
17530 _PyPegen_insert_memo(p, _start_mark, _loop0_41_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017531 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017532 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017533}
17534
Guido van Rossumc001c092020-04-30 12:12:19 -070017535// _gather_40: with_item _loop0_41
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017536static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017537_gather_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017538{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017539 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017540 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017541 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017542 return NULL;
17543 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017544 asdl_seq * _res = NULL;
17545 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017546 { // with_item _loop0_41
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017547 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017548 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017549 return NULL;
17550 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017551 D(fprintf(stderr, "%*c> _gather_40[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_41"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017552 withitem_ty elem;
17553 asdl_seq * seq;
17554 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017555 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017556 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017557 (seq = _loop0_41_rule(p)) // _loop0_41
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017558 )
17559 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017560 D(fprintf(stderr, "%*c+ _gather_40[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_41"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017561 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017562 goto done;
17563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017565 D(fprintf(stderr, "%*c%s _gather_40[%d-%d]: %s failed!\n", p->level, ' ',
17566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_41"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017568 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017569 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017571 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017572}
17573
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017574// _loop0_43: ',' with_item
17575static asdl_seq *
17576_loop0_43_rule(Parser *p)
17577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017578 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017580 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017581 return NULL;
17582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017583 void *_res = NULL;
17584 int _mark = p->mark;
17585 int _start_mark = p->mark;
17586 void **_children = PyMem_Malloc(sizeof(void *));
17587 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017588 p->error_indicator = 1;
17589 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017590 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017591 return NULL;
17592 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017593 ssize_t _children_capacity = 1;
17594 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017595 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017596 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017597 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017598 return NULL;
17599 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017600 D(fprintf(stderr, "%*c> _loop0_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017601 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017602 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017603 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017604 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017605 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017606 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017607 )
17608 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017609 _res = elem;
17610 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017611 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017612 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017613 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017614 return NULL;
17615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017616 if (_n == _children_capacity) {
17617 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017618 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17619 if (!_new_children) {
17620 p->error_indicator = 1;
17621 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017622 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017623 return NULL;
17624 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017625 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017627 _children[_n++] = _res;
17628 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017630 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017631 D(fprintf(stderr, "%*c%s _loop0_43[%d-%d]: %s failed!\n", p->level, ' ',
17632 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017634 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17635 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017636 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017637 p->error_indicator = 1;
17638 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017639 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017640 return NULL;
17641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017642 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17643 PyMem_Free(_children);
17644 _PyPegen_insert_memo(p, _start_mark, _loop0_43_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017645 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017646 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017647}
17648
17649// _gather_42: with_item _loop0_43
17650static asdl_seq *
17651_gather_42_rule(Parser *p)
17652{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017653 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017654 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017655 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017656 return NULL;
17657 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017658 asdl_seq * _res = NULL;
17659 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017660 { // with_item _loop0_43
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017663 return NULL;
17664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017665 D(fprintf(stderr, "%*c> _gather_42[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_43"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017666 withitem_ty elem;
17667 asdl_seq * seq;
17668 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017669 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017670 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017671 (seq = _loop0_43_rule(p)) // _loop0_43
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017672 )
17673 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017674 D(fprintf(stderr, "%*c+ _gather_42[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_43"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017675 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017676 goto done;
17677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017678 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017679 D(fprintf(stderr, "%*c%s _gather_42[%d-%d]: %s failed!\n", p->level, ' ',
17680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_43"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017682 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017683 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017684 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017685 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017686}
17687
17688// _loop0_45: ',' with_item
17689static asdl_seq *
17690_loop0_45_rule(Parser *p)
17691{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017692 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017693 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017694 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017695 return NULL;
17696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017697 void *_res = NULL;
17698 int _mark = p->mark;
17699 int _start_mark = p->mark;
17700 void **_children = PyMem_Malloc(sizeof(void *));
17701 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017702 p->error_indicator = 1;
17703 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017704 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017705 return NULL;
17706 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017707 ssize_t _children_capacity = 1;
17708 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017709 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017710 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017711 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017712 return NULL;
17713 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017714 D(fprintf(stderr, "%*c> _loop0_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017715 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017716 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017717 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017718 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017719 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017720 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017721 )
17722 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017723 _res = elem;
17724 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017725 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017726 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017727 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017728 return NULL;
17729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017730 if (_n == _children_capacity) {
17731 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017732 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17733 if (!_new_children) {
17734 p->error_indicator = 1;
17735 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017736 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017737 return NULL;
17738 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017739 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017741 _children[_n++] = _res;
17742 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017744 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017745 D(fprintf(stderr, "%*c%s _loop0_45[%d-%d]: %s failed!\n", p->level, ' ',
17746 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017748 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17749 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017750 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017751 p->error_indicator = 1;
17752 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017753 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017754 return NULL;
17755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017756 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17757 PyMem_Free(_children);
17758 _PyPegen_insert_memo(p, _start_mark, _loop0_45_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017759 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017760 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017761}
17762
17763// _gather_44: with_item _loop0_45
17764static asdl_seq *
17765_gather_44_rule(Parser *p)
17766{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017767 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017769 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017770 return NULL;
17771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017772 asdl_seq * _res = NULL;
17773 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017774 { // with_item _loop0_45
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017776 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017777 return NULL;
17778 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017779 D(fprintf(stderr, "%*c> _gather_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_45"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017780 withitem_ty elem;
17781 asdl_seq * seq;
17782 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017783 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017784 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017785 (seq = _loop0_45_rule(p)) // _loop0_45
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017786 )
17787 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017788 D(fprintf(stderr, "%*c+ _gather_44[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "with_item _loop0_45"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017789 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017790 goto done;
17791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017792 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017793 D(fprintf(stderr, "%*c%s _gather_44[%d-%d]: %s failed!\n", p->level, ' ',
17794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_45"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017796 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017797 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017798 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017799 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017800}
17801
17802// _tmp_46: 'as' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017803static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017804_tmp_46_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017805{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017806 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017807 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017809 return NULL;
17810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017811 void * _res = NULL;
17812 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017813 { // 'as' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017815 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017816 return NULL;
17817 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017818 D(fprintf(stderr, "%*c> _tmp_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017819 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017820 expr_ty t;
17821 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017822 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017823 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017824 (t = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017825 )
17826 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017827 D(fprintf(stderr, "%*c+ _tmp_46[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017828 _res = t;
17829 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017830 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017832 return NULL;
17833 }
17834 goto done;
17835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017837 D(fprintf(stderr, "%*c%s _tmp_46[%d-%d]: %s failed!\n", p->level, ' ',
17838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017840 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017841 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017842 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017843 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017844}
17845
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017846// _loop1_47: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017847static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017848_loop1_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017849{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017850 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017853 return NULL;
17854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017855 void *_res = NULL;
17856 int _mark = p->mark;
17857 int _start_mark = p->mark;
17858 void **_children = PyMem_Malloc(sizeof(void *));
17859 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017860 p->error_indicator = 1;
17861 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017863 return NULL;
17864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017865 ssize_t _children_capacity = 1;
17866 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017867 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017870 return NULL;
17871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017872 D(fprintf(stderr, "%*c> _loop1_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017873 excepthandler_ty except_block_var;
17874 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010017875 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017876 )
17877 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017878 _res = except_block_var;
17879 if (_n == _children_capacity) {
17880 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017881 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17882 if (!_new_children) {
17883 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017888 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017890 _children[_n++] = _res;
17891 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017893 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017894 D(fprintf(stderr, "%*c%s _loop1_47[%d-%d]: %s failed!\n", p->level, ' ',
17895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017897 if (_n == 0 || p->error_indicator) {
17898 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017900 return NULL;
17901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017902 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17903 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017904 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017905 p->error_indicator = 1;
17906 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017907 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017908 return NULL;
17909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017910 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17911 PyMem_Free(_children);
17912 _PyPegen_insert_memo(p, _start_mark, _loop1_47_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017913 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017914 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017915}
17916
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030017917// _tmp_48: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017918static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017919_tmp_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017920{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017921 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017922 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017924 return NULL;
17925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017926 void * _res = NULL;
17927 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030017928 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017929 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017930 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017931 return NULL;
17932 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017933 D(fprintf(stderr, "%*c> _tmp_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017934 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017935 expr_ty z;
17936 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017937 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017938 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030017939 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017940 )
17941 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017942 D(fprintf(stderr, "%*c+ _tmp_48[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017943 _res = z;
17944 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017945 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017947 return NULL;
17948 }
17949 goto done;
17950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017951 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017952 D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ',
17953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017955 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017956 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017957 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017958 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017959}
17960
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017961// _tmp_49: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017962static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017963_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017964{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017965 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017966 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017967 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017968 return NULL;
17969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017970 void * _res = NULL;
17971 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017972 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017975 return NULL;
17976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017977 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017978 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017979 expr_ty z;
17980 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017981 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017982 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017983 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017984 )
17985 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017986 D(fprintf(stderr, "%*c+ _tmp_49[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017987 _res = z;
17988 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017989 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017991 return NULL;
17992 }
17993 goto done;
17994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017996 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
17997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017998 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017999 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018000 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018001 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018002 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018003}
18004
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018005// _tmp_50: '->' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018006static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018007_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018008{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018009 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018012 return NULL;
18013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018014 void * _res = NULL;
18015 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018016 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018017 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018018 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018019 return NULL;
18020 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018021 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018022 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070018023 expr_ty z;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018024 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018025 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018026 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018027 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018028 )
18029 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018030 D(fprintf(stderr, "%*c+ _tmp_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018031 _res = z;
18032 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018033 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018034 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018035 return NULL;
18036 }
18037 goto done;
18038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018039 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018040 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
18041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018043 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018044 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018045 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018046 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018047}
18048
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018049// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018050static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018051_tmp_51_rule(Parser *p)
18052{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018053 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018054 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018055 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018056 return NULL;
18057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018058 void * _res = NULL;
18059 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018060 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018061 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018062 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018063 return NULL;
18064 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018065 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018066 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018067 expr_ty z;
18068 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018069 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018070 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018071 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018072 )
18073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018074 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018075 _res = z;
18076 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018077 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018078 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018079 return NULL;
18080 }
18081 goto done;
18082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018083 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018084 D(fprintf(stderr, "%*c%s _tmp_51[%d-%d]: %s failed!\n", p->level, ' ',
18085 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018087 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018088 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018089 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018090 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018091}
18092
18093// _tmp_52: NEWLINE INDENT
18094static void *
18095_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018096{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018097 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018098 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018099 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018100 return NULL;
18101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018102 void * _res = NULL;
18103 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018104 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018106 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018107 return NULL;
18108 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018109 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018110 Token * indent_var;
18111 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018112 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018113 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018115 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018116 )
18117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018118 D(fprintf(stderr, "%*c+ _tmp_52[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018119 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018120 goto done;
18121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018122 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018123 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018126 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018127 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018128 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018129 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018130}
18131
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018132// _loop0_53: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018133static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018134_loop0_53_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018136 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018139 return NULL;
18140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018141 void *_res = NULL;
18142 int _mark = p->mark;
18143 int _start_mark = p->mark;
18144 void **_children = PyMem_Malloc(sizeof(void *));
18145 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018146 p->error_indicator = 1;
18147 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018148 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018149 return NULL;
18150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018151 ssize_t _children_capacity = 1;
18152 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018153 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018154 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018155 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018156 return NULL;
18157 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018158 D(fprintf(stderr, "%*c> _loop0_53[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018159 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018160 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018161 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018162 )
18163 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018164 _res = param_no_default_var;
18165 if (_n == _children_capacity) {
18166 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018167 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18168 if (!_new_children) {
18169 p->error_indicator = 1;
18170 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018171 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018172 return NULL;
18173 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018174 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018176 _children[_n++] = _res;
18177 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018178 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018179 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018180 D(fprintf(stderr, "%*c%s _loop0_53[%d-%d]: %s failed!\n", p->level, ' ',
18181 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018183 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18184 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018185 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018186 p->error_indicator = 1;
18187 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018188 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018189 return NULL;
18190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018191 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18192 PyMem_Free(_children);
18193 _PyPegen_insert_memo(p, _start_mark, _loop0_53_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018194 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018195 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018196}
18197
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018198// _loop0_54: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018199static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018200_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018201{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018202 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018203 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018204 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018205 return NULL;
18206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018207 void *_res = NULL;
18208 int _mark = p->mark;
18209 int _start_mark = p->mark;
18210 void **_children = PyMem_Malloc(sizeof(void *));
18211 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018212 p->error_indicator = 1;
18213 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018215 return NULL;
18216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018217 ssize_t _children_capacity = 1;
18218 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018219 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018221 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018222 return NULL;
18223 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018224 D(fprintf(stderr, "%*c> _loop0_54[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018225 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018226 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018227 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018228 )
18229 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018230 _res = param_with_default_var;
18231 if (_n == _children_capacity) {
18232 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018233 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18234 if (!_new_children) {
18235 p->error_indicator = 1;
18236 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018237 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018238 return NULL;
18239 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018240 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018242 _children[_n++] = _res;
18243 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018245 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018246 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
18247 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018249 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18250 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018251 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018252 p->error_indicator = 1;
18253 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018254 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018255 return NULL;
18256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018257 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18258 PyMem_Free(_children);
18259 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018260 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018261 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018262}
18263
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018264// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018265static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018266_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018267{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018268 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018270 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018271 return NULL;
18272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018273 void *_res = NULL;
18274 int _mark = p->mark;
18275 int _start_mark = p->mark;
18276 void **_children = PyMem_Malloc(sizeof(void *));
18277 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018278 p->error_indicator = 1;
18279 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018280 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018281 return NULL;
18282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018283 ssize_t _children_capacity = 1;
18284 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018285 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018288 return NULL;
18289 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018290 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 -070018291 NameDefaultPair* param_with_default_var;
18292 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018293 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018294 )
18295 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018296 _res = param_with_default_var;
18297 if (_n == _children_capacity) {
18298 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018299 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18300 if (!_new_children) {
18301 p->error_indicator = 1;
18302 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018303 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018304 return NULL;
18305 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018306 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018308 _children[_n++] = _res;
18309 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018311 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018312 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018315 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18316 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018317 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018318 p->error_indicator = 1;
18319 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018320 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018321 return NULL;
18322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018323 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18324 PyMem_Free(_children);
18325 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018326 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018327 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018328}
18329
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018330// _loop1_56: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018331static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018332_loop1_56_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018333{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018334 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018336 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018337 return NULL;
18338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018339 void *_res = NULL;
18340 int _mark = p->mark;
18341 int _start_mark = p->mark;
18342 void **_children = PyMem_Malloc(sizeof(void *));
18343 if (!_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--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018347 return NULL;
18348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018349 ssize_t _children_capacity = 1;
18350 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018351 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018353 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018354 return NULL;
18355 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018356 D(fprintf(stderr, "%*c> _loop1_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018357 arg_ty param_no_default_var;
18358 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018359 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018360 )
18361 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018362 _res = param_no_default_var;
18363 if (_n == _children_capacity) {
18364 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018365 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18366 if (!_new_children) {
18367 p->error_indicator = 1;
18368 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018370 return NULL;
18371 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018372 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018374 _children[_n++] = _res;
18375 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018377 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018378 D(fprintf(stderr, "%*c%s _loop1_56[%d-%d]: %s failed!\n", p->level, ' ',
18379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018381 if (_n == 0 || p->error_indicator) {
18382 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018384 return NULL;
18385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018386 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18387 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018388 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018389 p->error_indicator = 1;
18390 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018391 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018392 return NULL;
18393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018394 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18395 PyMem_Free(_children);
18396 _PyPegen_insert_memo(p, _start_mark, _loop1_56_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018397 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018398 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018399}
18400
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018401// _loop0_57: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018402static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018403_loop0_57_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018404{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018405 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018406 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018407 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018408 return NULL;
18409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018410 void *_res = NULL;
18411 int _mark = p->mark;
18412 int _start_mark = p->mark;
18413 void **_children = PyMem_Malloc(sizeof(void *));
18414 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018415 p->error_indicator = 1;
18416 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018417 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018418 return NULL;
18419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018420 ssize_t _children_capacity = 1;
18421 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018422 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018423 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018424 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018425 return NULL;
18426 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018427 D(fprintf(stderr, "%*c> _loop0_57[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018428 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018429 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018430 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018431 )
18432 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018433 _res = param_with_default_var;
18434 if (_n == _children_capacity) {
18435 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018436 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18437 if (!_new_children) {
18438 p->error_indicator = 1;
18439 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018441 return NULL;
18442 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018443 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018445 _children[_n++] = _res;
18446 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018448 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018449 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
18450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018452 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18453 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018454 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018455 p->error_indicator = 1;
18456 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018457 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018458 return NULL;
18459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018460 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18461 PyMem_Free(_children);
18462 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018463 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018464 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018465}
18466
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018467// _loop1_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018468static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018469_loop1_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018470{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018471 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018474 return NULL;
18475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018476 void *_res = NULL;
18477 int _mark = p->mark;
18478 int _start_mark = p->mark;
18479 void **_children = PyMem_Malloc(sizeof(void *));
18480 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018481 p->error_indicator = 1;
18482 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018484 return NULL;
18485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018486 ssize_t _children_capacity = 1;
18487 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018488 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018491 return NULL;
18492 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018493 D(fprintf(stderr, "%*c> _loop1_58[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018494 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018495 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018496 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018497 )
18498 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018499 _res = param_with_default_var;
18500 if (_n == _children_capacity) {
18501 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018502 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18503 if (!_new_children) {
18504 p->error_indicator = 1;
18505 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018506 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018507 return NULL;
18508 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018509 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018511 _children[_n++] = _res;
18512 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018514 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018515 D(fprintf(stderr, "%*c%s _loop1_58[%d-%d]: %s failed!\n", p->level, ' ',
18516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018518 if (_n == 0 || p->error_indicator) {
18519 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018520 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018521 return NULL;
18522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018523 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18524 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018525 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018526 p->error_indicator = 1;
18527 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018528 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018529 return NULL;
18530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018531 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18532 PyMem_Free(_children);
18533 _PyPegen_insert_memo(p, _start_mark, _loop1_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018534 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018535 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018536}
18537
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018538// _loop1_59: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018539static asdl_seq *
18540_loop1_59_rule(Parser *p)
18541{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018542 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018544 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018545 return NULL;
18546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018547 void *_res = NULL;
18548 int _mark = p->mark;
18549 int _start_mark = p->mark;
18550 void **_children = PyMem_Malloc(sizeof(void *));
18551 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018552 p->error_indicator = 1;
18553 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018554 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018555 return NULL;
18556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018557 ssize_t _children_capacity = 1;
18558 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018559 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018562 return NULL;
18563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018564 D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018565 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018566 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018567 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018568 )
18569 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018570 _res = param_no_default_var;
18571 if (_n == _children_capacity) {
18572 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018573 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18574 if (!_new_children) {
18575 p->error_indicator = 1;
18576 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018577 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018578 return NULL;
18579 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018580 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018582 _children[_n++] = _res;
18583 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018585 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018586 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
18587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018589 if (_n == 0 || p->error_indicator) {
18590 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018591 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018592 return NULL;
18593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018594 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18595 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018596 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018597 p->error_indicator = 1;
18598 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018599 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018600 return NULL;
18601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018602 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18603 PyMem_Free(_children);
18604 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018605 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018606 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018607}
18608
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018609// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018610static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018611_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018612{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018613 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018615 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018616 return NULL;
18617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018618 void *_res = NULL;
18619 int _mark = p->mark;
18620 int _start_mark = p->mark;
18621 void **_children = PyMem_Malloc(sizeof(void *));
18622 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018623 p->error_indicator = 1;
18624 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018625 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018626 return NULL;
18627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018628 ssize_t _children_capacity = 1;
18629 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018630 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018632 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018633 return NULL;
18634 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018635 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 +030018636 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018637 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018638 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018639 )
18640 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018641 _res = param_no_default_var;
18642 if (_n == _children_capacity) {
18643 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018644 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18645 if (!_new_children) {
18646 p->error_indicator = 1;
18647 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018648 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018649 return NULL;
18650 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018651 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018653 _children[_n++] = _res;
18654 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018657 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
18658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018660 if (_n == 0 || p->error_indicator) {
18661 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018662 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018663 return NULL;
18664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018665 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18666 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018667 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018668 p->error_indicator = 1;
18669 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018670 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018671 return NULL;
18672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018673 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18674 PyMem_Free(_children);
18675 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018676 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018677 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018678}
18679
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018680// _loop0_61: param_no_default
18681static asdl_seq *
18682_loop0_61_rule(Parser *p)
18683{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018684 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018685 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018686 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018687 return NULL;
18688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018689 void *_res = NULL;
18690 int _mark = p->mark;
18691 int _start_mark = p->mark;
18692 void **_children = PyMem_Malloc(sizeof(void *));
18693 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018694 p->error_indicator = 1;
18695 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018696 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018697 return NULL;
18698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018699 ssize_t _children_capacity = 1;
18700 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018701 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018702 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018703 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018704 return NULL;
18705 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018706 D(fprintf(stderr, "%*c> _loop0_61[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018707 arg_ty param_no_default_var;
18708 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018709 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018710 )
18711 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018712 _res = param_no_default_var;
18713 if (_n == _children_capacity) {
18714 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018715 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18716 if (!_new_children) {
18717 p->error_indicator = 1;
18718 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018719 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018720 return NULL;
18721 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018722 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018724 _children[_n++] = _res;
18725 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018728 D(fprintf(stderr, "%*c%s _loop0_61[%d-%d]: %s failed!\n", p->level, ' ',
18729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018731 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18732 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018733 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018734 p->error_indicator = 1;
18735 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018736 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018737 return NULL;
18738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018739 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18740 PyMem_Free(_children);
18741 _PyPegen_insert_memo(p, _start_mark, _loop0_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018742 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018743 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018744}
18745
18746// _loop1_62: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018747static asdl_seq *
18748_loop1_62_rule(Parser *p)
18749{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018750 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018752 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018753 return NULL;
18754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018755 void *_res = NULL;
18756 int _mark = p->mark;
18757 int _start_mark = p->mark;
18758 void **_children = PyMem_Malloc(sizeof(void *));
18759 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018760 p->error_indicator = 1;
18761 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018762 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018763 return NULL;
18764 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018765 ssize_t _children_capacity = 1;
18766 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018767 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018768 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018769 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018770 return NULL;
18771 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018772 D(fprintf(stderr, "%*c> _loop1_62[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018773 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018774 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018775 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018776 )
18777 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018778 _res = param_with_default_var;
18779 if (_n == _children_capacity) {
18780 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018781 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18782 if (!_new_children) {
18783 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018788 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018790 _children[_n++] = _res;
18791 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018793 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018794 D(fprintf(stderr, "%*c%s _loop1_62[%d-%d]: %s failed!\n", p->level, ' ',
18795 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018797 if (_n == 0 || p->error_indicator) {
18798 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018799 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018800 return NULL;
18801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018802 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18803 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018804 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018805 p->error_indicator = 1;
18806 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018807 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018808 return NULL;
18809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018810 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18811 PyMem_Free(_children);
18812 _PyPegen_insert_memo(p, _start_mark, _loop1_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018813 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018814 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018815}
18816
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018817// _loop0_63: param_no_default
18818static asdl_seq *
18819_loop0_63_rule(Parser *p)
18820{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018821 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018823 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018824 return NULL;
18825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018826 void *_res = NULL;
18827 int _mark = p->mark;
18828 int _start_mark = p->mark;
18829 void **_children = PyMem_Malloc(sizeof(void *));
18830 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018831 p->error_indicator = 1;
18832 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018833 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018834 return NULL;
18835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018836 ssize_t _children_capacity = 1;
18837 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018838 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018840 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018841 return NULL;
18842 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018843 D(fprintf(stderr, "%*c> _loop0_63[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018844 arg_ty param_no_default_var;
18845 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018846 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018847 )
18848 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018849 _res = param_no_default_var;
18850 if (_n == _children_capacity) {
18851 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018852 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18853 if (!_new_children) {
18854 p->error_indicator = 1;
18855 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018856 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018857 return NULL;
18858 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018859 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018861 _children[_n++] = _res;
18862 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018864 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018865 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
18866 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018868 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18869 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018870 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018871 p->error_indicator = 1;
18872 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018873 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018874 return NULL;
18875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018876 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18877 PyMem_Free(_children);
18878 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018879 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018880 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018881}
18882
18883// _loop1_64: param_with_default
18884static asdl_seq *
18885_loop1_64_rule(Parser *p)
18886{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018887 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018888 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018889 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018890 return NULL;
18891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018892 void *_res = NULL;
18893 int _mark = p->mark;
18894 int _start_mark = p->mark;
18895 void **_children = PyMem_Malloc(sizeof(void *));
18896 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018897 p->error_indicator = 1;
18898 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018899 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018900 return NULL;
18901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018902 ssize_t _children_capacity = 1;
18903 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018904 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018906 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018907 return NULL;
18908 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018909 D(fprintf(stderr, "%*c> _loop1_64[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018910 NameDefaultPair* param_with_default_var;
18911 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018912 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018913 )
18914 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018915 _res = param_with_default_var;
18916 if (_n == _children_capacity) {
18917 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018918 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18919 if (!_new_children) {
18920 p->error_indicator = 1;
18921 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018922 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018923 return NULL;
18924 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018925 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018926 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018927 _children[_n++] = _res;
18928 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018929 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018930 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018931 D(fprintf(stderr, "%*c%s _loop1_64[%d-%d]: %s failed!\n", p->level, ' ',
18932 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018934 if (_n == 0 || p->error_indicator) {
18935 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018936 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018937 return NULL;
18938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018939 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18940 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018941 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018942 p->error_indicator = 1;
18943 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018944 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018945 return NULL;
18946 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018947 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18948 PyMem_Free(_children);
18949 _PyPegen_insert_memo(p, _start_mark, _loop1_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018950 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018951 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018952}
18953
18954// _loop0_65: param_maybe_default
18955static asdl_seq *
18956_loop0_65_rule(Parser *p)
18957{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018958 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018959 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018960 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018961 return NULL;
18962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018963 void *_res = NULL;
18964 int _mark = p->mark;
18965 int _start_mark = p->mark;
18966 void **_children = PyMem_Malloc(sizeof(void *));
18967 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018968 p->error_indicator = 1;
18969 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018970 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018971 return NULL;
18972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018973 ssize_t _children_capacity = 1;
18974 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018975 { // param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018976 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018977 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018978 return NULL;
18979 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018980 D(fprintf(stderr, "%*c> _loop0_65[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018981 NameDefaultPair* param_maybe_default_var;
18982 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018983 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018984 )
18985 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018986 _res = param_maybe_default_var;
18987 if (_n == _children_capacity) {
18988 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018989 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18990 if (!_new_children) {
18991 p->error_indicator = 1;
18992 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018993 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018994 return NULL;
18995 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018996 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018998 _children[_n++] = _res;
18999 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019000 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019001 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019002 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
19003 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019005 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19006 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019007 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019008 p->error_indicator = 1;
19009 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019010 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019011 return NULL;
19012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019013 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19014 PyMem_Free(_children);
19015 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019016 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019017 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019018}
19019
19020// _loop1_66: param_maybe_default
19021static asdl_seq *
19022_loop1_66_rule(Parser *p)
19023{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019024 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019025 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019026 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019027 return NULL;
19028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019029 void *_res = NULL;
19030 int _mark = p->mark;
19031 int _start_mark = p->mark;
19032 void **_children = PyMem_Malloc(sizeof(void *));
19033 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019034 p->error_indicator = 1;
19035 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019036 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019037 return NULL;
19038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019039 ssize_t _children_capacity = 1;
19040 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019041 { // param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019042 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019043 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019044 return NULL;
19045 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019046 D(fprintf(stderr, "%*c> _loop1_66[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019047 NameDefaultPair* param_maybe_default_var;
19048 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019049 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019050 )
19051 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019052 _res = param_maybe_default_var;
19053 if (_n == _children_capacity) {
19054 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019055 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19056 if (!_new_children) {
19057 p->error_indicator = 1;
19058 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019059 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019060 return NULL;
19061 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019062 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019064 _children[_n++] = _res;
19065 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019067 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019068 D(fprintf(stderr, "%*c%s _loop1_66[%d-%d]: %s failed!\n", p->level, ' ',
19069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019071 if (_n == 0 || p->error_indicator) {
19072 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019073 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019074 return NULL;
19075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019076 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19077 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019078 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019079 p->error_indicator = 1;
19080 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019081 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019082 return NULL;
19083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019084 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19085 PyMem_Free(_children);
19086 _PyPegen_insert_memo(p, _start_mark, _loop1_66_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019087 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019088 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019089}
19090
19091// _loop1_67: ('@' named_expression NEWLINE)
19092static asdl_seq *
19093_loop1_67_rule(Parser *p)
19094{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019095 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019097 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019098 return NULL;
19099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019100 void *_res = NULL;
19101 int _mark = p->mark;
19102 int _start_mark = p->mark;
19103 void **_children = PyMem_Malloc(sizeof(void *));
19104 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019105 p->error_indicator = 1;
19106 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019107 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019108 return NULL;
19109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019110 ssize_t _children_capacity = 1;
19111 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019112 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019113 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019114 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019115 return NULL;
19116 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019117 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019118 void *_tmp_138_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019119 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019120 (_tmp_138_var = _tmp_138_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019121 )
19122 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019123 _res = _tmp_138_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019124 if (_n == _children_capacity) {
19125 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019126 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19127 if (!_new_children) {
19128 p->error_indicator = 1;
19129 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019130 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019131 return NULL;
19132 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019133 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019134 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019135 _children[_n++] = _res;
19136 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019138 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019139 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19140 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019142 if (_n == 0 || p->error_indicator) {
19143 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019144 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019145 return NULL;
19146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019147 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19148 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019149 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019150 p->error_indicator = 1;
19151 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019152 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019153 return NULL;
19154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019155 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19156 PyMem_Free(_children);
19157 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019158 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019159 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019160}
19161
19162// _tmp_68: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019163static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019164_tmp_68_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019165{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019166 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019167 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019169 return NULL;
19170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019171 void * _res = NULL;
19172 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019173 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019176 return NULL;
19177 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019178 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019179 Token * _literal;
19180 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019181 void *z;
19182 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019183 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019184 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019185 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019186 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019187 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019188 )
19189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019190 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019191 _res = z;
19192 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019193 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019195 return NULL;
19196 }
19197 goto done;
19198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019199 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019200 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
19201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019203 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019204 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019205 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019206 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019207}
19208
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019209// _loop0_70: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019210static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019211_loop0_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019212{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019213 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019214 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019215 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019216 return NULL;
19217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019218 void *_res = NULL;
19219 int _mark = p->mark;
19220 int _start_mark = p->mark;
19221 void **_children = PyMem_Malloc(sizeof(void *));
19222 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019223 p->error_indicator = 1;
19224 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019226 return NULL;
19227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019228 ssize_t _children_capacity = 1;
19229 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019230 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019231 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019232 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019233 return NULL;
19234 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019235 D(fprintf(stderr, "%*c> _loop0_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019236 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019237 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019238 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019239 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019240 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019241 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019242 )
19243 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019244 _res = elem;
19245 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019246 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019247 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019248 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019249 return NULL;
19250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019251 if (_n == _children_capacity) {
19252 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019253 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19254 if (!_new_children) {
19255 p->error_indicator = 1;
19256 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019257 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019258 return NULL;
19259 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019260 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019262 _children[_n++] = _res;
19263 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019265 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019266 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
19267 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019269 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19270 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019271 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019272 p->error_indicator = 1;
19273 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019275 return NULL;
19276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019277 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19278 PyMem_Free(_children);
19279 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019280 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019281 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019282}
19283
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019284// _gather_69: star_expression _loop0_70
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019285static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019286_gather_69_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019287{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019288 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019289 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019291 return NULL;
19292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019293 asdl_seq * _res = NULL;
19294 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019295 { // star_expression _loop0_70
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019296 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019297 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019298 return NULL;
19299 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019300 D(fprintf(stderr, "%*c> _gather_69[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression _loop0_70"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019301 expr_ty elem;
19302 asdl_seq * seq;
19303 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019304 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019305 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019306 (seq = _loop0_70_rule(p)) // _loop0_70
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019307 )
19308 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019309 D(fprintf(stderr, "%*c+ _gather_69[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expression _loop0_70"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019310 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019311 goto done;
19312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019313 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019314 D(fprintf(stderr, "%*c%s _gather_69[%d-%d]: %s failed!\n", p->level, ' ',
19315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_70"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019317 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019318 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019319 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019320 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019321}
19322
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019323// _loop1_71: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019324static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019325_loop1_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019326{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019327 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019330 return NULL;
19331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019332 void *_res = NULL;
19333 int _mark = p->mark;
19334 int _start_mark = p->mark;
19335 void **_children = PyMem_Malloc(sizeof(void *));
19336 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019337 p->error_indicator = 1;
19338 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019339 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019340 return NULL;
19341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019342 ssize_t _children_capacity = 1;
19343 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019344 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019345 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019346 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019347 return NULL;
19348 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019349 D(fprintf(stderr, "%*c> _loop1_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019350 void *_tmp_139_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019351 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019352 (_tmp_139_var = _tmp_139_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019353 )
19354 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019355 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019356 if (_n == _children_capacity) {
19357 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019358 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19359 if (!_new_children) {
19360 p->error_indicator = 1;
19361 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019362 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019363 return NULL;
19364 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019365 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019367 _children[_n++] = _res;
19368 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019369 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019370 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019371 D(fprintf(stderr, "%*c%s _loop1_71[%d-%d]: %s failed!\n", p->level, ' ',
19372 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019374 if (_n == 0 || p->error_indicator) {
19375 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019377 return NULL;
19378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019379 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19380 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019381 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019382 p->error_indicator = 1;
19383 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019384 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019385 return NULL;
19386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019387 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19388 PyMem_Free(_children);
19389 _PyPegen_insert_memo(p, _start_mark, _loop1_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019390 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019391 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019392}
19393
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019394// _loop0_73: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019395static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019396_loop0_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019397{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019398 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019399 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019401 return NULL;
19402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019403 void *_res = NULL;
19404 int _mark = p->mark;
19405 int _start_mark = p->mark;
19406 void **_children = PyMem_Malloc(sizeof(void *));
19407 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019408 p->error_indicator = 1;
19409 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019411 return NULL;
19412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019413 ssize_t _children_capacity = 1;
19414 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019415 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019416 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019417 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019418 return NULL;
19419 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019420 D(fprintf(stderr, "%*c> _loop0_73[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019421 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019422 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019423 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019424 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019426 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019427 )
19428 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019429 _res = elem;
19430 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019431 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019432 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019434 return NULL;
19435 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019436 if (_n == _children_capacity) {
19437 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019438 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19439 if (!_new_children) {
19440 p->error_indicator = 1;
19441 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019442 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019443 return NULL;
19444 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019445 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019447 _children[_n++] = _res;
19448 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019450 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019451 D(fprintf(stderr, "%*c%s _loop0_73[%d-%d]: %s failed!\n", p->level, ' ',
19452 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019454 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19455 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019456 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019457 p->error_indicator = 1;
19458 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019459 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019460 return NULL;
19461 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019462 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19463 PyMem_Free(_children);
19464 _PyPegen_insert_memo(p, _start_mark, _loop0_73_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019465 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019466 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019467}
19468
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019469// _gather_72: star_named_expression _loop0_73
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019470static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019471_gather_72_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019472{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019473 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019474 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019476 return NULL;
19477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019478 asdl_seq * _res = NULL;
19479 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019480 { // star_named_expression _loop0_73
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019482 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019483 return NULL;
19484 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019485 D(fprintf(stderr, "%*c> _gather_72[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_73"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019486 expr_ty elem;
19487 asdl_seq * seq;
19488 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019489 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019490 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019491 (seq = _loop0_73_rule(p)) // _loop0_73
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019492 )
19493 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019494 D(fprintf(stderr, "%*c+ _gather_72[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression _loop0_73"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019495 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019496 goto done;
19497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019498 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019499 D(fprintf(stderr, "%*c%s _gather_72[%d-%d]: %s failed!\n", p->level, ' ',
19500 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_73"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019502 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019503 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019504 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019505 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019506}
19507
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019508// _loop1_74: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019509static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019510_loop1_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019511{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019512 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019513 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019515 return NULL;
19516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019517 void *_res = NULL;
19518 int _mark = p->mark;
19519 int _start_mark = p->mark;
19520 void **_children = PyMem_Malloc(sizeof(void *));
19521 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019522 p->error_indicator = 1;
19523 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019525 return NULL;
19526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019527 ssize_t _children_capacity = 1;
19528 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019529 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019531 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019532 return NULL;
19533 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019534 D(fprintf(stderr, "%*c> _loop1_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019535 void *_tmp_140_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019536 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019537 (_tmp_140_var = _tmp_140_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019538 )
19539 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030019540 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019541 if (_n == _children_capacity) {
19542 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019543 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19544 if (!_new_children) {
19545 p->error_indicator = 1;
19546 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019547 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019548 return NULL;
19549 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019550 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019552 _children[_n++] = _res;
19553 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019555 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019556 D(fprintf(stderr, "%*c%s _loop1_74[%d-%d]: %s failed!\n", p->level, ' ',
19557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019559 if (_n == 0 || p->error_indicator) {
19560 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019561 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019562 return NULL;
19563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019564 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19565 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019566 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019567 p->error_indicator = 1;
19568 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019569 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019570 return NULL;
19571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019572 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19573 PyMem_Free(_children);
19574 _PyPegen_insert_memo(p, _start_mark, _loop1_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019575 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019576 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019577}
19578
Guido van Rossum3941d972020-05-01 09:42:03 -070019579// _loop0_75: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019580static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070019581_loop0_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019582{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019583 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019585 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019586 return NULL;
19587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019588 void *_res = NULL;
19589 int _mark = p->mark;
19590 int _start_mark = p->mark;
19591 void **_children = PyMem_Malloc(sizeof(void *));
19592 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019593 p->error_indicator = 1;
19594 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019595 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019596 return NULL;
19597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019598 ssize_t _children_capacity = 1;
19599 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019600 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019603 return NULL;
19604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019605 D(fprintf(stderr, "%*c> _loop0_75[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019606 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019607 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019608 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019609 )
19610 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019611 _res = lambda_param_no_default_var;
19612 if (_n == _children_capacity) {
19613 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019614 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19615 if (!_new_children) {
19616 p->error_indicator = 1;
19617 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019618 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019619 return NULL;
19620 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019621 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019623 _children[_n++] = _res;
19624 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019625 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019626 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019627 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
19628 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019630 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19631 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019632 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019633 p->error_indicator = 1;
19634 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019635 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019636 return NULL;
19637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019638 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19639 PyMem_Free(_children);
19640 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019641 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019642 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019643}
19644
Guido van Rossum3941d972020-05-01 09:42:03 -070019645// _loop0_76: lambda_param_with_default
19646static asdl_seq *
19647_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019648{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019649 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019651 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019652 return NULL;
19653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019654 void *_res = NULL;
19655 int _mark = p->mark;
19656 int _start_mark = p->mark;
19657 void **_children = PyMem_Malloc(sizeof(void *));
19658 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019659 p->error_indicator = 1;
19660 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019661 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019662 return NULL;
19663 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019664 ssize_t _children_capacity = 1;
19665 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019666 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019668 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019669 return NULL;
19670 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019671 D(fprintf(stderr, "%*c> _loop0_76[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019672 NameDefaultPair* lambda_param_with_default_var;
19673 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019674 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019675 )
19676 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019677 _res = lambda_param_with_default_var;
19678 if (_n == _children_capacity) {
19679 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019680 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19681 if (!_new_children) {
19682 p->error_indicator = 1;
19683 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019684 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019685 return NULL;
19686 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019687 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019689 _children[_n++] = _res;
19690 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019692 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019693 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
19694 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019696 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19697 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019698 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019699 p->error_indicator = 1;
19700 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019701 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019702 return NULL;
19703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019704 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19705 PyMem_Free(_children);
19706 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019707 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019708 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019709}
19710
Guido van Rossum3941d972020-05-01 09:42:03 -070019711// _loop0_77: lambda_param_with_default
19712static asdl_seq *
19713_loop0_77_rule(Parser *p)
19714{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019715 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019717 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019718 return NULL;
19719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019720 void *_res = NULL;
19721 int _mark = p->mark;
19722 int _start_mark = p->mark;
19723 void **_children = PyMem_Malloc(sizeof(void *));
19724 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019725 p->error_indicator = 1;
19726 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019727 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019728 return NULL;
19729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019730 ssize_t _children_capacity = 1;
19731 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019732 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019735 return NULL;
19736 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019737 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 -070019738 NameDefaultPair* lambda_param_with_default_var;
19739 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019740 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019741 )
19742 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019743 _res = lambda_param_with_default_var;
19744 if (_n == _children_capacity) {
19745 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019746 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19747 if (!_new_children) {
19748 p->error_indicator = 1;
19749 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019750 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019751 return NULL;
19752 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019753 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019755 _children[_n++] = _res;
19756 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019757 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019758 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019759 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
19760 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019761 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019762 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19763 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019764 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019765 p->error_indicator = 1;
19766 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019767 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019768 return NULL;
19769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019770 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19771 PyMem_Free(_children);
19772 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019773 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019774 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019775}
19776
19777// _loop1_78: lambda_param_no_default
19778static asdl_seq *
19779_loop1_78_rule(Parser *p)
19780{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019781 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019782 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019783 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019784 return NULL;
19785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019786 void *_res = NULL;
19787 int _mark = p->mark;
19788 int _start_mark = p->mark;
19789 void **_children = PyMem_Malloc(sizeof(void *));
19790 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019791 p->error_indicator = 1;
19792 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019793 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019794 return NULL;
19795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019796 ssize_t _children_capacity = 1;
19797 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019798 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019799 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019800 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019801 return NULL;
19802 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019803 D(fprintf(stderr, "%*c> _loop1_78[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019804 arg_ty lambda_param_no_default_var;
19805 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019806 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019807 )
19808 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019809 _res = lambda_param_no_default_var;
19810 if (_n == _children_capacity) {
19811 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019812 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19813 if (!_new_children) {
19814 p->error_indicator = 1;
19815 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019816 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019817 return NULL;
19818 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019819 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019821 _children[_n++] = _res;
19822 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019824 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019825 D(fprintf(stderr, "%*c%s _loop1_78[%d-%d]: %s failed!\n", p->level, ' ',
19826 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019827 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019828 if (_n == 0 || p->error_indicator) {
19829 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019830 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019831 return NULL;
19832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019833 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19834 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019835 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019836 p->error_indicator = 1;
19837 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019838 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019839 return NULL;
19840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019841 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19842 PyMem_Free(_children);
19843 _PyPegen_insert_memo(p, _start_mark, _loop1_78_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019844 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019845 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019846}
19847
19848// _loop0_79: lambda_param_with_default
19849static asdl_seq *
19850_loop0_79_rule(Parser *p)
19851{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019852 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019854 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019855 return NULL;
19856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019857 void *_res = NULL;
19858 int _mark = p->mark;
19859 int _start_mark = p->mark;
19860 void **_children = PyMem_Malloc(sizeof(void *));
19861 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019862 p->error_indicator = 1;
19863 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019864 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019865 return NULL;
19866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019867 ssize_t _children_capacity = 1;
19868 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019869 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019870 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019871 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019872 return NULL;
19873 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019874 D(fprintf(stderr, "%*c> _loop0_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019875 NameDefaultPair* lambda_param_with_default_var;
19876 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019877 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019878 )
19879 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019880 _res = lambda_param_with_default_var;
19881 if (_n == _children_capacity) {
19882 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019883 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19884 if (!_new_children) {
19885 p->error_indicator = 1;
19886 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019887 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019888 return NULL;
19889 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019890 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019892 _children[_n++] = _res;
19893 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019895 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019896 D(fprintf(stderr, "%*c%s _loop0_79[%d-%d]: %s failed!\n", p->level, ' ',
19897 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019899 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19900 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019901 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019902 p->error_indicator = 1;
19903 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019904 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019905 return NULL;
19906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019907 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19908 PyMem_Free(_children);
19909 _PyPegen_insert_memo(p, _start_mark, _loop0_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019910 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019911 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019912}
19913
19914// _loop1_80: lambda_param_with_default
19915static asdl_seq *
19916_loop1_80_rule(Parser *p)
19917{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019918 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019919 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019920 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019921 return NULL;
19922 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019923 void *_res = NULL;
19924 int _mark = p->mark;
19925 int _start_mark = p->mark;
19926 void **_children = PyMem_Malloc(sizeof(void *));
19927 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019928 p->error_indicator = 1;
19929 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019930 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019931 return NULL;
19932 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019933 ssize_t _children_capacity = 1;
19934 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019935 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019936 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019937 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019938 return NULL;
19939 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019940 D(fprintf(stderr, "%*c> _loop1_80[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019941 NameDefaultPair* lambda_param_with_default_var;
19942 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019943 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019944 )
19945 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019946 _res = lambda_param_with_default_var;
19947 if (_n == _children_capacity) {
19948 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019949 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19950 if (!_new_children) {
19951 p->error_indicator = 1;
19952 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019953 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019954 return NULL;
19955 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019956 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019958 _children[_n++] = _res;
19959 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019960 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019961 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019962 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
19963 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019965 if (_n == 0 || p->error_indicator) {
19966 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019967 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019968 return NULL;
19969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019970 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19971 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019972 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019973 p->error_indicator = 1;
19974 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019975 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019976 return NULL;
19977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019978 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19979 PyMem_Free(_children);
19980 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019981 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019982 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019983}
19984
19985// _loop1_81: lambda_param_no_default
19986static asdl_seq *
19987_loop1_81_rule(Parser *p)
19988{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019989 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019991 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019992 return NULL;
19993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019994 void *_res = NULL;
19995 int _mark = p->mark;
19996 int _start_mark = p->mark;
19997 void **_children = PyMem_Malloc(sizeof(void *));
19998 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019999 p->error_indicator = 1;
20000 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020001 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020002 return NULL;
20003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020004 ssize_t _children_capacity = 1;
20005 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020006 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020007 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020008 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020009 return NULL;
20010 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020011 D(fprintf(stderr, "%*c> _loop1_81[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020012 arg_ty lambda_param_no_default_var;
20013 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020014 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020015 )
20016 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020017 _res = lambda_param_no_default_var;
20018 if (_n == _children_capacity) {
20019 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020020 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20021 if (!_new_children) {
20022 p->error_indicator = 1;
20023 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020024 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020025 return NULL;
20026 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020027 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020029 _children[_n++] = _res;
20030 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020031 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020032 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020033 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
20034 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020036 if (_n == 0 || p->error_indicator) {
20037 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020038 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020039 return NULL;
20040 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020041 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20042 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020043 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020044 p->error_indicator = 1;
20045 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020046 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020047 return NULL;
20048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020049 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20050 PyMem_Free(_children);
20051 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020052 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020053 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020054}
20055
20056// _loop1_82: lambda_param_no_default
20057static asdl_seq *
20058_loop1_82_rule(Parser *p)
20059{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020060 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020061 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020062 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020063 return NULL;
20064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020065 void *_res = NULL;
20066 int _mark = p->mark;
20067 int _start_mark = p->mark;
20068 void **_children = PyMem_Malloc(sizeof(void *));
20069 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020070 p->error_indicator = 1;
20071 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020072 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020073 return NULL;
20074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020075 ssize_t _children_capacity = 1;
20076 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020077 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020078 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020079 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020080 return NULL;
20081 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020082 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 -070020083 arg_ty lambda_param_no_default_var;
20084 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020085 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020086 )
20087 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020088 _res = lambda_param_no_default_var;
20089 if (_n == _children_capacity) {
20090 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020091 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20092 if (!_new_children) {
20093 p->error_indicator = 1;
20094 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020095 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020096 return NULL;
20097 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020098 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020100 _children[_n++] = _res;
20101 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020103 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020104 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20105 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020107 if (_n == 0 || p->error_indicator) {
20108 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020109 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020110 return NULL;
20111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020112 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20113 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020114 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020115 p->error_indicator = 1;
20116 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020117 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020118 return NULL;
20119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020120 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20121 PyMem_Free(_children);
20122 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020123 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020124 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020125}
20126
20127// _loop0_83: lambda_param_no_default
20128static asdl_seq *
20129_loop0_83_rule(Parser *p)
20130{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020131 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020132 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020133 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020134 return NULL;
20135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020136 void *_res = NULL;
20137 int _mark = p->mark;
20138 int _start_mark = p->mark;
20139 void **_children = PyMem_Malloc(sizeof(void *));
20140 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020141 p->error_indicator = 1;
20142 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020143 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020144 return NULL;
20145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020146 ssize_t _children_capacity = 1;
20147 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020148 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020150 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020151 return NULL;
20152 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020153 D(fprintf(stderr, "%*c> _loop0_83[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020154 arg_ty lambda_param_no_default_var;
20155 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020156 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020157 )
20158 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020159 _res = lambda_param_no_default_var;
20160 if (_n == _children_capacity) {
20161 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020162 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20163 if (!_new_children) {
20164 p->error_indicator = 1;
20165 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020166 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020167 return NULL;
20168 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020169 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020171 _children[_n++] = _res;
20172 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020174 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020175 D(fprintf(stderr, "%*c%s _loop0_83[%d-%d]: %s failed!\n", p->level, ' ',
20176 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020177 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020178 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20179 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020180 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020181 p->error_indicator = 1;
20182 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020183 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020184 return NULL;
20185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020186 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20187 PyMem_Free(_children);
20188 _PyPegen_insert_memo(p, _start_mark, _loop0_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020189 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020190 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020191}
20192
20193// _loop1_84: lambda_param_with_default
20194static asdl_seq *
20195_loop1_84_rule(Parser *p)
20196{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020197 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020198 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020199 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020200 return NULL;
20201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020202 void *_res = NULL;
20203 int _mark = p->mark;
20204 int _start_mark = p->mark;
20205 void **_children = PyMem_Malloc(sizeof(void *));
20206 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020207 p->error_indicator = 1;
20208 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020209 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020210 return NULL;
20211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020212 ssize_t _children_capacity = 1;
20213 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020214 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020216 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020217 return NULL;
20218 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020219 D(fprintf(stderr, "%*c> _loop1_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020220 NameDefaultPair* lambda_param_with_default_var;
20221 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020222 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020223 )
20224 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020225 _res = lambda_param_with_default_var;
20226 if (_n == _children_capacity) {
20227 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020228 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20229 if (!_new_children) {
20230 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020235 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020236 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020237 _children[_n++] = _res;
20238 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020240 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020241 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
20242 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020244 if (_n == 0 || p->error_indicator) {
20245 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020246 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020247 return NULL;
20248 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020249 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20250 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020251 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020252 p->error_indicator = 1;
20253 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020254 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020255 return NULL;
20256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020257 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20258 PyMem_Free(_children);
20259 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020260 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020261 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020262}
20263
20264// _loop0_85: lambda_param_no_default
20265static asdl_seq *
20266_loop0_85_rule(Parser *p)
20267{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020268 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020270 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020271 return NULL;
20272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020273 void *_res = NULL;
20274 int _mark = p->mark;
20275 int _start_mark = p->mark;
20276 void **_children = PyMem_Malloc(sizeof(void *));
20277 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020278 p->error_indicator = 1;
20279 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020280 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020281 return NULL;
20282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020283 ssize_t _children_capacity = 1;
20284 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020285 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020286 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020287 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020288 return NULL;
20289 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020290 D(fprintf(stderr, "%*c> _loop0_85[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020291 arg_ty lambda_param_no_default_var;
20292 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020293 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020294 )
20295 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020296 _res = lambda_param_no_default_var;
20297 if (_n == _children_capacity) {
20298 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020299 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20300 if (!_new_children) {
20301 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020306 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020308 _children[_n++] = _res;
20309 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020310 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020311 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020312 D(fprintf(stderr, "%*c%s _loop0_85[%d-%d]: %s failed!\n", p->level, ' ',
20313 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020315 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20316 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020317 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020318 p->error_indicator = 1;
20319 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020320 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020321 return NULL;
20322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020323 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20324 PyMem_Free(_children);
20325 _PyPegen_insert_memo(p, _start_mark, _loop0_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020326 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020327 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020328}
20329
20330// _loop1_86: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020331static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030020332_loop1_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020333{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020334 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020336 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020337 return NULL;
20338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020339 void *_res = NULL;
20340 int _mark = p->mark;
20341 int _start_mark = p->mark;
20342 void **_children = PyMem_Malloc(sizeof(void *));
20343 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020344 p->error_indicator = 1;
20345 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020346 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020347 return NULL;
20348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020349 ssize_t _children_capacity = 1;
20350 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020351 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020353 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020354 return NULL;
20355 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020356 D(fprintf(stderr, "%*c> _loop1_86[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020357 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020358 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020359 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020360 )
20361 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020362 _res = lambda_param_with_default_var;
20363 if (_n == _children_capacity) {
20364 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020365 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20366 if (!_new_children) {
20367 p->error_indicator = 1;
20368 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020369 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020370 return NULL;
20371 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020372 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020374 _children[_n++] = _res;
20375 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020377 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020378 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
20379 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020381 if (_n == 0 || p->error_indicator) {
20382 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020384 return NULL;
20385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020386 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20387 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020388 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020389 p->error_indicator = 1;
20390 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020391 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020392 return NULL;
20393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020394 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20395 PyMem_Free(_children);
20396 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020397 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020398 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020399}
20400
Guido van Rossum3941d972020-05-01 09:42:03 -070020401// _loop0_87: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020402static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020403_loop0_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020404{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020405 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020406 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020407 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020408 return NULL;
20409 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020410 void *_res = NULL;
20411 int _mark = p->mark;
20412 int _start_mark = p->mark;
20413 void **_children = PyMem_Malloc(sizeof(void *));
20414 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020415 p->error_indicator = 1;
20416 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020417 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020418 return NULL;
20419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020420 ssize_t _children_capacity = 1;
20421 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020422 { // lambda_param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020423 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020424 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020425 return NULL;
20426 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020427 D(fprintf(stderr, "%*c> _loop0_87[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020428 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020429 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020430 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020431 )
20432 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020433 _res = lambda_param_maybe_default_var;
20434 if (_n == _children_capacity) {
20435 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020436 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20437 if (!_new_children) {
20438 p->error_indicator = 1;
20439 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020441 return NULL;
20442 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020443 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020445 _children[_n++] = _res;
20446 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020448 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020449 D(fprintf(stderr, "%*c%s _loop0_87[%d-%d]: %s failed!\n", p->level, ' ',
20450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020452 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20453 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020454 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020455 p->error_indicator = 1;
20456 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020457 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020458 return NULL;
20459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020460 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20461 PyMem_Free(_children);
20462 _PyPegen_insert_memo(p, _start_mark, _loop0_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020463 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020464 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020465}
20466
Guido van Rossum3941d972020-05-01 09:42:03 -070020467// _loop1_88: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020468static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020469_loop1_88_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020470{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020471 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020474 return NULL;
20475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020476 void *_res = NULL;
20477 int _mark = p->mark;
20478 int _start_mark = p->mark;
20479 void **_children = PyMem_Malloc(sizeof(void *));
20480 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020481 p->error_indicator = 1;
20482 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020483 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020484 return NULL;
20485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020486 ssize_t _children_capacity = 1;
20487 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020488 { // lambda_param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020489 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020490 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020491 return NULL;
20492 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020493 D(fprintf(stderr, "%*c> _loop1_88[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_maybe_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020494 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020495 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020496 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020497 )
20498 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020499 _res = lambda_param_maybe_default_var;
20500 if (_n == _children_capacity) {
20501 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020502 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20503 if (!_new_children) {
20504 p->error_indicator = 1;
20505 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020506 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020507 return NULL;
20508 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020509 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020510 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020511 _children[_n++] = _res;
20512 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020513 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020514 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020515 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
20516 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020518 if (_n == 0 || p->error_indicator) {
20519 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020520 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020521 return NULL;
20522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020523 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20524 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020525 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020526 p->error_indicator = 1;
20527 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020528 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020529 return NULL;
20530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020531 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20532 PyMem_Free(_children);
20533 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020534 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020535 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020536}
20537
Guido van Rossum3941d972020-05-01 09:42:03 -070020538// _loop1_89: ('or' conjunction)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020539static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020540_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020541{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020542 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020545 return NULL;
20546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020547 void *_res = NULL;
20548 int _mark = p->mark;
20549 int _start_mark = p->mark;
20550 void **_children = PyMem_Malloc(sizeof(void *));
20551 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020552 p->error_indicator = 1;
20553 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020555 return NULL;
20556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020557 ssize_t _children_capacity = 1;
20558 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020559 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020562 return NULL;
20563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020564 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030020565 void *_tmp_141_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020566 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030020567 (_tmp_141_var = _tmp_141_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020568 )
20569 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030020570 _res = _tmp_141_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020571 if (_n == _children_capacity) {
20572 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020573 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20574 if (!_new_children) {
20575 p->error_indicator = 1;
20576 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020577 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020578 return NULL;
20579 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020580 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020581 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020582 _children[_n++] = _res;
20583 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020585 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020586 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
20587 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020589 if (_n == 0 || p->error_indicator) {
20590 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020592 return NULL;
20593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020594 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20595 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020596 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020597 p->error_indicator = 1;
20598 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020599 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020600 return NULL;
20601 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020602 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20603 PyMem_Free(_children);
20604 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020605 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020606 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020607}
20608
Guido van Rossum3941d972020-05-01 09:42:03 -070020609// _loop1_90: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020610static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020611_loop1_90_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020612{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020613 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020615 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020616 return NULL;
20617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020618 void *_res = NULL;
20619 int _mark = p->mark;
20620 int _start_mark = p->mark;
20621 void **_children = PyMem_Malloc(sizeof(void *));
20622 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020623 p->error_indicator = 1;
20624 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020625 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020626 return NULL;
20627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020628 ssize_t _children_capacity = 1;
20629 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020630 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020631 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020632 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020633 return NULL;
20634 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020635 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030020636 void *_tmp_142_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020637 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030020638 (_tmp_142_var = _tmp_142_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020639 )
20640 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030020641 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020642 if (_n == _children_capacity) {
20643 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020644 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20645 if (!_new_children) {
20646 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020651 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020652 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020653 _children[_n++] = _res;
20654 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020657 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
20658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020660 if (_n == 0 || p->error_indicator) {
20661 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020662 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020663 return NULL;
20664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020665 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20666 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020667 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020668 p->error_indicator = 1;
20669 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020671 return NULL;
20672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020673 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20674 PyMem_Free(_children);
20675 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020676 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020677 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020678}
20679
Guido van Rossum3941d972020-05-01 09:42:03 -070020680// _loop1_91: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020681static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020682_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020683{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020684 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020685 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020686 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020687 return NULL;
20688 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020689 void *_res = NULL;
20690 int _mark = p->mark;
20691 int _start_mark = p->mark;
20692 void **_children = PyMem_Malloc(sizeof(void *));
20693 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020694 p->error_indicator = 1;
20695 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020696 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020697 return NULL;
20698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020699 ssize_t _children_capacity = 1;
20700 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020701 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020702 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020703 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020704 return NULL;
20705 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020706 D(fprintf(stderr, "%*c> _loop1_91[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020707 CmpopExprPair* compare_op_bitwise_or_pair_var;
20708 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020709 (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 +010020710 )
20711 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020712 _res = compare_op_bitwise_or_pair_var;
20713 if (_n == _children_capacity) {
20714 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020715 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20716 if (!_new_children) {
20717 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 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020722 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020723 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020724 _children[_n++] = _res;
20725 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020728 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
20729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020731 if (_n == 0 || p->error_indicator) {
20732 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020733 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020734 return NULL;
20735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020736 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20737 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020738 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020739 p->error_indicator = 1;
20740 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020741 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020742 return NULL;
20743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020744 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20745 PyMem_Free(_children);
20746 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020747 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020748 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020749}
20750
Guido van Rossum3941d972020-05-01 09:42:03 -070020751// _tmp_92: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010020752static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070020753_tmp_92_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010020754{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020755 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010020756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020757 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010020758 return NULL;
20759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020760 void * _res = NULL;
20761 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020762 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020763 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020764 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020765 return NULL;
20766 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020767 D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010020768 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020769 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020770 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010020771 )
20772 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020773 D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020774 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
20775 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010020776 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020777 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010020778 return NULL;
20779 }
20780 goto done;
20781 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020782 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020783 D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
20784 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010020785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020786 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020787 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020788 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020789 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020790}
20791
Guido van Rossum3941d972020-05-01 09:42:03 -070020792// _loop0_94: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020793static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020794_loop0_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020795{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020796 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020797 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020798 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020799 return NULL;
20800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020801 void *_res = NULL;
20802 int _mark = p->mark;
20803 int _start_mark = p->mark;
20804 void **_children = PyMem_Malloc(sizeof(void *));
20805 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020806 p->error_indicator = 1;
20807 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020808 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020809 return NULL;
20810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020811 ssize_t _children_capacity = 1;
20812 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020813 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020815 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020816 return NULL;
20817 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020818 D(fprintf(stderr, "%*c> _loop0_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020819 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020820 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020821 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020822 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020823 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010020824 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020825 )
20826 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020827 _res = elem;
20828 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020829 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020830 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020831 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020832 return NULL;
20833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020834 if (_n == _children_capacity) {
20835 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020836 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20837 if (!_new_children) {
20838 p->error_indicator = 1;
20839 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020840 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020841 return NULL;
20842 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020843 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020845 _children[_n++] = _res;
20846 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020848 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020849 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
20850 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020852 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20853 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020854 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020855 p->error_indicator = 1;
20856 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020857 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020858 return NULL;
20859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020860 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20861 PyMem_Free(_children);
20862 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020863 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020864 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020865}
20866
Guido van Rossum3941d972020-05-01 09:42:03 -070020867// _gather_93: slice _loop0_94
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020868static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020869_gather_93_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020870{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020871 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020872 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020873 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020874 return NULL;
20875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020876 asdl_seq * _res = NULL;
20877 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020878 { // slice _loop0_94
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020879 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020880 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020881 return NULL;
20882 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020883 D(fprintf(stderr, "%*c> _gather_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_94"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020884 expr_ty elem;
20885 asdl_seq * seq;
20886 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020887 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020888 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010020889 (seq = _loop0_94_rule(p)) // _loop0_94
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020890 )
20891 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020892 D(fprintf(stderr, "%*c+ _gather_93[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice _loop0_94"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020893 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020894 goto done;
20895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020896 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020897 D(fprintf(stderr, "%*c%s _gather_93[%d-%d]: %s failed!\n", p->level, ' ',
20898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_94"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020900 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020901 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020902 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020903 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020904}
20905
Guido van Rossum3941d972020-05-01 09:42:03 -070020906// _tmp_95: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020907static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070020908_tmp_95_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;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020917 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020920 return NULL;
20921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020922 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020923 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020924 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020925 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020926 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020927 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010020928 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020929 )
20930 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020931 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020932 _res = d;
20933 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020934 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020935 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020936 return NULL;
20937 }
20938 goto done;
20939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020940 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020941 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
20942 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020943 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020944 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020945 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020946 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020947 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020948}
20949
Guido van Rossum3941d972020-05-01 09:42:03 -070020950// _tmp_96: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020951static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070020952_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020953{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020954 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020955 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020956 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020957 return NULL;
20958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020959 void * _res = NULL;
20960 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020961 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020962 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020963 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020964 return NULL;
20965 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020966 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020967 expr_ty tuple_var;
20968 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020969 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020970 )
20971 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020972 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020973 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020974 goto done;
20975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020976 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020977 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
20978 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020979 }
20980 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020981 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020982 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020983 return NULL;
20984 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020985 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020986 expr_ty group_var;
20987 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020988 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020989 )
20990 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020991 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020992 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020993 goto done;
20994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020996 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
20997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020998 }
20999 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021001 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021002 return NULL;
21003 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021004 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021005 expr_ty genexp_var;
21006 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021007 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021008 )
21009 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021010 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021011 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021012 goto done;
21013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021014 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021015 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
21016 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021018 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021019 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021020 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021021 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021022}
21023
Guido van Rossum3941d972020-05-01 09:42:03 -070021024// _tmp_97: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021025static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021026_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021027{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021028 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021029 if (p->error_indicator) {
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 void * _res = NULL;
21034 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021035 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021037 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021038 return NULL;
21039 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021040 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021041 expr_ty list_var;
21042 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021043 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021044 )
21045 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021046 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021047 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021048 goto done;
21049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021050 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021051 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
21052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021053 }
21054 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021056 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021057 return NULL;
21058 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021059 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021060 expr_ty listcomp_var;
21061 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021062 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021063 )
21064 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021065 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021066 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021067 goto done;
21068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021069 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021070 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
21071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021073 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021074 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021075 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021076 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021077}
21078
Guido van Rossum3941d972020-05-01 09:42:03 -070021079// _tmp_98: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021080static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021081_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021082{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021083 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021084 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021085 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021086 return NULL;
21087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021088 void * _res = NULL;
21089 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021090 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021093 return NULL;
21094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021095 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021096 expr_ty dict_var;
21097 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021098 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021099 )
21100 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021101 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021102 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021103 goto done;
21104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021105 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021106 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021108 }
21109 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021111 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021112 return NULL;
21113 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021114 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021115 expr_ty set_var;
21116 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021117 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021118 )
21119 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021120 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021121 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021122 goto done;
21123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021124 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021125 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21126 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021127 }
21128 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021129 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021130 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021131 return NULL;
21132 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021133 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021134 expr_ty dictcomp_var;
21135 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021136 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021137 )
21138 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021139 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021140 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021141 goto done;
21142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021143 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021144 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21145 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021146 }
21147 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021148 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021149 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021150 return NULL;
21151 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021152 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021153 expr_ty setcomp_var;
21154 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021155 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021156 )
21157 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021158 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021159 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021160 goto done;
21161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021162 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021163 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021166 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021167 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021168 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021169 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021170}
21171
Guido van Rossum3941d972020-05-01 09:42:03 -070021172// _loop1_99: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021173static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021174_loop1_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021175{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021176 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021177 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021178 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021179 return NULL;
21180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021181 void *_res = NULL;
21182 int _mark = p->mark;
21183 int _start_mark = p->mark;
21184 void **_children = PyMem_Malloc(sizeof(void *));
21185 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021186 p->error_indicator = 1;
21187 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021188 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021189 return NULL;
21190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021191 ssize_t _children_capacity = 1;
21192 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021193 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021195 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021196 return NULL;
21197 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021198 D(fprintf(stderr, "%*c> _loop1_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021199 expr_ty string_var;
21200 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021201 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021202 )
21203 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021204 _res = string_var;
21205 if (_n == _children_capacity) {
21206 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021207 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21208 if (!_new_children) {
21209 p->error_indicator = 1;
21210 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021211 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021212 return NULL;
21213 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021214 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021216 _children[_n++] = _res;
21217 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021219 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021220 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
21221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021222 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021223 if (_n == 0 || p->error_indicator) {
21224 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021226 return NULL;
21227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021228 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21229 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021230 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021231 p->error_indicator = 1;
21232 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021234 return NULL;
21235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021236 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21237 PyMem_Free(_children);
21238 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021239 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021240 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021241}
21242
Guido van Rossum3941d972020-05-01 09:42:03 -070021243// _tmp_100: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021244static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021245_tmp_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021246{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021247 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021249 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021250 return NULL;
21251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021252 void * _res = NULL;
21253 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021254 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021255 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021256 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021257 return NULL;
21258 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021259 D(fprintf(stderr, "%*c> _tmp_100[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021260 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021261 expr_ty y;
21262 void *z;
21263 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021264 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021265 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021266 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021267 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021268 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021269 )
21270 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021271 D(fprintf(stderr, "%*c+ _tmp_100[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021272 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21273 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021274 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021276 return NULL;
21277 }
21278 goto done;
21279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021280 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021281 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
21282 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021284 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021285 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021286 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021287 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021288}
21289
Guido van Rossum3941d972020-05-01 09:42:03 -070021290// _tmp_101: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021291static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021292_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021293{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021294 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021295 if (p->error_indicator) {
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 void * _res = NULL;
21300 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021301 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021302 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021303 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021304 return NULL;
21305 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021306 D(fprintf(stderr, "%*c> _tmp_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021307 expr_ty yield_expr_var;
21308 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021309 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021310 )
21311 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021312 D(fprintf(stderr, "%*c+ _tmp_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021313 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021314 goto done;
21315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021316 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021317 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
21318 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021319 }
21320 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021321 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021322 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021323 return NULL;
21324 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021325 D(fprintf(stderr, "%*c> _tmp_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021326 expr_ty named_expression_var;
21327 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021328 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021329 )
21330 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021331 D(fprintf(stderr, "%*c+ _tmp_101[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021332 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021333 goto done;
21334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021335 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021336 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
21337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
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
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021345// _loop0_103: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021346static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021347_loop0_103_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;
21356 int _start_mark = p->mark;
21357 void **_children = PyMem_Malloc(sizeof(void *));
21358 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021359 p->error_indicator = 1;
21360 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021361 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021362 return NULL;
21363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021364 ssize_t _children_capacity = 1;
21365 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021366 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021367 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021368 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021369 return NULL;
21370 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021371 D(fprintf(stderr, "%*c> _loop0_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021372 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021373 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021374 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021375 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021376 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021377 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021378 )
21379 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021380 _res = elem;
21381 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021382 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021383 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021384 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021385 return NULL;
21386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021387 if (_n == _children_capacity) {
21388 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021389 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21390 if (!_new_children) {
21391 p->error_indicator = 1;
21392 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021394 return NULL;
21395 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021396 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021398 _children[_n++] = _res;
21399 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021400 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021401 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021402 D(fprintf(stderr, "%*c%s _loop0_103[%d-%d]: %s failed!\n", p->level, ' ',
21403 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021405 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21406 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021407 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021408 p->error_indicator = 1;
21409 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021411 return NULL;
21412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021413 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21414 PyMem_Free(_children);
21415 _PyPegen_insert_memo(p, _start_mark, _loop0_103_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021416 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021417 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021418}
21419
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021420// _gather_102: double_starred_kvpair _loop0_103
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021421static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021422_gather_102_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021423{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021424 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021425 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021426 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021427 return NULL;
21428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021429 asdl_seq * _res = NULL;
21430 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021431 { // double_starred_kvpair _loop0_103
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021432 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021433 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021434 return NULL;
21435 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021436 D(fprintf(stderr, "%*c> _gather_102[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_103"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021437 KeyValuePair* elem;
21438 asdl_seq * seq;
21439 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021440 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021441 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021442 (seq = _loop0_103_rule(p)) // _loop0_103
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021443 )
21444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021445 D(fprintf(stderr, "%*c+ _gather_102[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "double_starred_kvpair _loop0_103"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021446 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021447 goto done;
21448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021449 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021450 D(fprintf(stderr, "%*c%s _gather_102[%d-%d]: %s failed!\n", p->level, ' ',
21451 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_103"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021453 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021454 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021455 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021456 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021457}
21458
Guido van Rossum3941d972020-05-01 09:42:03 -070021459// _loop1_104: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021460static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021461_loop1_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021462{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021463 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021464 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021465 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021466 return NULL;
21467 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021468 void *_res = NULL;
21469 int _mark = p->mark;
21470 int _start_mark = p->mark;
21471 void **_children = PyMem_Malloc(sizeof(void *));
21472 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021473 p->error_indicator = 1;
21474 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021475 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021476 return NULL;
21477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021478 ssize_t _children_capacity = 1;
21479 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021480 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021481 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021482 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021483 return NULL;
21484 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021485 D(fprintf(stderr, "%*c> _loop1_104[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "for_if_clause"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021486 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021487 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021488 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021489 )
21490 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021491 _res = for_if_clause_var;
21492 if (_n == _children_capacity) {
21493 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021494 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21495 if (!_new_children) {
21496 p->error_indicator = 1;
21497 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021498 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021499 return NULL;
21500 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021501 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021503 _children[_n++] = _res;
21504 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021505 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021506 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021507 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
21508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021510 if (_n == 0 || p->error_indicator) {
21511 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021513 return NULL;
21514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021515 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21516 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021517 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021518 p->error_indicator = 1;
21519 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021521 return NULL;
21522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021523 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21524 PyMem_Free(_children);
21525 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021526 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021527 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021528}
21529
Guido van Rossum3941d972020-05-01 09:42:03 -070021530// _loop0_105: ('if' disjunction)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021531static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021532_loop0_105_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021533{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021534 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021535 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021536 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021537 return NULL;
21538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021539 void *_res = NULL;
21540 int _mark = p->mark;
21541 int _start_mark = p->mark;
21542 void **_children = PyMem_Malloc(sizeof(void *));
21543 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021544 p->error_indicator = 1;
21545 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021546 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021547 return NULL;
21548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021549 ssize_t _children_capacity = 1;
21550 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021551 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021553 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021554 return NULL;
21555 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021556 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030021557 void *_tmp_143_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021558 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030021559 (_tmp_143_var = _tmp_143_rule(p)) // 'if' disjunction
Pablo Galindo2b74c832020-04-27 18:02:07 +010021560 )
21561 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030021562 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021563 if (_n == _children_capacity) {
21564 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021565 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21566 if (!_new_children) {
21567 p->error_indicator = 1;
21568 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021569 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021570 return NULL;
21571 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021572 _children = _new_children;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021574 _children[_n++] = _res;
21575 _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021576 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021577 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021578 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
21579 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021581 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21582 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021583 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021584 p->error_indicator = 1;
21585 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021586 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021587 return NULL;
21588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021589 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21590 PyMem_Free(_children);
21591 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021592 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021593 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021594}
21595
Guido van Rossum3941d972020-05-01 09:42:03 -070021596// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070021597static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021598_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070021599{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021600 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070021601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021602 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070021603 return NULL;
21604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021605 void *_res = NULL;
21606 int _mark = p->mark;
21607 int _start_mark = p->mark;
21608 void **_children = PyMem_Malloc(sizeof(void *));
21609 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021610 p->error_indicator = 1;
21611 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021612 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021613 return NULL;
21614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021615 ssize_t _children_capacity = 1;
21616 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021617 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021619 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021620 return NULL;
21621 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021622 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030021623 void *_tmp_144_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021624 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030021625 (_tmp_144_var = _tmp_144_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070021626 )
21627 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030021628 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021629 if (_n == _children_capacity) {
21630 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021631 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21632 if (!_new_children) {
21633 p->error_indicator = 1;
21634 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021635 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021636 return NULL;
21637 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021638 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021640 _children[_n++] = _res;
21641 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021643 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021644 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
21645 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021647 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21648 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021649 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021650 p->error_indicator = 1;
21651 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021652 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021653 return NULL;
21654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021655 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21656 PyMem_Free(_children);
21657 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021658 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021659 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021660}
21661
Guido van Rossum3941d972020-05-01 09:42:03 -070021662// _tmp_107: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021663static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021664_tmp_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021665{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021666 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021667 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021668 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021669 return NULL;
21670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021671 void * _res = NULL;
21672 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021673 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021676 return NULL;
21677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021678 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021679 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021680 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021681 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021682 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021683 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021684 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021685 )
21686 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021687 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021688 _res = c;
21689 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021690 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021691 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021692 return NULL;
21693 }
Guido van Rossumc001c092020-04-30 12:12:19 -070021694 goto done;
21695 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021696 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021697 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
21698 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Guido van Rossumc001c092020-04-30 12:12:19 -070021699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021700 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070021701 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021702 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021703 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070021704}
21705
Guido van Rossum3941d972020-05-01 09:42:03 -070021706// _tmp_108: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021707static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021708_tmp_108_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021709{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021710 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021712 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021713 return NULL;
21714 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021715 void * _res = NULL;
21716 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021717 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021718 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021719 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021720 return NULL;
21721 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021722 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021723 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021724 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021725 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021726 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021727 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021728 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021729 )
21730 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021731 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021732 _res = c;
21733 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021734 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021735 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021736 return NULL;
21737 }
21738 goto done;
21739 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021740 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021741 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
21742 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021743 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021744 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021745 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021747 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021748}
21749
Guido van Rossum3941d972020-05-01 09:42:03 -070021750// _loop0_110: ',' kwarg_or_starred
21751static asdl_seq *
21752_loop0_110_rule(Parser *p)
21753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021754 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021756 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021757 return NULL;
21758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021759 void *_res = NULL;
21760 int _mark = p->mark;
21761 int _start_mark = p->mark;
21762 void **_children = PyMem_Malloc(sizeof(void *));
21763 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021764 p->error_indicator = 1;
21765 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021766 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021767 return NULL;
21768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021769 ssize_t _children_capacity = 1;
21770 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070021771 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021774 return NULL;
21775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021776 D(fprintf(stderr, "%*c> _loop0_110[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021777 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070021778 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070021779 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021780 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070021781 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021782 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021783 )
21784 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021785 _res = elem;
21786 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070021787 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021788 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021789 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021790 return NULL;
21791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021792 if (_n == _children_capacity) {
21793 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021794 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21795 if (!_new_children) {
21796 p->error_indicator = 1;
21797 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021798 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021799 return NULL;
21800 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021801 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070021802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021803 _children[_n++] = _res;
21804 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021805 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021806 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021807 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
21808 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021810 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21811 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021812 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021813 p->error_indicator = 1;
21814 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021815 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021816 return NULL;
21817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021818 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21819 PyMem_Free(_children);
21820 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021821 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021822 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070021823}
21824
21825// _gather_109: kwarg_or_starred _loop0_110
21826static asdl_seq *
21827_gather_109_rule(Parser *p)
21828{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021829 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021830 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021831 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021832 return NULL;
21833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021834 asdl_seq * _res = NULL;
21835 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021836 { // kwarg_or_starred _loop0_110
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021838 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021839 return NULL;
21840 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021841 D(fprintf(stderr, "%*c> _gather_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021842 KeywordOrStarred* elem;
21843 asdl_seq * seq;
21844 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021845 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021846 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021847 (seq = _loop0_110_rule(p)) // _loop0_110
Guido van Rossum3941d972020-05-01 09:42:03 -070021848 )
21849 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021850 D(fprintf(stderr, "%*c+ _gather_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_110"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021851 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070021852 goto done;
21853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021854 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021855 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
21856 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021857 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021858 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070021859 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021860 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021861 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070021862}
21863
21864// _loop0_112: ',' kwarg_or_double_starred
21865static asdl_seq *
21866_loop0_112_rule(Parser *p)
21867{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021868 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021869 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021870 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021871 return NULL;
21872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021873 void *_res = NULL;
21874 int _mark = p->mark;
21875 int _start_mark = p->mark;
21876 void **_children = PyMem_Malloc(sizeof(void *));
21877 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021878 p->error_indicator = 1;
21879 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021880 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021881 return NULL;
21882 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021883 ssize_t _children_capacity = 1;
21884 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070021885 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021887 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021888 return NULL;
21889 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021890 D(fprintf(stderr, "%*c> _loop0_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021891 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070021892 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070021893 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021894 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070021895 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021896 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021897 )
21898 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021899 _res = elem;
21900 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070021901 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021902 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021903 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021904 return NULL;
21905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021906 if (_n == _children_capacity) {
21907 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021908 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21909 if (!_new_children) {
21910 p->error_indicator = 1;
21911 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021912 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021913 return NULL;
21914 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021915 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070021916 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021917 _children[_n++] = _res;
21918 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021920 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021921 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
21922 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021923 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021924 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21925 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021926 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021927 p->error_indicator = 1;
21928 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021929 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021930 return NULL;
21931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021932 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21933 PyMem_Free(_children);
21934 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021935 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021936 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070021937}
21938
21939// _gather_111: kwarg_or_double_starred _loop0_112
21940static asdl_seq *
21941_gather_111_rule(Parser *p)
21942{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021943 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021945 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021946 return NULL;
21947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021948 asdl_seq * _res = NULL;
21949 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021950 { // kwarg_or_double_starred _loop0_112
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021951 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021952 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021953 return NULL;
21954 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021955 D(fprintf(stderr, "%*c> _gather_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021956 KeywordOrStarred* elem;
21957 asdl_seq * seq;
21958 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021959 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021961 (seq = _loop0_112_rule(p)) // _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070021962 )
21963 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021964 D(fprintf(stderr, "%*c+ _gather_111[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021965 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070021966 goto done;
21967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021969 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
21970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021972 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070021973 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021974 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021975 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070021976}
21977
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021978// _loop0_114: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010021979static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021980_loop0_114_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021981{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021982 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021984 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021985 return NULL;
21986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021987 void *_res = NULL;
21988 int _mark = p->mark;
21989 int _start_mark = p->mark;
21990 void **_children = PyMem_Malloc(sizeof(void *));
21991 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021992 p->error_indicator = 1;
21993 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021994 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021995 return NULL;
21996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021997 ssize_t _children_capacity = 1;
21998 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070021999 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022001 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022002 return NULL;
22003 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022004 D(fprintf(stderr, "%*c> _loop0_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022005 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022006 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022007 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022008 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022009 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022010 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022011 )
22012 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022013 _res = elem;
22014 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022015 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022016 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022017 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022018 return NULL;
22019 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022020 if (_n == _children_capacity) {
22021 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022022 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22023 if (!_new_children) {
22024 p->error_indicator = 1;
22025 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022026 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022027 return NULL;
22028 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022029 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022030 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022031 _children[_n++] = _res;
22032 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022034 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022035 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
22036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022038 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22039 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022040 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022041 p->error_indicator = 1;
22042 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022043 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022044 return NULL;
22045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022046 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22047 PyMem_Free(_children);
22048 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022049 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022050 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022051}
22052
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022053// _gather_113: kwarg_or_starred _loop0_114
Guido van Rossumc001c092020-04-30 12:12:19 -070022054static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022055_gather_113_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022056{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022057 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022058 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022059 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022060 return NULL;
22061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022062 asdl_seq * _res = NULL;
22063 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022064 { // kwarg_or_starred _loop0_114
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022065 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022066 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022067 return NULL;
22068 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022069 D(fprintf(stderr, "%*c> _gather_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022070 KeywordOrStarred* elem;
22071 asdl_seq * seq;
22072 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022073 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022074 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022075 (seq = _loop0_114_rule(p)) // _loop0_114
Guido van Rossumc001c092020-04-30 12:12:19 -070022076 )
22077 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022078 D(fprintf(stderr, "%*c+ _gather_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_starred _loop0_114"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022079 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022080 goto done;
22081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022082 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022083 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
22084 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022086 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022087 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022088 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022089 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022090}
22091
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022092// _loop0_116: ',' kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022093static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022094_loop0_116_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022095{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022096 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022097 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022098 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022099 return NULL;
22100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022101 void *_res = NULL;
22102 int _mark = p->mark;
22103 int _start_mark = p->mark;
22104 void **_children = PyMem_Malloc(sizeof(void *));
22105 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022106 p->error_indicator = 1;
22107 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022108 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022109 return NULL;
22110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022111 ssize_t _children_capacity = 1;
22112 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022113 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022116 return NULL;
22117 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022118 D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' kwarg_or_double_starred"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022119 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022120 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022121 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022122 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022123 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022124 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022125 )
22126 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022127 _res = elem;
22128 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022129 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022130 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022131 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022132 return NULL;
22133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022134 if (_n == _children_capacity) {
22135 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022136 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22137 if (!_new_children) {
22138 p->error_indicator = 1;
22139 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022140 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022141 return NULL;
22142 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022143 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022144 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022145 _children[_n++] = _res;
22146 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022148 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022149 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
22150 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022152 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22153 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022154 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022155 p->error_indicator = 1;
22156 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022157 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022158 return NULL;
22159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022160 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22161 PyMem_Free(_children);
22162 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022163 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022164 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022165}
22166
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022167// _gather_115: kwarg_or_double_starred _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022168static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022169_gather_115_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022170{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022171 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022173 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022174 return NULL;
22175 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022176 asdl_seq * _res = NULL;
22177 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022178 { // kwarg_or_double_starred _loop0_116
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022179 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022180 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022181 return NULL;
22182 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022183 D(fprintf(stderr, "%*c> _gather_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022184 KeywordOrStarred* elem;
22185 asdl_seq * seq;
22186 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022187 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022188 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022189 (seq = _loop0_116_rule(p)) // _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022190 )
22191 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022192 D(fprintf(stderr, "%*c+ _gather_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022193 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022194 goto done;
22195 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022196 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022197 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
22198 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022200 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022201 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022202 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022203 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022204}
22205
Guido van Rossum3941d972020-05-01 09:42:03 -070022206// _loop0_117: (',' star_target)
Guido van Rossumc001c092020-04-30 12:12:19 -070022207static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022208_loop0_117_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022209{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022210 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022212 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022213 return NULL;
22214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022215 void *_res = NULL;
22216 int _mark = p->mark;
22217 int _start_mark = p->mark;
22218 void **_children = PyMem_Malloc(sizeof(void *));
22219 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022220 p->error_indicator = 1;
22221 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022222 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022223 return NULL;
22224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022225 ssize_t _children_capacity = 1;
22226 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022227 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022228 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022229 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022230 return NULL;
22231 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022232 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022233 void *_tmp_145_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022234 while (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022235 (_tmp_145_var = _tmp_145_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022236 )
22237 {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022238 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022239 if (_n == _children_capacity) {
22240 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022241 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22242 if (!_new_children) {
22243 p->error_indicator = 1;
22244 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022245 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022246 return NULL;
22247 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022248 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022249 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022250 _children[_n++] = _res;
22251 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022252 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022253 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022254 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
22255 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022257 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22258 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022259 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022260 p->error_indicator = 1;
22261 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022262 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022263 return NULL;
22264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022265 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22266 PyMem_Free(_children);
22267 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022268 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022269 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022270}
22271
Guido van Rossum3941d972020-05-01 09:42:03 -070022272// _loop0_119: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022273static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022274_loop0_119_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022275{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022276 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022278 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022279 return NULL;
22280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022281 void *_res = NULL;
22282 int _mark = p->mark;
22283 int _start_mark = p->mark;
22284 void **_children = PyMem_Malloc(sizeof(void *));
22285 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022286 p->error_indicator = 1;
22287 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022288 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022289 return NULL;
22290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022291 ssize_t _children_capacity = 1;
22292 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022293 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022294 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022295 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022296 return NULL;
22297 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022298 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022299 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022300 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022301 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022302 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022303 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022304 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022305 )
22306 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022307 _res = elem;
22308 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022309 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022310 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022311 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022312 return NULL;
22313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022314 if (_n == _children_capacity) {
22315 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022316 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22317 if (!_new_children) {
22318 p->error_indicator = 1;
22319 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022321 return NULL;
22322 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022323 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022325 _children[_n++] = _res;
22326 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022328 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022329 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
22330 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022331 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022332 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22333 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022334 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022335 p->error_indicator = 1;
22336 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022337 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022338 return NULL;
22339 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022340 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22341 PyMem_Free(_children);
22342 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022343 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022344 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022345}
22346
Guido van Rossum3941d972020-05-01 09:42:03 -070022347// _gather_118: star_target _loop0_119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022348static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022349_gather_118_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022350{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022351 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022354 return NULL;
22355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022356 asdl_seq * _res = NULL;
22357 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022358 { // star_target _loop0_119
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022359 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022360 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022361 return NULL;
22362 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022363 D(fprintf(stderr, "%*c> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022364 expr_ty elem;
22365 asdl_seq * seq;
22366 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022367 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022368 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022369 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022370 )
22371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022372 D(fprintf(stderr, "%*c+ _gather_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022373 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022374 goto done;
22375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022376 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022377 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
22378 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022380 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022381 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022382 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022383 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022384}
22385
Guido van Rossum3941d972020-05-01 09:42:03 -070022386// _tmp_120: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022387static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022388_tmp_120_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022389{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022390 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022392 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022393 return NULL;
22394 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022395 void * _res = NULL;
22396 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022397 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022399 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022400 return NULL;
22401 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022402 D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022403 expr_ty star_target_var;
22404 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022405 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022406 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022407 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022408 )
22409 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022410 D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022411 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022412 goto done;
22413 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022414 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022415 D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ',
22416 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022418 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022419 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022420 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022421 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022422}
22423
Guido van Rossum3941d972020-05-01 09:42:03 -070022424// _loop0_122: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022425static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022426_loop0_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022427{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022428 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022429 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022431 return NULL;
22432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022433 void *_res = NULL;
22434 int _mark = p->mark;
22435 int _start_mark = p->mark;
22436 void **_children = PyMem_Malloc(sizeof(void *));
22437 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022438 p->error_indicator = 1;
22439 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022440 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022441 return NULL;
22442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022443 ssize_t _children_capacity = 1;
22444 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022445 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022446 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022447 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022448 return NULL;
22449 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022450 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022451 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022452 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022453 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022454 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022455 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022456 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022457 )
22458 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022459 _res = elem;
22460 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022461 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022462 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022463 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022464 return NULL;
22465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022466 if (_n == _children_capacity) {
22467 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022468 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22469 if (!_new_children) {
22470 p->error_indicator = 1;
22471 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022473 return NULL;
22474 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022475 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022477 _children[_n++] = _res;
22478 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022479 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022480 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022481 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
22482 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022484 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22485 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022486 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022487 p->error_indicator = 1;
22488 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022489 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022490 return NULL;
22491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022492 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22493 PyMem_Free(_children);
22494 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022495 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022496 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022497}
22498
Guido van Rossum3941d972020-05-01 09:42:03 -070022499// _gather_121: del_target _loop0_122
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022500static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022501_gather_121_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022506 return NULL;
22507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022508 asdl_seq * _res = NULL;
22509 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022510 { // del_target _loop0_122
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022512 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022513 return NULL;
22514 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022515 D(fprintf(stderr, "%*c> _gather_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_target _loop0_122"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022516 expr_ty elem;
22517 asdl_seq * seq;
22518 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022519 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022520 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022521 (seq = _loop0_122_rule(p)) // _loop0_122
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022522 )
22523 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022524 D(fprintf(stderr, "%*c+ _gather_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_target _loop0_122"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022525 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022526 goto done;
22527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022528 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022529 D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ',
22530 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_122"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022531 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022532 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022533 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022534 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022535 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022536}
22537
Guido van Rossum3941d972020-05-01 09:42:03 -070022538// _loop0_124: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022539static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022540_loop0_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022541{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022542 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022543 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022544 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022545 return NULL;
22546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022547 void *_res = NULL;
22548 int _mark = p->mark;
22549 int _start_mark = p->mark;
22550 void **_children = PyMem_Malloc(sizeof(void *));
22551 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022552 p->error_indicator = 1;
22553 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022555 return NULL;
22556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022557 ssize_t _children_capacity = 1;
22558 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022559 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022562 return NULL;
22563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022564 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022565 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022566 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022567 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022568 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022569 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022570 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022571 )
22572 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022573 _res = elem;
22574 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022575 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022576 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022577 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022578 return NULL;
22579 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022580 if (_n == _children_capacity) {
22581 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022582 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22583 if (!_new_children) {
22584 p->error_indicator = 1;
22585 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022586 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022587 return NULL;
22588 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022589 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022591 _children[_n++] = _res;
22592 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022594 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022595 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
22596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022598 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22599 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022600 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022601 p->error_indicator = 1;
22602 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022604 return NULL;
22605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022606 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22607 PyMem_Free(_children);
22608 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022609 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022610 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022611}
22612
Guido van Rossum3941d972020-05-01 09:42:03 -070022613// _gather_123: target _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022614static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022615_gather_123_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022616{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022617 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022619 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022620 return NULL;
22621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022622 asdl_seq * _res = NULL;
22623 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022624 { // target _loop0_124
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022627 return NULL;
22628 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022629 D(fprintf(stderr, "%*c> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022630 expr_ty elem;
22631 asdl_seq * seq;
22632 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022633 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022634 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022635 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022636 )
22637 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022638 D(fprintf(stderr, "%*c+ _gather_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022639 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022640 goto done;
22641 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022642 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022643 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
22644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022646 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022647 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022648 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022649 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022650}
22651
Guido van Rossum3941d972020-05-01 09:42:03 -070022652// _tmp_125: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022653static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022654_tmp_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022655{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022656 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022658 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022659 return NULL;
22660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022661 void * _res = NULL;
22662 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022663 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022664 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022665 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022666 return NULL;
22667 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022668 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022669 expr_ty args_var;
22670 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022671 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022672 )
22673 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022674 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022675 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022676 goto done;
22677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022678 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022679 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
22680 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022681 }
22682 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022683 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022684 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022685 return NULL;
22686 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022687 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022688 expr_ty expression_var;
22689 asdl_seq* for_if_clauses_var;
22690 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022691 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022692 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022693 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022694 )
22695 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022696 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022697 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022698 goto done;
22699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022700 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022701 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
22702 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022704 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022705 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022706 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022707 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022708}
22709
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022710// _loop0_126: star_named_expressions
22711static asdl_seq *
22712_loop0_126_rule(Parser *p)
22713{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022714 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022715 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022716 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022717 return NULL;
22718 }
22719 void *_res = NULL;
22720 int _mark = p->mark;
22721 int _start_mark = p->mark;
22722 void **_children = PyMem_Malloc(sizeof(void *));
22723 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022724 p->error_indicator = 1;
22725 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022726 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022727 return NULL;
22728 }
22729 ssize_t _children_capacity = 1;
22730 ssize_t _n = 0;
22731 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022733 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022734 return NULL;
22735 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022736 D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022737 asdl_seq* star_named_expressions_var;
22738 while (
22739 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
22740 )
22741 {
22742 _res = star_named_expressions_var;
22743 if (_n == _children_capacity) {
22744 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022745 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22746 if (!_new_children) {
22747 p->error_indicator = 1;
22748 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022749 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022750 return NULL;
22751 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022752 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022753 }
22754 _children[_n++] = _res;
22755 _mark = p->mark;
22756 }
22757 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022758 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
22759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022760 }
22761 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22762 if (!_seq) {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022763 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022764 p->error_indicator = 1;
22765 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022766 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022767 return NULL;
22768 }
22769 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22770 PyMem_Free(_children);
22771 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022772 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022773 return _seq;
22774}
22775
22776// _tmp_127: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022777static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022778_tmp_127_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022779{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022780 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022781 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022782 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022783 return NULL;
22784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022785 void * _res = NULL;
22786 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022787 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022789 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022790 return NULL;
22791 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022792 D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022793 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022794 expr_ty annotated_rhs_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022795 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022796 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022797 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022798 (annotated_rhs_var = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022799 )
22800 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022801 D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022802 _res = _PyPegen_dummy_name(p, _literal, annotated_rhs_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022803 goto done;
22804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022805 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022806 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
22807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022809 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022810 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022811 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022812 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022813}
22814
Pablo Galindo16ab0702020-05-15 02:04:52 +010022815// _tmp_128: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022816static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022817_tmp_128_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022818{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022819 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022822 return NULL;
22823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022824 void * _res = NULL;
22825 int _mark = p->mark;
Pablo Galindo16ab0702020-05-15 02:04:52 +010022826 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022827 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022828 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022829 return NULL;
22830 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022831 D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010022832 expr_ty yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022833 if (
Pablo Galindo16ab0702020-05-15 02:04:52 +010022834 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022835 )
22836 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022837 D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010022838 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022839 goto done;
22840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022841 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022842 D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ',
22843 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022844 }
Pablo Galindo16ab0702020-05-15 02:04:52 +010022845 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022847 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022848 return NULL;
22849 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022850 D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010022851 expr_ty star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022852 if (
Pablo Galindo16ab0702020-05-15 02:04:52 +010022853 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022854 )
22855 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022856 D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010022857 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022858 goto done;
22859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022860 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022861 D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ',
22862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022864 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022865 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022866 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022867 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022868}
22869
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022870// _tmp_129: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022871static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022872_tmp_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022873{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022874 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022877 return NULL;
22878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022879 void * _res = NULL;
22880 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022881 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022883 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022884 return NULL;
22885 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022886 D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022887 expr_ty yield_expr_var;
22888 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022889 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022890 )
22891 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022892 D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022893 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022894 goto done;
22895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022896 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022897 D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
22898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022899 }
22900 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022902 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022903 return NULL;
22904 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022905 D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022906 expr_ty star_expressions_var;
22907 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022908 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022909 )
22910 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022911 D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022912 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022913 goto done;
22914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022916 D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ',
22917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022919 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022920 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022921 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022922 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022923}
22924
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022925// _tmp_130: '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022926static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022927_tmp_130_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022928{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022929 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022932 return NULL;
22933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022934 void * _res = NULL;
22935 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022936 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022939 return NULL;
22940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022941 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022942 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022943 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022944 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022945 )
22946 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022947 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022948 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022949 goto done;
22950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022951 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022952 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
22953 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022954 }
22955 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022956 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022957 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022958 return NULL;
22959 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022960 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022961 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022962 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022963 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022964 )
22965 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022966 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022967 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022968 goto done;
22969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022970 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022971 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
22972 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022973 }
22974 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022975 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022976 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022977 return NULL;
22978 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022979 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022980 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022981 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022982 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022983 )
22984 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022985 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022986 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022987 goto done;
22988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022989 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022990 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
22991 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022993 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022994 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022995 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022996 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022997}
22998
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022999// _loop0_131: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023000static asdl_seq *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023001_loop0_131_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023002{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023003 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023004 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023005 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023006 return NULL;
23007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023008 void *_res = NULL;
23009 int _mark = p->mark;
23010 int _start_mark = p->mark;
23011 void **_children = PyMem_Malloc(sizeof(void *));
23012 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023013 p->error_indicator = 1;
23014 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023015 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023016 return NULL;
23017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023018 ssize_t _children_capacity = 1;
23019 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023020 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023021 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023022 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023023 return NULL;
23024 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023025 D(fprintf(stderr, "%*c> _loop0_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023026 arg_ty param_no_default_var;
23027 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023028 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023029 )
23030 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023031 _res = param_no_default_var;
23032 if (_n == _children_capacity) {
23033 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023034 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23035 if (!_new_children) {
23036 p->error_indicator = 1;
23037 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023038 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023039 return NULL;
23040 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023041 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023043 _children[_n++] = _res;
23044 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023046 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023047 D(fprintf(stderr, "%*c%s _loop0_131[%d-%d]: %s failed!\n", p->level, ' ',
23048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023050 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23051 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023052 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023053 p->error_indicator = 1;
23054 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023055 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023056 return NULL;
23057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023058 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23059 PyMem_Free(_children);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023060 _PyPegen_insert_memo(p, _start_mark, _loop0_131_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023061 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023062 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023063}
23064
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023065// _tmp_132: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023066static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023067_tmp_132_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023068{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023069 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023071 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023072 return NULL;
23073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023074 void * _res = NULL;
23075 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023076 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023077 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023078 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023079 return NULL;
23080 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023081 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023082 SlashWithDefault* slash_with_default_var;
23083 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023084 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023085 )
23086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023087 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023088 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023089 goto done;
23090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023091 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023092 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023094 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023095 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023098 return NULL;
23099 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023100 D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023101 asdl_seq * _loop1_146_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023102 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023103 (_loop1_146_var = _loop1_146_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023104 )
23105 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023106 D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023107 _res = _loop1_146_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023108 goto done;
23109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023110 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023111 D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ',
23112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023114 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023115 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023116 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023117 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023118}
23119
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023120// _tmp_133: ')' | ',' (')' | '**')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023121static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023122_tmp_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023123{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023124 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023125 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023126 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023127 return NULL;
23128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023129 void * _res = NULL;
23130 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023131 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023132 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023133 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023134 return NULL;
23135 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023136 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023137 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023138 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023139 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023140 )
23141 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023142 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023143 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023144 goto done;
23145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023146 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023147 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
23148 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023149 }
23150 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023151 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023152 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023153 return NULL;
23154 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023155 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023156 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023157 void *_tmp_147_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023158 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023159 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023160 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023161 (_tmp_147_var = _tmp_147_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023162 )
23163 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023164 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023165 _res = _PyPegen_dummy_name(p, _literal, _tmp_147_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023166 goto done;
23167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023168 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023169 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
23170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023172 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023173 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023174 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023175 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023176}
23177
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023178// _tmp_134: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023179static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023180_tmp_134_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023181{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023182 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023184 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023185 return NULL;
23186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023187 void * _res = NULL;
23188 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023189 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023190 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023191 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023192 return NULL;
23193 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023194 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023195 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023196 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023197 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023198 )
23199 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023200 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023201 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023202 goto done;
23203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023204 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023205 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
23206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023207 }
23208 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023210 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023211 return NULL;
23212 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023213 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023214 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023215 void *_tmp_148_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023216 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023217 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023218 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023219 (_tmp_148_var = _tmp_148_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023220 )
23221 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023222 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023223 _res = _PyPegen_dummy_name(p, _literal, _tmp_148_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023224 goto done;
23225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023226 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023227 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
23228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023230 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023231 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023232 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023233 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023234}
23235
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023236// _tmp_135: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023237static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023238_tmp_135_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023240 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023242 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023243 return NULL;
23244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023245 void * _res = NULL;
23246 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023247 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023248 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023249 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023250 return NULL;
23251 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023252 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023253 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023254 expr_ty z;
23255 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023256 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023257 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023258 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023259 )
23260 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023261 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023262 _res = z;
23263 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023264 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023265 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023266 return NULL;
23267 }
23268 goto done;
23269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023270 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023271 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
23272 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023273 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023274 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023275 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023276 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023277 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023278}
23279
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023280// _tmp_136: '.' | '...'
23281static void *
23282_tmp_136_rule(Parser *p)
23283{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023284 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023286 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023287 return NULL;
23288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023289 void * _res = NULL;
23290 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023291 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023292 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023293 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023294 return NULL;
23295 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023296 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023297 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023298 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023299 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023300 )
23301 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023302 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023303 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023304 goto done;
23305 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023306 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023307 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
23308 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023309 }
23310 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023312 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023313 return NULL;
23314 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023315 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023316 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023317 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023318 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023319 )
23320 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023321 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023322 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023323 goto done;
23324 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023325 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023326 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
23327 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023329 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023330 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023331 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023332 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023333}
23334
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023335// _tmp_137: '.' | '...'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023336static void *
23337_tmp_137_rule(Parser *p)
23338{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023339 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023340 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023341 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023342 return NULL;
23343 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023344 void * _res = NULL;
23345 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023346 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023347 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023348 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023349 return NULL;
23350 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023351 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023352 Token * _literal;
23353 if (
23354 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23355 )
23356 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023357 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023358 _res = _literal;
23359 goto done;
23360 }
23361 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023362 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
23363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023364 }
23365 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023368 return NULL;
23369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023370 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023371 Token * _literal;
23372 if (
23373 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23374 )
23375 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023376 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023377 _res = _literal;
23378 goto done;
23379 }
23380 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023381 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
23382 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023383 }
23384 _res = NULL;
23385 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023386 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023387 return _res;
23388}
23389
23390// _tmp_138: '@' named_expression NEWLINE
23391static void *
23392_tmp_138_rule(Parser *p)
23393{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023394 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023395 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023396 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023397 return NULL;
23398 }
23399 void * _res = NULL;
23400 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023401 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023402 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023403 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023404 return NULL;
23405 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023406 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023407 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023408 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010023409 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023410 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023411 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023412 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023413 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023414 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023415 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023416 )
23417 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023418 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023419 _res = f;
23420 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023421 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023422 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023423 return NULL;
23424 }
23425 goto done;
23426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023427 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023428 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23429 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023430 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023431 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023432 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023433 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023434 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023435}
23436
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023437// _tmp_139: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023438static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023439_tmp_139_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023440{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023441 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023442 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023444 return NULL;
23445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023446 void * _res = NULL;
23447 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023448 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023449 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023450 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023451 return NULL;
23452 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023453 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023454 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023455 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023456 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023457 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023458 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023459 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023460 )
23461 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023462 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023463 _res = c;
23464 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023465 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023466 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023467 return NULL;
23468 }
23469 goto done;
23470 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023471 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023472 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
23473 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023475 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023476 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023477 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023478 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023479}
23480
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023481// _tmp_140: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023482static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023483_tmp_140_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023484{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023485 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023486 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023487 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023488 return NULL;
23489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023490 void * _res = NULL;
23491 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023492 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023493 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023494 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023495 return NULL;
23496 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023497 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023498 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023499 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023500 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023501 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023502 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023503 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023504 )
23505 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023506 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023507 _res = c;
23508 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023509 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023510 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023511 return NULL;
23512 }
23513 goto done;
23514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023515 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023516 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
23517 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023519 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023520 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023521 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023522 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023523}
23524
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023525// _tmp_141: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023526static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023527_tmp_141_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023528{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023529 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023530 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023531 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023532 return NULL;
23533 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023534 void * _res = NULL;
23535 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023536 { // 'or' conjunction
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 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023541 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023542 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023543 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023544 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023545 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023546 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023547 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023548 )
23549 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023550 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023551 _res = c;
23552 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023553 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023554 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023555 return NULL;
23556 }
23557 goto done;
23558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023559 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023560 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
23561 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023562 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023563 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023564 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023565 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023566 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023567}
23568
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023569// _tmp_142: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023570static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023571_tmp_142_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023572{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023573 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023574 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023575 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023576 return NULL;
23577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023578 void * _res = NULL;
23579 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023580 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023582 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023583 return NULL;
23584 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023585 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023586 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023587 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023588 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023589 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023591 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023592 )
23593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023594 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023595 _res = c;
23596 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023597 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023598 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023599 return NULL;
23600 }
23601 goto done;
23602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023603 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023604 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
23605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023607 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023608 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023609 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023610 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023611}
23612
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023613// _tmp_143: 'if' disjunction
23614static void *
23615_tmp_143_rule(Parser *p)
23616{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023617 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023619 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023620 return NULL;
23621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023622 void * _res = NULL;
23623 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023624 { // 'if' disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023625 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023626 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023627 return NULL;
23628 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023629 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023630 Token * _keyword;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023631 expr_ty z;
23632 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023633 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023634 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023635 (z = disjunction_rule(p)) // disjunction
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023636 )
23637 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023638 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023639 _res = z;
23640 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023641 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023642 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023643 return NULL;
23644 }
23645 goto done;
23646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023647 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023648 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
23649 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023651 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023652 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023653 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023654 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023655}
23656
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023657// _tmp_144: 'if' disjunction
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023658static void *
23659_tmp_144_rule(Parser *p)
23660{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023661 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023662 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023663 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023664 return NULL;
23665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023666 void * _res = NULL;
23667 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023668 { // 'if' disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023669 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023670 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023671 return NULL;
23672 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023673 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023674 Token * _keyword;
23675 expr_ty z;
23676 if (
23677 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
23678 &&
23679 (z = disjunction_rule(p)) // disjunction
23680 )
23681 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023682 D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023683 _res = z;
23684 if (_res == NULL && PyErr_Occurred()) {
23685 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023686 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023687 return NULL;
23688 }
23689 goto done;
23690 }
23691 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023692 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
23693 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023694 }
23695 _res = NULL;
23696 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023697 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023698 return _res;
23699}
23700
23701// _tmp_145: ',' star_target
23702static void *
23703_tmp_145_rule(Parser *p)
23704{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023705 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023707 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023708 return NULL;
23709 }
23710 void * _res = NULL;
23711 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023712 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023715 return NULL;
23716 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023717 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023718 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023719 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023720 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023721 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023723 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023724 )
23725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023726 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023727 _res = c;
23728 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023730 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023731 return NULL;
23732 }
23733 goto done;
23734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023735 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023736 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
23737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023739 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023740 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023741 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023742 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023743}
23744
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023745// _loop1_146: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023746static asdl_seq *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023747_loop1_146_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070023748{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023749 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070023750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023751 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023752 return NULL;
23753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023754 void *_res = NULL;
23755 int _mark = p->mark;
23756 int _start_mark = p->mark;
23757 void **_children = PyMem_Malloc(sizeof(void *));
23758 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023759 p->error_indicator = 1;
23760 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023761 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023762 return NULL;
23763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023764 ssize_t _children_capacity = 1;
23765 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023766 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023767 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023768 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023769 return NULL;
23770 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023771 D(fprintf(stderr, "%*c> _loop1_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023772 NameDefaultPair* param_with_default_var;
23773 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023774 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023775 )
23776 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023777 _res = param_with_default_var;
23778 if (_n == _children_capacity) {
23779 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023780 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23781 if (!_new_children) {
23782 p->error_indicator = 1;
23783 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023784 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023785 return NULL;
23786 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023787 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023789 _children[_n++] = _res;
23790 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070023791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023792 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023793 D(fprintf(stderr, "%*c%s _loop1_146[%d-%d]: %s failed!\n", p->level, ' ',
23794 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023796 if (_n == 0 || p->error_indicator) {
23797 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023798 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023799 return NULL;
23800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023801 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23802 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023803 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023804 p->error_indicator = 1;
23805 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023806 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023807 return NULL;
23808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023809 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23810 PyMem_Free(_children);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023811 _PyPegen_insert_memo(p, _start_mark, _loop1_146_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023812 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023813 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070023814}
23815
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023816// _tmp_147: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023817static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023818_tmp_147_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023819{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023820 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023822 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023823 return NULL;
23824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023825 void * _res = NULL;
23826 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023827 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023828 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023829 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023830 return NULL;
23831 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023832 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023833 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023834 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023835 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023836 )
23837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023838 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023839 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023840 goto done;
23841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023843 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
23844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023845 }
23846 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023847 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023848 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023849 return NULL;
23850 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023851 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023852 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023853 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023854 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023855 )
23856 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023857 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023858 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023859 goto done;
23860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023861 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023862 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
23863 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023865 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023866 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023867 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023868 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023869}
23870
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023871// _tmp_148: ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023872static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023873_tmp_148_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023874{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023875 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023876 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023877 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023878 return NULL;
23879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023880 void * _res = NULL;
23881 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023882 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023883 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023884 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023885 return NULL;
23886 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023887 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023888 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023889 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023890 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023891 )
23892 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023893 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023894 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023895 goto done;
23896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023897 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023898 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
23899 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023900 }
23901 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023902 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023903 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023904 return NULL;
23905 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023906 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023907 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023908 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023909 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023910 )
23911 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023912 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023913 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023914 goto done;
23915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023916 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023917 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
23918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023920 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023921 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023922 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023923 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023924}
23925
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023926void *
23927_PyPegen_parse(Parser *p)
23928{
23929 // Initialize keywords
23930 p->keywords = reserved_keywords;
23931 p->n_keyword_lists = n_keyword_lists;
23932
23933 // Run parser
23934 void *result = NULL;
23935 if (p->start_rule == Py_file_input) {
23936 result = file_rule(p);
23937 } else if (p->start_rule == Py_single_input) {
23938 result = interactive_rule(p);
23939 } else if (p->start_rule == Py_eval_input) {
23940 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070023941 } else if (p->start_rule == Py_func_type_input) {
23942 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023943 } else if (p->start_rule == Py_fstring_input) {
23944 result = fstring_rule(p);
23945 }
23946
23947 return result;
23948}
23949
23950// The end