blob: e5738e3e04afeaf9c2218a184d0cd4e08f0a6616 [file] [log] [blame]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001// @generated by pegen.py from ./Grammar/python.gram
2#include "pegen.h"
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003
Miss Islington (bot)31084be2020-05-25 12:37:56 -07004#if defined(Py_DEBUG) && defined(Py_BUILD_CORE)
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005extern int Py_DebugFlag;
6#define D(x) if (Py_DebugFlag) x;
7#else
8#define D(x)
9#endif
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010static const int n_keyword_lists = 15;
11static KeywordToken *reserved_keywords[] = {
12 NULL,
13 NULL,
14 (KeywordToken[]) {
15 {"if", 510},
16 {"in", 518},
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
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700361#define _loop0_128_type 1283
362#define _loop0_129_type 1284
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700363#define _tmp_130_type 1285
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700364#define _tmp_131_type 1286
365#define _loop0_132_type 1287
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700366#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
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700379#define _tmp_146_type 1301
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700380#define _tmp_147_type 1302
381#define _tmp_148_type 1303
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700382#define _loop1_149_type 1304
383#define _tmp_150_type 1305
384#define _tmp_151_type 1306
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100385
386static mod_ty file_rule(Parser *p);
387static mod_ty interactive_rule(Parser *p);
388static mod_ty eval_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700389static mod_ty func_type_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100390static expr_ty fstring_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700391static asdl_seq* type_expressions_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100392static asdl_seq* statements_rule(Parser *p);
393static asdl_seq* statement_rule(Parser *p);
394static asdl_seq* statement_newline_rule(Parser *p);
395static asdl_seq* simple_stmt_rule(Parser *p);
396static stmt_ty small_stmt_rule(Parser *p);
397static stmt_ty compound_stmt_rule(Parser *p);
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +0300398static stmt_ty assignment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100399static AugOperator* augassign_rule(Parser *p);
400static stmt_ty global_stmt_rule(Parser *p);
401static stmt_ty nonlocal_stmt_rule(Parser *p);
402static stmt_ty yield_stmt_rule(Parser *p);
403static stmt_ty assert_stmt_rule(Parser *p);
404static stmt_ty del_stmt_rule(Parser *p);
405static stmt_ty import_stmt_rule(Parser *p);
406static stmt_ty import_name_rule(Parser *p);
407static stmt_ty import_from_rule(Parser *p);
408static asdl_seq* import_from_targets_rule(Parser *p);
409static asdl_seq* import_from_as_names_rule(Parser *p);
410static alias_ty import_from_as_name_rule(Parser *p);
411static asdl_seq* dotted_as_names_rule(Parser *p);
412static alias_ty dotted_as_name_rule(Parser *p);
413static expr_ty dotted_name_rule(Parser *p);
414static stmt_ty if_stmt_rule(Parser *p);
415static stmt_ty elif_stmt_rule(Parser *p);
416static asdl_seq* else_block_rule(Parser *p);
417static stmt_ty while_stmt_rule(Parser *p);
418static stmt_ty for_stmt_rule(Parser *p);
419static stmt_ty with_stmt_rule(Parser *p);
420static withitem_ty with_item_rule(Parser *p);
421static stmt_ty try_stmt_rule(Parser *p);
422static excepthandler_ty except_block_rule(Parser *p);
423static asdl_seq* finally_block_rule(Parser *p);
424static stmt_ty return_stmt_rule(Parser *p);
425static stmt_ty raise_stmt_rule(Parser *p);
426static stmt_ty function_def_rule(Parser *p);
427static stmt_ty function_def_raw_rule(Parser *p);
Pablo Galindod9552412020-05-01 16:32:09 +0100428static Token* func_type_comment_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100429static arguments_ty params_rule(Parser *p);
430static arguments_ty parameters_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700431static asdl_seq* slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100432static SlashWithDefault* slash_with_default_rule(Parser *p);
433static StarEtc* star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100434static arg_ty kwds_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700435static arg_ty param_no_default_rule(Parser *p);
436static NameDefaultPair* param_with_default_rule(Parser *p);
437static NameDefaultPair* param_maybe_default_rule(Parser *p);
438static arg_ty param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100439static expr_ty annotation_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700440static expr_ty default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100441static asdl_seq* decorators_rule(Parser *p);
442static stmt_ty class_def_rule(Parser *p);
443static stmt_ty class_def_raw_rule(Parser *p);
444static asdl_seq* block_rule(Parser *p);
445static asdl_seq* expressions_list_rule(Parser *p);
446static expr_ty star_expressions_rule(Parser *p);
447static expr_ty star_expression_rule(Parser *p);
448static asdl_seq* star_named_expressions_rule(Parser *p);
449static expr_ty star_named_expression_rule(Parser *p);
450static expr_ty named_expression_rule(Parser *p);
451static expr_ty annotated_rhs_rule(Parser *p);
452static expr_ty expressions_rule(Parser *p);
453static expr_ty expression_rule(Parser *p);
454static expr_ty lambdef_rule(Parser *p);
455static arguments_ty lambda_parameters_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700456static asdl_seq* lambda_slash_no_default_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100457static SlashWithDefault* lambda_slash_with_default_rule(Parser *p);
458static StarEtc* lambda_star_etc_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100459static arg_ty lambda_kwds_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700460static arg_ty lambda_param_no_default_rule(Parser *p);
461static NameDefaultPair* lambda_param_with_default_rule(Parser *p);
462static NameDefaultPair* lambda_param_maybe_default_rule(Parser *p);
463static arg_ty lambda_param_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100464static expr_ty disjunction_rule(Parser *p);
465static expr_ty conjunction_rule(Parser *p);
466static expr_ty inversion_rule(Parser *p);
467static expr_ty comparison_rule(Parser *p);
468static CmpopExprPair* compare_op_bitwise_or_pair_rule(Parser *p);
469static CmpopExprPair* eq_bitwise_or_rule(Parser *p);
470static CmpopExprPair* noteq_bitwise_or_rule(Parser *p);
471static CmpopExprPair* lte_bitwise_or_rule(Parser *p);
472static CmpopExprPair* lt_bitwise_or_rule(Parser *p);
473static CmpopExprPair* gte_bitwise_or_rule(Parser *p);
474static CmpopExprPair* gt_bitwise_or_rule(Parser *p);
475static CmpopExprPair* notin_bitwise_or_rule(Parser *p);
476static CmpopExprPair* in_bitwise_or_rule(Parser *p);
477static CmpopExprPair* isnot_bitwise_or_rule(Parser *p);
478static CmpopExprPair* is_bitwise_or_rule(Parser *p);
479static expr_ty bitwise_or_rule(Parser *p);
480static expr_ty bitwise_xor_rule(Parser *p);
481static expr_ty bitwise_and_rule(Parser *p);
482static expr_ty shift_expr_rule(Parser *p);
483static expr_ty sum_rule(Parser *p);
484static expr_ty term_rule(Parser *p);
485static expr_ty factor_rule(Parser *p);
486static expr_ty power_rule(Parser *p);
487static expr_ty await_primary_rule(Parser *p);
488static expr_ty primary_rule(Parser *p);
489static expr_ty slices_rule(Parser *p);
490static expr_ty slice_rule(Parser *p);
491static expr_ty atom_rule(Parser *p);
492static expr_ty strings_rule(Parser *p);
493static expr_ty list_rule(Parser *p);
494static expr_ty listcomp_rule(Parser *p);
495static expr_ty tuple_rule(Parser *p);
496static expr_ty group_rule(Parser *p);
497static expr_ty genexp_rule(Parser *p);
498static expr_ty set_rule(Parser *p);
499static expr_ty setcomp_rule(Parser *p);
500static expr_ty dict_rule(Parser *p);
501static expr_ty dictcomp_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700502static asdl_seq* double_starred_kvpairs_rule(Parser *p);
503static KeyValuePair* double_starred_kvpair_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100504static KeyValuePair* kvpair_rule(Parser *p);
505static asdl_seq* for_if_clauses_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300506static comprehension_ty for_if_clause_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100507static expr_ty yield_expr_rule(Parser *p);
508static expr_ty arguments_rule(Parser *p);
509static expr_ty args_rule(Parser *p);
510static asdl_seq* kwargs_rule(Parser *p);
511static expr_ty starred_expression_rule(Parser *p);
512static KeywordOrStarred* kwarg_or_starred_rule(Parser *p);
513static KeywordOrStarred* kwarg_or_double_starred_rule(Parser *p);
514static expr_ty star_targets_rule(Parser *p);
515static asdl_seq* star_targets_seq_rule(Parser *p);
516static expr_ty star_target_rule(Parser *p);
517static expr_ty star_atom_rule(Parser *p);
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +0300518static expr_ty single_target_rule(Parser *p);
519static expr_ty single_subscript_attribute_target_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100520static asdl_seq* del_targets_rule(Parser *p);
521static expr_ty del_target_rule(Parser *p);
522static expr_ty del_t_atom_rule(Parser *p);
Shantanu27c0d9b2020-05-11 14:53:58 -0700523static void *del_target_end_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100524static asdl_seq* targets_rule(Parser *p);
525static expr_ty target_rule(Parser *p);
526static expr_ty t_primary_rule(Parser *p);
527static void *t_lookahead_rule(Parser *p);
528static expr_ty t_atom_rule(Parser *p);
529static void *incorrect_arguments_rule(Parser *p);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +0300530static void *invalid_kwarg_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100531static void *invalid_named_expression_rule(Parser *p);
532static void *invalid_assignment_rule(Parser *p);
533static void *invalid_block_rule(Parser *p);
534static void *invalid_comprehension_rule(Parser *p);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -0700535static void *invalid_dict_comprehension_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100536static void *invalid_parameters_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300537static void *invalid_star_etc_rule(Parser *p);
538static void *invalid_lambda_star_etc_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700539static void *invalid_double_type_comments_rule(Parser *p);
Shantanu27c0d9b2020-05-11 14:53:58 -0700540static void *invalid_del_target_rule(Parser *p);
Pablo Galindo275d7e12020-05-21 22:04:54 +0100541static void *invalid_import_from_targets_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100542static asdl_seq *_loop0_1_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700543static asdl_seq *_loop0_2_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100544static asdl_seq *_loop0_4_rule(Parser *p);
545static asdl_seq *_gather_3_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700546static asdl_seq *_loop0_6_rule(Parser *p);
547static asdl_seq *_gather_5_rule(Parser *p);
548static asdl_seq *_loop0_8_rule(Parser *p);
549static asdl_seq *_gather_7_rule(Parser *p);
550static asdl_seq *_loop0_10_rule(Parser *p);
551static asdl_seq *_gather_9_rule(Parser *p);
552static asdl_seq *_loop1_11_rule(Parser *p);
553static asdl_seq *_loop0_13_rule(Parser *p);
554static asdl_seq *_gather_12_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100555static void *_tmp_14_rule(Parser *p);
556static void *_tmp_15_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700557static void *_tmp_16_rule(Parser *p);
558static void *_tmp_17_rule(Parser *p);
559static void *_tmp_18_rule(Parser *p);
560static void *_tmp_19_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100561static void *_tmp_20_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700562static void *_tmp_21_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100563static asdl_seq *_loop1_22_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700564static void *_tmp_23_rule(Parser *p);
565static void *_tmp_24_rule(Parser *p);
566static asdl_seq *_loop0_26_rule(Parser *p);
567static asdl_seq *_gather_25_rule(Parser *p);
568static asdl_seq *_loop0_28_rule(Parser *p);
569static asdl_seq *_gather_27_rule(Parser *p);
570static void *_tmp_29_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100571static asdl_seq *_loop0_30_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700572static asdl_seq *_loop1_31_rule(Parser *p);
573static asdl_seq *_loop0_33_rule(Parser *p);
574static asdl_seq *_gather_32_rule(Parser *p);
575static void *_tmp_34_rule(Parser *p);
576static asdl_seq *_loop0_36_rule(Parser *p);
577static asdl_seq *_gather_35_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100578static void *_tmp_37_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700579static asdl_seq *_loop0_39_rule(Parser *p);
580static asdl_seq *_gather_38_rule(Parser *p);
581static asdl_seq *_loop0_41_rule(Parser *p);
582static asdl_seq *_gather_40_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300583static asdl_seq *_loop0_43_rule(Parser *p);
584static asdl_seq *_gather_42_rule(Parser *p);
585static asdl_seq *_loop0_45_rule(Parser *p);
586static asdl_seq *_gather_44_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100587static void *_tmp_46_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300588static asdl_seq *_loop1_47_rule(Parser *p);
589static void *_tmp_48_rule(Parser *p);
590static void *_tmp_49_rule(Parser *p);
591static void *_tmp_50_rule(Parser *p);
592static void *_tmp_51_rule(Parser *p);
593static void *_tmp_52_rule(Parser *p);
594static asdl_seq *_loop0_53_rule(Parser *p);
595static asdl_seq *_loop0_54_rule(Parser *p);
596static asdl_seq *_loop0_55_rule(Parser *p);
597static asdl_seq *_loop1_56_rule(Parser *p);
598static asdl_seq *_loop0_57_rule(Parser *p);
599static asdl_seq *_loop1_58_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700600static asdl_seq *_loop1_59_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300601static asdl_seq *_loop1_60_rule(Parser *p);
602static asdl_seq *_loop0_61_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700603static asdl_seq *_loop1_62_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300604static asdl_seq *_loop0_63_rule(Parser *p);
605static asdl_seq *_loop1_64_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700606static asdl_seq *_loop0_65_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700607static asdl_seq *_loop1_66_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300608static asdl_seq *_loop1_67_rule(Parser *p);
609static void *_tmp_68_rule(Parser *p);
610static asdl_seq *_loop0_70_rule(Parser *p);
611static asdl_seq *_gather_69_rule(Parser *p);
612static asdl_seq *_loop1_71_rule(Parser *p);
613static asdl_seq *_loop0_73_rule(Parser *p);
614static asdl_seq *_gather_72_rule(Parser *p);
615static asdl_seq *_loop1_74_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700616static asdl_seq *_loop0_75_rule(Parser *p);
617static asdl_seq *_loop0_76_rule(Parser *p);
618static asdl_seq *_loop0_77_rule(Parser *p);
619static asdl_seq *_loop1_78_rule(Parser *p);
620static asdl_seq *_loop0_79_rule(Parser *p);
621static asdl_seq *_loop1_80_rule(Parser *p);
622static asdl_seq *_loop1_81_rule(Parser *p);
623static asdl_seq *_loop1_82_rule(Parser *p);
624static asdl_seq *_loop0_83_rule(Parser *p);
625static asdl_seq *_loop1_84_rule(Parser *p);
626static asdl_seq *_loop0_85_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300627static asdl_seq *_loop1_86_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700628static asdl_seq *_loop0_87_rule(Parser *p);
629static asdl_seq *_loop1_88_rule(Parser *p);
630static asdl_seq *_loop1_89_rule(Parser *p);
631static asdl_seq *_loop1_90_rule(Parser *p);
632static asdl_seq *_loop1_91_rule(Parser *p);
633static void *_tmp_92_rule(Parser *p);
634static asdl_seq *_loop0_94_rule(Parser *p);
635static asdl_seq *_gather_93_rule(Parser *p);
636static void *_tmp_95_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700637static void *_tmp_96_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700638static void *_tmp_97_rule(Parser *p);
639static void *_tmp_98_rule(Parser *p);
640static asdl_seq *_loop1_99_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100641static void *_tmp_100_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300642static void *_tmp_101_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700643static asdl_seq *_loop0_103_rule(Parser *p);
644static asdl_seq *_gather_102_rule(Parser *p);
645static asdl_seq *_loop1_104_rule(Parser *p);
646static asdl_seq *_loop0_105_rule(Parser *p);
647static asdl_seq *_loop0_106_rule(Parser *p);
648static void *_tmp_107_rule(Parser *p);
649static void *_tmp_108_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300650static asdl_seq *_loop0_110_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700651static asdl_seq *_gather_109_rule(Parser *p);
652static asdl_seq *_loop0_112_rule(Parser *p);
653static asdl_seq *_gather_111_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100654static asdl_seq *_loop0_114_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300655static asdl_seq *_gather_113_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100656static asdl_seq *_loop0_116_rule(Parser *p);
657static asdl_seq *_gather_115_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700658static asdl_seq *_loop0_117_rule(Parser *p);
659static asdl_seq *_loop0_119_rule(Parser *p);
660static asdl_seq *_gather_118_rule(Parser *p);
661static void *_tmp_120_rule(Parser *p);
662static asdl_seq *_loop0_122_rule(Parser *p);
663static asdl_seq *_gather_121_rule(Parser *p);
664static asdl_seq *_loop0_124_rule(Parser *p);
665static asdl_seq *_gather_123_rule(Parser *p);
666static void *_tmp_125_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300667static asdl_seq *_loop0_126_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700668static void *_tmp_127_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700669static asdl_seq *_loop0_128_rule(Parser *p);
670static asdl_seq *_loop0_129_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300671static void *_tmp_130_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700672static void *_tmp_131_rule(Parser *p);
673static asdl_seq *_loop0_132_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100674static void *_tmp_133_rule(Parser *p);
Guido van Rossum3941d972020-05-01 09:42:03 -0700675static void *_tmp_134_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100676static void *_tmp_135_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700677static void *_tmp_136_rule(Parser *p);
Pablo Galindo2b74c832020-04-27 18:02:07 +0100678static void *_tmp_137_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700679static void *_tmp_138_rule(Parser *p);
680static void *_tmp_139_rule(Parser *p);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +0300681static void *_tmp_140_rule(Parser *p);
682static void *_tmp_141_rule(Parser *p);
Guido van Rossumc001c092020-04-30 12:12:19 -0700683static void *_tmp_142_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300684static void *_tmp_143_rule(Parser *p);
685static void *_tmp_144_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300686static void *_tmp_145_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700687static void *_tmp_146_rule(Parser *p);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +0300688static void *_tmp_147_rule(Parser *p);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +0300689static void *_tmp_148_rule(Parser *p);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -0700690static asdl_seq *_loop1_149_rule(Parser *p);
691static void *_tmp_150_rule(Parser *p);
692static void *_tmp_151_rule(Parser *p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100693
694
695// file: statements? $
696static mod_ty
697file_rule(Parser *p)
698{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700699 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100700 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700701 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100702 return NULL;
703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100704 mod_ty _res = NULL;
705 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100706 { // statements? $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300707 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700708 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300709 return NULL;
710 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700711 D(fprintf(stderr, "%*c> file[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100712 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100713 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100714 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100715 (a = statements_rule(p), 1) // statements?
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100716 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100717 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100718 )
719 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700720 D(fprintf(stderr, "%*c+ file[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statements? $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100721 _res = _PyPegen_make_module ( p , a );
722 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100723 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700724 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100725 return NULL;
726 }
727 goto done;
728 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100729 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700730 D(fprintf(stderr, "%*c%s file[%d-%d]: %s failed!\n", p->level, ' ',
731 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statements? $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100733 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100734 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700735 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100736 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100737}
738
739// interactive: statement_newline
740static mod_ty
741interactive_rule(Parser *p)
742{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700743 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700745 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100746 return NULL;
747 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100748 mod_ty _res = NULL;
749 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100750 { // statement_newline
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300751 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700752 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300753 return NULL;
754 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700755 D(fprintf(stderr, "%*c> interactive[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100756 asdl_seq* a;
757 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100758 (a = statement_newline_rule(p)) // statement_newline
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100759 )
760 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700761 D(fprintf(stderr, "%*c+ interactive[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement_newline"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100762 _res = Interactive ( a , p -> arena );
763 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100764 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100766 return NULL;
767 }
768 goto done;
769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100770 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700771 D(fprintf(stderr, "%*c%s interactive[%d-%d]: %s failed!\n", p->level, ' ',
772 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement_newline"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100774 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100775 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700776 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100777 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100778}
779
780// eval: expressions NEWLINE* $
781static mod_ty
782eval_rule(Parser *p)
783{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700784 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700786 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100787 return NULL;
788 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100789 mod_ty _res = NULL;
790 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100791 { // expressions NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300792 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700793 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300794 return NULL;
795 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700796 D(fprintf(stderr, "%*c> eval[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100797 asdl_seq * _loop0_1_var;
798 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100799 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100800 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100801 (a = expressions_rule(p)) // expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100802 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100803 (_loop0_1_var = _loop0_1_rule(p)) // NEWLINE*
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100804 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100805 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100806 )
807 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700808 D(fprintf(stderr, "%*c+ eval[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100809 _res = Expression ( a , p -> arena );
810 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100811 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100813 return NULL;
814 }
815 goto done;
816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100817 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700818 D(fprintf(stderr, "%*c%s eval[%d-%d]: %s failed!\n", p->level, ' ',
819 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions NEWLINE* $"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100821 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100822 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700823 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100824 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100825}
826
Guido van Rossumc001c092020-04-30 12:12:19 -0700827// func_type: '(' type_expressions? ')' '->' expression NEWLINE* $
828static mod_ty
829func_type_rule(Parser *p)
830{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700831 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700833 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700834 return NULL;
835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100836 mod_ty _res = NULL;
837 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700838 { // '(' type_expressions? ')' '->' expression NEWLINE* $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300839 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700840 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300841 return NULL;
842 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700843 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 +0100844 Token * _literal;
845 Token * _literal_1;
846 Token * _literal_2;
Guido van Rossumc001c092020-04-30 12:12:19 -0700847 asdl_seq * _loop0_2_var;
848 void *a;
849 expr_ty b;
Pablo Galindob796b3f2020-05-01 12:32:26 +0100850 Token * endmarker_var;
Guido van Rossumc001c092020-04-30 12:12:19 -0700851 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100852 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Guido van Rossumc001c092020-04-30 12:12:19 -0700853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100854 (a = type_expressions_rule(p), 1) // type_expressions?
Guido van Rossumc001c092020-04-30 12:12:19 -0700855 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100856 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -0700857 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100858 (_literal_2 = _PyPegen_expect_token(p, 51)) // token='->'
Guido van Rossumc001c092020-04-30 12:12:19 -0700859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100860 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700861 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100862 (_loop0_2_var = _loop0_2_rule(p)) // NEWLINE*
Guido van Rossumc001c092020-04-30 12:12:19 -0700863 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100864 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Guido van Rossumc001c092020-04-30 12:12:19 -0700865 )
866 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700867 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 +0100868 _res = FunctionType ( a , b , p -> arena );
869 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700870 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700871 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700872 return NULL;
873 }
874 goto done;
875 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100876 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700877 D(fprintf(stderr, "%*c%s func_type[%d-%d]: %s failed!\n", p->level, ' ',
878 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' type_expressions? ')' '->' expression NEWLINE* $"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100880 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -0700881 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700882 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100883 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -0700884}
885
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100886// fstring: star_expressions
887static expr_ty
888fstring_rule(Parser *p)
889{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700890 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100891 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100893 return NULL;
894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100895 expr_ty _res = NULL;
896 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100897 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300898 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700899 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300900 return NULL;
901 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700902 D(fprintf(stderr, "%*c> fstring[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100903 expr_ty star_expressions_var;
904 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100905 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100906 )
907 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700908 D(fprintf(stderr, "%*c+ fstring[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100909 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100910 goto done;
911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100912 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700913 D(fprintf(stderr, "%*c%s fstring[%d-%d]: %s failed!\n", p->level, ' ',
914 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100916 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100917 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700918 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100919 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +0100920}
921
Guido van Rossumc001c092020-04-30 12:12:19 -0700922// type_expressions:
923// | ','.expression+ ',' '*' expression ',' '**' expression
924// | ','.expression+ ',' '*' expression
925// | ','.expression+ ',' '**' expression
Shantanu603d3542020-05-03 22:08:14 -0700926// | '*' expression ',' '**' expression
927// | '*' expression
928// | '**' expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700929// | ','.expression+
930static asdl_seq*
931type_expressions_rule(Parser *p)
932{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700933 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -0700934 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700935 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700936 return NULL;
937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100938 asdl_seq* _res = NULL;
939 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -0700940 { // ','.expression+ ',' '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700942 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300943 return NULL;
944 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700945 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 +0100946 Token * _literal;
947 Token * _literal_1;
948 Token * _literal_2;
949 Token * _literal_3;
Guido van Rossumc001c092020-04-30 12:12:19 -0700950 asdl_seq * a;
951 expr_ty b;
952 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -0700953 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100954 (a = _gather_3_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700955 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100956 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700957 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100958 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700959 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100960 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700961 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100962 (_literal_2 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700963 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100964 (_literal_3 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -0700965 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100966 (c = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -0700967 )
968 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700969 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 +0100970 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_seq_append_to_end ( p , a , b ) ) , c );
971 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -0700972 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700973 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -0700974 return NULL;
975 }
976 goto done;
977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100978 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700979 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
980 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -0700981 }
982 { // ','.expression+ ',' '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700984 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +0300985 return NULL;
986 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -0700987 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100988 Token * _literal;
989 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -0700990 asdl_seq * a;
991 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -0700992 if (
Pablo Galindo470aac42020-05-06 23:14:43 +0100993 (a = _gather_5_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -0700994 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100995 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -0700996 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +0100997 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Guido van Rossumc001c092020-04-30 12:12:19 -0700998 &&
Pablo Galindo470aac42020-05-06 23:14:43 +0100999 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001000 )
1001 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001002 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 +01001003 _res = _PyPegen_seq_append_to_end ( p , a , b );
1004 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001005 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001006 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001007 return NULL;
1008 }
1009 goto done;
1010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001011 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001012 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1013 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '*' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001014 }
1015 { // ','.expression+ ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001016 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001017 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001018 return NULL;
1019 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001020 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+ ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001021 Token * _literal;
1022 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07001023 asdl_seq * a;
1024 expr_ty b;
Guido van Rossumc001c092020-04-30 12:12:19 -07001025 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001026 (a = _gather_7_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001027 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001028 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07001029 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001030 (_literal_1 = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07001031 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001032 (b = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -07001033 )
1034 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001035 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 +01001036 _res = _PyPegen_seq_append_to_end ( p , a , b );
1037 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07001038 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001039 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07001040 return NULL;
1041 }
1042 goto done;
1043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001044 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001045 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1046 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+ ',' '**' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001047 }
Shantanu603d3542020-05-03 22:08:14 -07001048 { // '*' expression ',' '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001050 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001051 return NULL;
1052 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001053 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression ',' '**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001054 Token * _literal;
1055 Token * _literal_1;
1056 Token * _literal_2;
Shantanu603d3542020-05-03 22:08:14 -07001057 expr_ty a;
1058 expr_ty b;
Shantanu603d3542020-05-03 22:08:14 -07001059 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001060 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001061 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001062 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001063 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001064 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Shantanu603d3542020-05-03 22:08:14 -07001065 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001066 (_literal_2 = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001068 (b = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001069 )
1070 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001071 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 +01001072 _res = _PyPegen_seq_append_to_end ( p , CHECK ( _PyPegen_singleton_seq ( p , a ) ) , b );
1073 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001074 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001075 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001076 return NULL;
1077 }
1078 goto done;
1079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001080 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001081 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1082 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression ',' '**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001083 }
1084 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001085 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001086 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001087 return NULL;
1088 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001089 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001090 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001091 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001092 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001093 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Shantanu603d3542020-05-03 22:08:14 -07001094 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001095 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001096 )
1097 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001098 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001099 _res = _PyPegen_singleton_seq ( p , a );
1100 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001101 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001102 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001103 return NULL;
1104 }
1105 goto done;
1106 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001107 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001108 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1109 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001110 }
1111 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001113 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001114 return NULL;
1115 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001116 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001117 Token * _literal;
Shantanu603d3542020-05-03 22:08:14 -07001118 expr_ty a;
Shantanu603d3542020-05-03 22:08:14 -07001119 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001120 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Shantanu603d3542020-05-03 22:08:14 -07001121 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001122 (a = expression_rule(p)) // expression
Shantanu603d3542020-05-03 22:08:14 -07001123 )
1124 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001125 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001126 _res = _PyPegen_singleton_seq ( p , a );
1127 if (_res == NULL && PyErr_Occurred()) {
Shantanu603d3542020-05-03 22:08:14 -07001128 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001129 D(p->level--);
Shantanu603d3542020-05-03 22:08:14 -07001130 return NULL;
1131 }
1132 goto done;
1133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001134 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001135 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1136 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Shantanu603d3542020-05-03 22:08:14 -07001137 }
Guido van Rossumc001c092020-04-30 12:12:19 -07001138 { // ','.expression+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001139 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001140 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001141 return NULL;
1142 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001143 D(fprintf(stderr, "%*c> type_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001144 asdl_seq * _gather_9_var;
1145 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001146 (_gather_9_var = _gather_9_rule(p)) // ','.expression+
Guido van Rossumc001c092020-04-30 12:12:19 -07001147 )
1148 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001149 D(fprintf(stderr, "%*c+ type_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.expression+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001150 _res = _gather_9_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07001151 goto done;
1152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001153 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001154 D(fprintf(stderr, "%*c%s type_expressions[%d-%d]: %s failed!\n", p->level, ' ',
1155 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.expression+"));
Guido van Rossumc001c092020-04-30 12:12:19 -07001156 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001157 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07001158 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001159 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001160 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07001161}
1162
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001163// statements: statement+
1164static asdl_seq*
1165statements_rule(Parser *p)
1166{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001167 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001169 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001170 return NULL;
1171 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001172 asdl_seq* _res = NULL;
1173 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001174 { // statement+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001176 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001177 return NULL;
1178 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001179 D(fprintf(stderr, "%*c> statements[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001180 asdl_seq * a;
1181 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001182 (a = _loop1_11_rule(p)) // statement+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001183 )
1184 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001185 D(fprintf(stderr, "%*c+ statements[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "statement+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001186 _res = _PyPegen_seq_flatten ( p , a );
1187 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001188 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001189 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001190 return NULL;
1191 }
1192 goto done;
1193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001194 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001195 D(fprintf(stderr, "%*c%s statements[%d-%d]: %s failed!\n", p->level, ' ',
1196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001198 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001199 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001200 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001201 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001202}
1203
1204// statement: compound_stmt | simple_stmt
1205static asdl_seq*
1206statement_rule(Parser *p)
1207{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001208 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001209 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001211 return NULL;
1212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001213 asdl_seq* _res = NULL;
1214 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001215 { // compound_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001217 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001218 return NULL;
1219 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001220 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001221 stmt_ty a;
1222 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001223 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001224 )
1225 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001226 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "compound_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001227 _res = _PyPegen_singleton_seq ( p , a );
1228 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001229 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001230 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001231 return NULL;
1232 }
1233 goto done;
1234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001235 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001236 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001238 }
1239 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001240 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001241 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001242 return NULL;
1243 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001244 D(fprintf(stderr, "%*c> statement[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001245 asdl_seq* simple_stmt_var;
1246 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001247 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001248 )
1249 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001250 D(fprintf(stderr, "%*c+ statement[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001251 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001252 goto done;
1253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001254 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001255 D(fprintf(stderr, "%*c%s statement[%d-%d]: %s failed!\n", p->level, ' ',
1256 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001258 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001259 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001260 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001261 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001262}
1263
1264// statement_newline: compound_stmt NEWLINE | simple_stmt | NEWLINE | $
1265static asdl_seq*
1266statement_newline_rule(Parser *p)
1267{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001268 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001269 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001270 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001271 return NULL;
1272 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001273 asdl_seq* _res = NULL;
1274 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001275 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1276 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001277 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001278 return NULL;
1279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001280 int _start_lineno = p->tokens[_mark]->lineno;
1281 UNUSED(_start_lineno); // Only used by EXTRA macro
1282 int _start_col_offset = p->tokens[_mark]->col_offset;
1283 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001284 { // compound_stmt NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001285 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001286 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001287 return NULL;
1288 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001289 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 +01001290 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001291 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001292 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001293 (a = compound_stmt_rule(p)) // compound_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001294 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001295 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001296 )
1297 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001298 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 +01001299 _res = _PyPegen_singleton_seq ( p , a );
1300 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001301 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001302 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001303 return NULL;
1304 }
1305 goto done;
1306 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001307 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001308 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1309 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compound_stmt NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001310 }
1311 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001312 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001313 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001314 return NULL;
1315 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001316 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001317 asdl_seq* simple_stmt_var;
1318 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001319 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001320 )
1321 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001322 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 +01001323 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001324 goto done;
1325 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001326 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001327 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1328 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001329 }
1330 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001331 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001332 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001333 return NULL;
1334 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001335 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001336 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001337 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001338 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001339 )
1340 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001341 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001342 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1343 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001344 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001345 return NULL;
1346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001347 int _end_lineno = _token->end_lineno;
1348 UNUSED(_end_lineno); // Only used by EXTRA macro
1349 int _end_col_offset = _token->end_col_offset;
1350 UNUSED(_end_col_offset); // Only used by EXTRA macro
1351 _res = _PyPegen_singleton_seq ( p , CHECK ( _Py_Pass ( EXTRA ) ) );
1352 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001353 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001354 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001355 return NULL;
1356 }
1357 goto done;
1358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001359 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001360 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001362 }
1363 { // $
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001364 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001365 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001366 return NULL;
1367 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001368 D(fprintf(stderr, "%*c> statement_newline[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindob796b3f2020-05-01 12:32:26 +01001369 Token * endmarker_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001370 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001371 (endmarker_var = _PyPegen_expect_token(p, ENDMARKER)) // token='ENDMARKER'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001372 )
1373 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001374 D(fprintf(stderr, "%*c+ statement_newline[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "$"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001375 _res = _PyPegen_interactive_exit ( p );
1376 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001377 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001379 return NULL;
1380 }
1381 goto done;
1382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001383 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001384 D(fprintf(stderr, "%*c%s statement_newline[%d-%d]: %s failed!\n", p->level, ' ',
1385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "$"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001386 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001387 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001388 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001389 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001390 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001391}
1392
1393// simple_stmt: small_stmt !';' NEWLINE | ';'.small_stmt+ ';'? NEWLINE
1394static asdl_seq*
1395simple_stmt_rule(Parser *p)
1396{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001397 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001398 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001399 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001400 return NULL;
1401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001402 asdl_seq* _res = NULL;
1403 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001404 { // small_stmt !';' NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001405 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001406 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001407 return NULL;
1408 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001409 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 +01001410 stmt_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001411 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001412 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001413 (a = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001414 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001415 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 13) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001416 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001417 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001418 )
1419 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001420 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 +01001421 _res = _PyPegen_singleton_seq ( p , a );
1422 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001423 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001425 return NULL;
1426 }
1427 goto done;
1428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001429 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001430 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1431 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt !';' NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001432 }
1433 { // ';'.small_stmt+ ';'? NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001435 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001436 return NULL;
1437 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001438 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 +01001439 void *_opt_var;
1440 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001441 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01001442 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001443 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001444 (a = _gather_12_rule(p)) // ';'.small_stmt+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001445 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001446 (_opt_var = _PyPegen_expect_token(p, 13), 1) // ';'?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001447 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001448 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001449 )
1450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001451 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 +01001452 _res = a;
1453 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001454 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001455 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001456 return NULL;
1457 }
1458 goto done;
1459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001460 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001461 D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'.small_stmt+ ';'? NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001464 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001465 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001466 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001467 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001468}
1469
1470// small_stmt:
1471// | assignment
1472// | star_expressions
1473// | &'return' return_stmt
1474// | &('import' | 'from') import_stmt
1475// | &'raise' raise_stmt
1476// | 'pass'
1477// | &'del' del_stmt
1478// | &'yield' yield_stmt
1479// | &'assert' assert_stmt
1480// | 'break'
1481// | 'continue'
1482// | &'global' global_stmt
1483// | &'nonlocal' nonlocal_stmt
1484static stmt_ty
1485small_stmt_rule(Parser *p)
1486{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001487 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001488 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001489 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001490 return NULL;
1491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001492 stmt_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001493 if (_PyPegen_is_memoized(p, small_stmt_type, &_res)) {
1494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001495 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001497 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001498 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
1499 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001500 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001501 return NULL;
1502 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001503 int _start_lineno = p->tokens[_mark]->lineno;
1504 UNUSED(_start_lineno); // Only used by EXTRA macro
1505 int _start_col_offset = p->tokens[_mark]->col_offset;
1506 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001507 { // assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001508 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001509 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001510 return NULL;
1511 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001512 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assignment"));
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03001513 stmt_ty assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001514 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001515 (assignment_var = assignment_rule(p)) // assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001516 )
1517 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001518 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001519 _res = assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001520 goto done;
1521 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001522 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001523 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1524 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001525 }
1526 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001527 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001528 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001529 return NULL;
1530 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001531 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001532 expr_ty e;
1533 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001534 (e = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001535 )
1536 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001537 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 +01001538 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1539 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001540 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001541 return NULL;
1542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001543 int _end_lineno = _token->end_lineno;
1544 UNUSED(_end_lineno); // Only used by EXTRA macro
1545 int _end_col_offset = _token->end_col_offset;
1546 UNUSED(_end_col_offset); // Only used by EXTRA macro
1547 _res = _Py_Expr ( e , EXTRA );
1548 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001549 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001550 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001551 return NULL;
1552 }
1553 goto done;
1554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001555 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001556 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001558 }
1559 { // &'return' return_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001560 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001561 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001562 return NULL;
1563 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001564 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 +01001565 stmt_ty return_stmt_var;
1566 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001567 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 500) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001568 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001569 (return_stmt_var = return_stmt_rule(p)) // return_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001570 )
1571 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001572 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 +01001573 _res = return_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001574 goto done;
1575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001576 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001577 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001579 }
1580 { // &('import' | 'from') import_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001582 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001583 return NULL;
1584 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001585 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 +01001586 stmt_ty import_stmt_var;
1587 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001588 _PyPegen_lookahead(1, _tmp_14_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001589 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001590 (import_stmt_var = import_stmt_rule(p)) // import_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001591 )
1592 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001593 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 +01001594 _res = import_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001595 goto done;
1596 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001597 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001598 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1599 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001600 }
1601 { // &'raise' raise_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001603 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001604 return NULL;
1605 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001606 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 +01001607 stmt_ty raise_stmt_var;
1608 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001609 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 501) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001610 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001611 (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001612 )
1613 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001614 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 +01001615 _res = raise_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001616 goto done;
1617 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001618 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001619 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1620 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001621 }
1622 { // 'pass'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001624 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001625 return NULL;
1626 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001627 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001628 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001629 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001630 (_keyword = _PyPegen_expect_token(p, 502)) // token='pass'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001631 )
1632 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001633 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001634 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1635 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001636 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001637 return NULL;
1638 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001639 int _end_lineno = _token->end_lineno;
1640 UNUSED(_end_lineno); // Only used by EXTRA macro
1641 int _end_col_offset = _token->end_col_offset;
1642 UNUSED(_end_col_offset); // Only used by EXTRA macro
1643 _res = _Py_Pass ( EXTRA );
1644 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001645 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001646 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001647 return NULL;
1648 }
1649 goto done;
1650 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001651 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001652 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1653 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001654 }
1655 { // &'del' del_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001656 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001657 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001658 return NULL;
1659 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001660 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 +01001661 stmt_ty del_stmt_var;
1662 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001663 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 503) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001664 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001665 (del_stmt_var = del_stmt_rule(p)) // del_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001666 )
1667 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001668 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 +01001669 _res = del_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001670 goto done;
1671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001672 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001673 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1674 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001675 }
1676 { // &'yield' yield_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001677 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001678 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001679 return NULL;
1680 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001681 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 +01001682 stmt_ty yield_stmt_var;
1683 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001684 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 504) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001685 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001686 (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001687 )
1688 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001689 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 +01001690 _res = yield_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001691 goto done;
1692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001693 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001694 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1695 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001696 }
1697 { // &'assert' assert_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001698 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001699 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001700 return NULL;
1701 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001702 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 +01001703 stmt_ty assert_stmt_var;
1704 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001705 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 505) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001706 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001707 (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001708 )
1709 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001710 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 +01001711 _res = assert_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001712 goto done;
1713 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001714 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001715 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1716 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001717 }
1718 { // 'break'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001719 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001720 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001721 return NULL;
1722 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001723 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001724 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001725 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001726 (_keyword = _PyPegen_expect_token(p, 506)) // token='break'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001727 )
1728 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001729 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001730 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1731 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001732 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001733 return NULL;
1734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001735 int _end_lineno = _token->end_lineno;
1736 UNUSED(_end_lineno); // Only used by EXTRA macro
1737 int _end_col_offset = _token->end_col_offset;
1738 UNUSED(_end_col_offset); // Only used by EXTRA macro
1739 _res = _Py_Break ( EXTRA );
1740 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001741 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001743 return NULL;
1744 }
1745 goto done;
1746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001747 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001748 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001750 }
1751 { // 'continue'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001752 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001753 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001754 return NULL;
1755 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001756 D(fprintf(stderr, "%*c> small_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001757 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001758 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001759 (_keyword = _PyPegen_expect_token(p, 507)) // token='continue'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001760 )
1761 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001762 D(fprintf(stderr, "%*c+ small_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001763 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
1764 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001765 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001766 return NULL;
1767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001768 int _end_lineno = _token->end_lineno;
1769 UNUSED(_end_lineno); // Only used by EXTRA macro
1770 int _end_col_offset = _token->end_col_offset;
1771 UNUSED(_end_col_offset); // Only used by EXTRA macro
1772 _res = _Py_Continue ( EXTRA );
1773 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001774 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001775 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001776 return NULL;
1777 }
1778 goto done;
1779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001780 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001781 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1782 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001783 }
1784 { // &'global' global_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001785 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001786 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001787 return NULL;
1788 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001789 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 +01001790 stmt_ty global_stmt_var;
1791 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001792 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 508) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001793 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001794 (global_stmt_var = global_stmt_rule(p)) // global_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001795 )
1796 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001797 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 +01001798 _res = global_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001799 goto done;
1800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001801 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001802 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1803 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001804 }
1805 { // &'nonlocal' nonlocal_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001807 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001808 return NULL;
1809 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001810 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 +01001811 stmt_ty nonlocal_stmt_var;
1812 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001813 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 509) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001814 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001815 (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001816 )
1817 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001818 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 +01001819 _res = nonlocal_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001820 goto done;
1821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001822 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001823 D(fprintf(stderr, "%*c%s small_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1824 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001825 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001826 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001827 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001828 _PyPegen_insert_memo(p, _mark, small_stmt_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001829 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001830 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001831}
1832
1833// compound_stmt:
1834// | &('def' | '@' | ASYNC) function_def
1835// | &'if' if_stmt
1836// | &('class' | '@') class_def
1837// | &('with' | ASYNC) with_stmt
1838// | &('for' | ASYNC) for_stmt
1839// | &'try' try_stmt
1840// | &'while' while_stmt
1841static stmt_ty
1842compound_stmt_rule(Parser *p)
1843{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001844 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001845 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001847 return NULL;
1848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001849 stmt_ty _res = NULL;
1850 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001851 { // &('def' | '@' | ASYNC) function_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001852 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001853 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001854 return NULL;
1855 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001856 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 +01001857 stmt_ty function_def_var;
1858 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001859 _PyPegen_lookahead(1, _tmp_15_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001860 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001861 (function_def_var = function_def_rule(p)) // function_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001862 )
1863 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001864 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 +01001865 _res = function_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001866 goto done;
1867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001869 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('def' | '@' | ASYNC) function_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001871 }
1872 { // &'if' if_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001873 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001874 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001875 return NULL;
1876 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001877 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 +01001878 stmt_ty if_stmt_var;
1879 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001880 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 510) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001881 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001882 (if_stmt_var = if_stmt_rule(p)) // if_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001883 )
1884 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001885 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 +01001886 _res = if_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001887 goto done;
1888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001889 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001890 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'if' if_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001892 }
1893 { // &('class' | '@') class_def
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001894 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001895 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001896 return NULL;
1897 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001898 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 +01001899 stmt_ty class_def_var;
1900 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001901 _PyPegen_lookahead(1, _tmp_16_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001902 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001903 (class_def_var = class_def_rule(p)) // class_def
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001904 )
1905 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001906 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 +01001907 _res = class_def_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001908 goto done;
1909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001910 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001911 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1912 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('class' | '@') class_def"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001913 }
1914 { // &('with' | ASYNC) with_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001915 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001916 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001917 return NULL;
1918 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001919 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 +01001920 stmt_ty with_stmt_var;
1921 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001922 _PyPegen_lookahead(1, _tmp_17_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001923 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001924 (with_stmt_var = with_stmt_rule(p)) // with_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001925 )
1926 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001927 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 +01001928 _res = with_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001929 goto done;
1930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001931 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001932 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1933 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('with' | ASYNC) with_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001934 }
1935 { // &('for' | ASYNC) for_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001936 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001937 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001938 return NULL;
1939 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001940 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 +01001941 stmt_ty for_stmt_var;
1942 if (
Guido van Rossumc001c092020-04-30 12:12:19 -07001943 _PyPegen_lookahead(1, _tmp_18_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001944 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001945 (for_stmt_var = for_stmt_rule(p)) // for_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001946 )
1947 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001948 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 +01001949 _res = for_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001950 goto done;
1951 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001952 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001953 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1954 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('for' | ASYNC) for_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001955 }
1956 { // &'try' try_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001957 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001958 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001959 return NULL;
1960 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001961 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 +01001962 stmt_ty try_stmt_var;
1963 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001964 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 511) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001965 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001966 (try_stmt_var = try_stmt_rule(p)) // try_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001967 )
1968 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001969 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 +01001970 _res = try_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001971 goto done;
1972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001973 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001974 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'try' try_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001976 }
1977 { // &'while' while_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001979 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03001980 return NULL;
1981 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001982 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 +01001983 stmt_ty while_stmt_var;
1984 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01001985 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 512) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001986 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01001987 (while_stmt_var = while_stmt_rule(p)) // while_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001988 )
1989 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001990 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 +01001991 _res = while_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001992 goto done;
1993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001994 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07001995 D(fprintf(stderr, "%*c%s compound_stmt[%d-%d]: %s failed!\n", p->level, ' ',
1996 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'while' while_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01001998 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01001999 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002000 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002001 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002002}
2003
2004// assignment:
2005// | NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002006// | ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002007// | ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002008// | single_target augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002009// | invalid_assignment
Lysandros Nikolaou999ec9a2020-05-06 21:11:04 +03002010static stmt_ty
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002011assignment_rule(Parser *p)
2012{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002013 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002014 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002015 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002016 return NULL;
2017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002018 stmt_ty _res = NULL;
2019 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002020 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002023 return NULL;
2024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002025 int _start_lineno = p->tokens[_mark]->lineno;
2026 UNUSED(_start_lineno); // Only used by EXTRA macro
2027 int _start_col_offset = p->tokens[_mark]->col_offset;
2028 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002029 { // NAME ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002031 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002032 return NULL;
2033 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002034 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 +01002035 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002036 expr_ty a;
2037 expr_ty b;
2038 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002039 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002040 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002041 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002042 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002043 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002044 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002045 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002046 (c = _tmp_19_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002047 )
2048 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002049 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 +01002050 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2051 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002052 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002053 return NULL;
2054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002055 int _end_lineno = _token->end_lineno;
2056 UNUSED(_end_lineno); // Only used by EXTRA macro
2057 int _end_col_offset = _token->end_col_offset;
2058 UNUSED(_end_col_offset); // Only used by EXTRA macro
2059 _res = CHECK_VERSION ( 6 , "Variable annotation syntax is" , _Py_AnnAssign ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , c , 1 , EXTRA ) );
2060 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002061 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002062 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002063 return NULL;
2064 }
2065 goto done;
2066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002067 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002068 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002070 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002071 { // ('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002073 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002074 return NULL;
2075 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002076 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 +01002077 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002078 void *a;
2079 expr_ty b;
2080 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002081 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002082 (a = _tmp_20_rule(p)) // '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002083 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002084 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002085 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002086 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002087 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002088 (c = _tmp_21_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002089 )
2090 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002091 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 +01002092 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2093 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002094 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002095 return NULL;
2096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002097 int _end_lineno = _token->end_lineno;
2098 UNUSED(_end_lineno); // Only used by EXTRA macro
2099 int _end_col_offset = _token->end_col_offset;
2100 UNUSED(_end_col_offset); // Only used by EXTRA macro
2101 _res = CHECK_VERSION ( 6 , "Variable annotations syntax is" , _Py_AnnAssign ( a , b , c , 0 , EXTRA ) );
2102 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002103 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002104 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002105 return NULL;
2106 }
2107 goto done;
2108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002109 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002110 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2111 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('(' single_target ')' | single_subscript_attribute_target) ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002112 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002113 { // ((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002114 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002115 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002116 return NULL;
2117 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002118 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 +01002119 asdl_seq * a;
2120 void *b;
Guido van Rossumc001c092020-04-30 12:12:19 -07002121 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002122 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002123 (a = _loop1_22_rule(p)) // ((star_targets '='))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002124 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002125 (b = _tmp_23_rule(p)) // yield_expr | star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -07002126 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002127 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='='
2128 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002129 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002130 )
2131 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002132 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 +01002133 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2134 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002135 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002136 return NULL;
2137 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002138 int _end_lineno = _token->end_lineno;
2139 UNUSED(_end_lineno); // Only used by EXTRA macro
2140 int _end_col_offset = _token->end_col_offset;
2141 UNUSED(_end_col_offset); // Only used by EXTRA macro
2142 _res = _Py_Assign ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
2143 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002144 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002145 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002146 return NULL;
2147 }
2148 goto done;
2149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002150 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002151 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -07002152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))+ (yield_expr | star_expressions) !'=' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002153 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002154 { // single_target augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002157 return NULL;
2158 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002159 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 +01002160 expr_ty a;
2161 AugOperator* b;
2162 void *c;
2163 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03002164 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002165 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002166 (b = augassign_rule(p)) // augassign
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002167 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002168 (c = _tmp_24_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002169 )
2170 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002171 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 +01002172 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2173 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002174 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002175 return NULL;
2176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002177 int _end_lineno = _token->end_lineno;
2178 UNUSED(_end_lineno); // Only used by EXTRA macro
2179 int _end_col_offset = _token->end_col_offset;
2180 UNUSED(_end_col_offset); // Only used by EXTRA macro
2181 _res = _Py_AugAssign ( a , b -> kind , c , EXTRA );
2182 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002183 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002185 return NULL;
2186 }
2187 goto done;
2188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002189 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002190 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_target augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002192 }
2193 { // invalid_assignment
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002195 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002196 return NULL;
2197 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002198 D(fprintf(stderr, "%*c> assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002199 void *invalid_assignment_var;
2200 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002201 (invalid_assignment_var = invalid_assignment_rule(p)) // invalid_assignment
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002202 )
2203 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002204 D(fprintf(stderr, "%*c+ assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_assignment"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002205 _res = invalid_assignment_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002206 goto done;
2207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002208 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002209 D(fprintf(stderr, "%*c%s assignment[%d-%d]: %s failed!\n", p->level, ' ',
2210 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_assignment"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002211 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002212 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002213 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002214 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002215 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002216}
2217
2218// augassign:
2219// | '+='
2220// | '-='
2221// | '*='
2222// | '@='
2223// | '/='
2224// | '%='
2225// | '&='
2226// | '|='
2227// | '^='
2228// | '<<='
2229// | '>>='
2230// | '**='
2231// | '//='
2232static AugOperator*
2233augassign_rule(Parser *p)
2234{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002235 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002236 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002237 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002238 return NULL;
2239 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002240 AugOperator* _res = NULL;
2241 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002242 { // '+='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002243 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002244 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002245 return NULL;
2246 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002247 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002248 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002249 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002250 (_literal = _PyPegen_expect_token(p, 36)) // token='+='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002251 )
2252 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002253 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002254 _res = _PyPegen_augoperator ( p , Add );
2255 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002256 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002257 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002258 return NULL;
2259 }
2260 goto done;
2261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002262 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002263 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002265 }
2266 { // '-='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002267 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002268 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002269 return NULL;
2270 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002271 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002272 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002273 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002274 (_literal = _PyPegen_expect_token(p, 37)) // token='-='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002275 )
2276 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002277 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002278 _res = _PyPegen_augoperator ( p , Sub );
2279 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002280 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002281 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002282 return NULL;
2283 }
2284 goto done;
2285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002286 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002287 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2288 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002289 }
2290 { // '*='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002291 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002292 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002293 return NULL;
2294 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002295 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002296 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002297 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002298 (_literal = _PyPegen_expect_token(p, 38)) // token='*='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002299 )
2300 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002301 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002302 _res = _PyPegen_augoperator ( p , Mult );
2303 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002304 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002305 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002306 return NULL;
2307 }
2308 goto done;
2309 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002310 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002311 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2312 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002313 }
2314 { // '@='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002315 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002316 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002317 return NULL;
2318 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002319 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002320 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002321 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002322 (_literal = _PyPegen_expect_token(p, 50)) // token='@='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002323 )
2324 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002325 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002326 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _PyPegen_augoperator ( p , MatMult ) );
2327 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002328 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002329 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002330 return NULL;
2331 }
2332 goto done;
2333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002334 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002335 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002337 }
2338 { // '/='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002340 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002341 return NULL;
2342 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002343 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002344 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002345 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002346 (_literal = _PyPegen_expect_token(p, 39)) // token='/='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002347 )
2348 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002349 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002350 _res = _PyPegen_augoperator ( p , Div );
2351 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002352 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002354 return NULL;
2355 }
2356 goto done;
2357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002358 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002359 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002361 }
2362 { // '%='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002363 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002364 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002365 return NULL;
2366 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002367 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002368 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002369 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002370 (_literal = _PyPegen_expect_token(p, 40)) // token='%='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002371 )
2372 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002373 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002374 _res = _PyPegen_augoperator ( p , Mod );
2375 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002378 return NULL;
2379 }
2380 goto done;
2381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002382 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002383 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2384 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002385 }
2386 { // '&='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002388 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002389 return NULL;
2390 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002391 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002392 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002393 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002394 (_literal = _PyPegen_expect_token(p, 41)) // token='&='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002395 )
2396 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002397 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'&='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002398 _res = _PyPegen_augoperator ( p , BitAnd );
2399 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002402 return NULL;
2403 }
2404 goto done;
2405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002406 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002407 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'&='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002409 }
2410 { // '|='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002413 return NULL;
2414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002415 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002416 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002417 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002418 (_literal = _PyPegen_expect_token(p, 42)) // token='|='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002419 )
2420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002421 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'|='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002422 _res = _PyPegen_augoperator ( p , BitOr );
2423 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002424 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002425 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002426 return NULL;
2427 }
2428 goto done;
2429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002430 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002431 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2432 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'|='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002433 }
2434 { // '^='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002435 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002436 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002437 return NULL;
2438 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002439 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002440 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002441 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002442 (_literal = _PyPegen_expect_token(p, 43)) // token='^='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002443 )
2444 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002445 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'^='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002446 _res = _PyPegen_augoperator ( p , BitXor );
2447 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002448 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002450 return NULL;
2451 }
2452 goto done;
2453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002454 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002455 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2456 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'^='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002457 }
2458 { // '<<='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002460 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002461 return NULL;
2462 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002463 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002464 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002465 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002466 (_literal = _PyPegen_expect_token(p, 44)) // token='<<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002467 )
2468 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002469 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'<<='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002470 _res = _PyPegen_augoperator ( p , LShift );
2471 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002472 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002473 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002474 return NULL;
2475 }
2476 goto done;
2477 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002478 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002479 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2480 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<<='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002481 }
2482 { // '>>='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002483 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002484 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002485 return NULL;
2486 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002487 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002488 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002489 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002490 (_literal = _PyPegen_expect_token(p, 45)) // token='>>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002491 )
2492 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002493 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'>>='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002494 _res = _PyPegen_augoperator ( p , RShift );
2495 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002496 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002497 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002498 return NULL;
2499 }
2500 goto done;
2501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002502 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002503 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2504 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>>='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002505 }
2506 { // '**='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002509 return NULL;
2510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002511 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002512 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002513 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002514 (_literal = _PyPegen_expect_token(p, 46)) // token='**='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002515 )
2516 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002517 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002518 _res = _PyPegen_augoperator ( p , Pow );
2519 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002520 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002521 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002522 return NULL;
2523 }
2524 goto done;
2525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002526 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002527 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002529 }
2530 { // '//='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002531 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002532 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002533 return NULL;
2534 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002535 D(fprintf(stderr, "%*c> augassign[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002536 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002537 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002538 (_literal = _PyPegen_expect_token(p, 48)) // token='//='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002539 )
2540 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002541 D(fprintf(stderr, "%*c+ augassign[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002542 _res = _PyPegen_augoperator ( p , FloorDiv );
2543 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002544 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002546 return NULL;
2547 }
2548 goto done;
2549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002550 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002551 D(fprintf(stderr, "%*c%s augassign[%d-%d]: %s failed!\n", p->level, ' ',
2552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002554 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002555 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002556 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002557 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002558}
2559
2560// global_stmt: 'global' ','.NAME+
2561static stmt_ty
2562global_stmt_rule(Parser *p)
2563{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002564 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002567 return NULL;
2568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002569 stmt_ty _res = NULL;
2570 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002571 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2572 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002573 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002574 return NULL;
2575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002576 int _start_lineno = p->tokens[_mark]->lineno;
2577 UNUSED(_start_lineno); // Only used by EXTRA macro
2578 int _start_col_offset = p->tokens[_mark]->col_offset;
2579 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002580 { // 'global' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002582 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002583 return NULL;
2584 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002585 D(fprintf(stderr, "%*c> global_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002586 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002587 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002588 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002589 (_keyword = _PyPegen_expect_token(p, 508)) // token='global'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002591 (a = _gather_25_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002592 )
2593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002594 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 +01002595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2596 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002598 return NULL;
2599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002600 int _end_lineno = _token->end_lineno;
2601 UNUSED(_end_lineno); // Only used by EXTRA macro
2602 int _end_col_offset = _token->end_col_offset;
2603 UNUSED(_end_col_offset); // Only used by EXTRA macro
2604 _res = _Py_Global ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2605 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002606 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002608 return NULL;
2609 }
2610 goto done;
2611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002612 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002613 D(fprintf(stderr, "%*c%s global_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'global' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002616 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002617 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002618 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002619 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002620}
2621
2622// nonlocal_stmt: 'nonlocal' ','.NAME+
2623static stmt_ty
2624nonlocal_stmt_rule(Parser *p)
2625{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002626 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002628 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002629 return NULL;
2630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002631 stmt_ty _res = NULL;
2632 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002633 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2634 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002635 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002636 return NULL;
2637 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002638 int _start_lineno = p->tokens[_mark]->lineno;
2639 UNUSED(_start_lineno); // Only used by EXTRA macro
2640 int _start_col_offset = p->tokens[_mark]->col_offset;
2641 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002642 { // 'nonlocal' ','.NAME+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002644 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002645 return NULL;
2646 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002647 D(fprintf(stderr, "%*c> nonlocal_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002648 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002649 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002650 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002651 (_keyword = _PyPegen_expect_token(p, 509)) // token='nonlocal'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002652 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002653 (a = _gather_27_rule(p)) // ','.NAME+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002654 )
2655 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002656 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 +01002657 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2658 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002659 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002660 return NULL;
2661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002662 int _end_lineno = _token->end_lineno;
2663 UNUSED(_end_lineno); // Only used by EXTRA macro
2664 int _end_col_offset = _token->end_col_offset;
2665 UNUSED(_end_col_offset); // Only used by EXTRA macro
2666 _res = _Py_Nonlocal ( CHECK ( _PyPegen_map_names_to_ids ( p , a ) ) , EXTRA );
2667 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002668 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002670 return NULL;
2671 }
2672 goto done;
2673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002674 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002675 D(fprintf(stderr, "%*c%s nonlocal_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'nonlocal' ','.NAME+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002678 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002679 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002680 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002681 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002682}
2683
2684// yield_stmt: yield_expr
2685static stmt_ty
2686yield_stmt_rule(Parser *p)
2687{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002688 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002689 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002691 return NULL;
2692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002693 stmt_ty _res = NULL;
2694 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002695 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2696 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002698 return NULL;
2699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002700 int _start_lineno = p->tokens[_mark]->lineno;
2701 UNUSED(_start_lineno); // Only used by EXTRA macro
2702 int _start_col_offset = p->tokens[_mark]->col_offset;
2703 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002704 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002707 return NULL;
2708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002709 D(fprintf(stderr, "%*c> yield_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002710 expr_ty y;
2711 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002712 (y = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002713 )
2714 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002715 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 +01002716 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2717 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002719 return NULL;
2720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002721 int _end_lineno = _token->end_lineno;
2722 UNUSED(_end_lineno); // Only used by EXTRA macro
2723 int _end_col_offset = _token->end_col_offset;
2724 UNUSED(_end_col_offset); // Only used by EXTRA macro
2725 _res = _Py_Expr ( y , EXTRA );
2726 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002727 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002728 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002729 return NULL;
2730 }
2731 goto done;
2732 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002733 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002734 D(fprintf(stderr, "%*c%s yield_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2735 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002736 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002737 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002738 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002739 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002740 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002741}
2742
2743// assert_stmt: 'assert' expression [',' expression]
2744static stmt_ty
2745assert_stmt_rule(Parser *p)
2746{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002747 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002748 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002750 return NULL;
2751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002752 stmt_ty _res = NULL;
2753 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002754 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2755 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002756 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002757 return NULL;
2758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002759 int _start_lineno = p->tokens[_mark]->lineno;
2760 UNUSED(_start_lineno); // Only used by EXTRA macro
2761 int _start_col_offset = p->tokens[_mark]->col_offset;
2762 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002763 { // 'assert' expression [',' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002764 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002765 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002766 return NULL;
2767 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002768 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 +01002769 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002770 expr_ty a;
2771 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002772 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002773 (_keyword = _PyPegen_expect_token(p, 505)) // token='assert'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002774 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002775 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002776 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002777 (b = _tmp_29_rule(p), 1) // [',' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002778 )
2779 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002780 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 +01002781 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2782 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002784 return NULL;
2785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002786 int _end_lineno = _token->end_lineno;
2787 UNUSED(_end_lineno); // Only used by EXTRA macro
2788 int _end_col_offset = _token->end_col_offset;
2789 UNUSED(_end_col_offset); // Only used by EXTRA macro
2790 _res = _Py_Assert ( a , b , EXTRA );
2791 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002792 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002794 return NULL;
2795 }
2796 goto done;
2797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002798 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002799 D(fprintf(stderr, "%*c%s assert_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2800 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'assert' expression [',' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002801 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002802 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002803 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002804 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002805 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002806}
2807
2808// del_stmt: 'del' del_targets
2809static stmt_ty
2810del_stmt_rule(Parser *p)
2811{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002812 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002813 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002815 return NULL;
2816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002817 stmt_ty _res = NULL;
2818 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002819 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2820 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002822 return NULL;
2823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002824 int _start_lineno = p->tokens[_mark]->lineno;
2825 UNUSED(_start_lineno); // Only used by EXTRA macro
2826 int _start_col_offset = p->tokens[_mark]->col_offset;
2827 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002828 { // 'del' del_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002829 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002830 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002831 return NULL;
2832 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002833 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 +01002834 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002835 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002836 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002837 (_keyword = _PyPegen_expect_token(p, 503)) // token='del'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002838 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002839 (a = del_targets_rule(p)) // del_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002840 )
2841 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002842 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 +01002843 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2844 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002845 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002846 return NULL;
2847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002848 int _end_lineno = _token->end_lineno;
2849 UNUSED(_end_lineno); // Only used by EXTRA macro
2850 int _end_col_offset = _token->end_col_offset;
2851 UNUSED(_end_col_offset); // Only used by EXTRA macro
2852 _res = _Py_Delete ( a , EXTRA );
2853 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002854 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002855 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002856 return NULL;
2857 }
2858 goto done;
2859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002860 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002861 D(fprintf(stderr, "%*c%s del_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2862 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'del' del_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002863 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002864 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002865 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002866 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002867 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002868}
2869
2870// import_stmt: import_name | import_from
2871static stmt_ty
2872import_stmt_rule(Parser *p)
2873{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002874 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002875 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002876 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002877 return NULL;
2878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002879 stmt_ty _res = NULL;
2880 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002881 { // import_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002883 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002884 return NULL;
2885 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002886 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002887 stmt_ty import_name_var;
2888 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002889 (import_name_var = import_name_rule(p)) // import_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002890 )
2891 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002892 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 +01002893 _res = import_name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002894 goto done;
2895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002896 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002897 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2898 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002899 }
2900 { // import_from
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002901 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002902 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002903 return NULL;
2904 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002905 D(fprintf(stderr, "%*c> import_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002906 stmt_ty import_from_var;
2907 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01002908 (import_from_var = import_from_rule(p)) // import_from
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002909 )
2910 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002911 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 +01002912 _res = import_from_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002913 goto done;
2914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002915 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002916 D(fprintf(stderr, "%*c%s import_stmt[%d-%d]: %s failed!\n", p->level, ' ',
2917 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002919 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002920 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002921 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002922 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002923}
2924
2925// import_name: 'import' dotted_as_names
2926static stmt_ty
2927import_name_rule(Parser *p)
2928{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002929 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002930 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002932 return NULL;
2933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002934 stmt_ty _res = NULL;
2935 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002936 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
2937 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002939 return NULL;
2940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002941 int _start_lineno = p->tokens[_mark]->lineno;
2942 UNUSED(_start_lineno); // Only used by EXTRA macro
2943 int _start_col_offset = p->tokens[_mark]->col_offset;
2944 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002945 { // 'import' dotted_as_names
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002946 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002947 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03002948 return NULL;
2949 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002950 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 +01002951 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002952 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002953 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002954 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002955 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01002956 (a = dotted_as_names_rule(p)) // dotted_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002957 )
2958 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002959 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 +01002960 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
2961 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002962 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002963 return NULL;
2964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002965 int _end_lineno = _token->end_lineno;
2966 UNUSED(_end_lineno); // Only used by EXTRA macro
2967 int _end_col_offset = _token->end_col_offset;
2968 UNUSED(_end_col_offset); // Only used by EXTRA macro
2969 _res = _Py_Import ( a , EXTRA );
2970 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002971 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002972 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002973 return NULL;
2974 }
2975 goto done;
2976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002977 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002978 D(fprintf(stderr, "%*c%s import_name[%d-%d]: %s failed!\n", p->level, ' ',
2979 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import' dotted_as_names"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002981 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002982 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002983 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002984 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002985}
2986
2987// import_from:
2988// | 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
2989// | 'from' (('.' | '...'))+ 'import' import_from_targets
2990static stmt_ty
2991import_from_rule(Parser *p)
2992{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002993 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07002995 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01002996 return NULL;
2997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01002998 stmt_ty _res = NULL;
2999 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003000 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3001 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003002 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003003 return NULL;
3004 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003005 int _start_lineno = p->tokens[_mark]->lineno;
3006 UNUSED(_start_lineno); // Only used by EXTRA macro
3007 int _start_col_offset = p->tokens[_mark]->col_offset;
3008 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003009 { // 'from' (('.' | '...'))* dotted_name 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003010 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003011 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003012 return NULL;
3013 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003014 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 +01003015 Token * _keyword;
3016 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003017 asdl_seq * a;
3018 expr_ty b;
3019 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003020 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003021 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003022 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003023 (a = _loop0_30_rule(p)) // (('.' | '...'))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003024 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003025 (b = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003026 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003027 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003028 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003029 (c = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003030 )
3031 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003032 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 +01003033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3034 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003036 return NULL;
3037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003038 int _end_lineno = _token->end_lineno;
3039 UNUSED(_end_lineno); // Only used by EXTRA macro
3040 int _end_col_offset = _token->end_col_offset;
3041 UNUSED(_end_col_offset); // Only used by EXTRA macro
3042 _res = _Py_ImportFrom ( b -> v . Name . id , c , _PyPegen_seq_count_dots ( a ) , EXTRA );
3043 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003044 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003046 return NULL;
3047 }
3048 goto done;
3049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003050 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003051 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))* dotted_name 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003053 }
3054 { // 'from' (('.' | '...'))+ 'import' import_from_targets
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003056 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003057 return NULL;
3058 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003059 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 +01003060 Token * _keyword;
3061 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003062 asdl_seq * a;
3063 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003064 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003065 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003066 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003067 (a = _loop1_31_rule(p)) // (('.' | '...'))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003068 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003069 (_keyword_1 = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003070 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003071 (b = import_from_targets_rule(p)) // import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003072 )
3073 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003074 D(fprintf(stderr, "%*c+ import_from[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003075 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3076 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003077 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003078 return NULL;
3079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003080 int _end_lineno = _token->end_lineno;
3081 UNUSED(_end_lineno); // Only used by EXTRA macro
3082 int _end_col_offset = _token->end_col_offset;
3083 UNUSED(_end_col_offset); // Only used by EXTRA macro
3084 _res = _Py_ImportFrom ( NULL , b , _PyPegen_seq_count_dots ( a ) , EXTRA );
3085 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003086 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003087 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003088 return NULL;
3089 }
3090 goto done;
3091 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003092 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003093 D(fprintf(stderr, "%*c%s import_from[%d-%d]: %s failed!\n", p->level, ' ',
3094 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' (('.' | '...'))+ 'import' import_from_targets"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003096 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003097 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003098 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003099 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003100}
3101
Pablo Galindo275d7e12020-05-21 22:04:54 +01003102// import_from_targets:
3103// | '(' import_from_as_names ','? ')'
3104// | import_from_as_names !','
3105// | '*'
3106// | invalid_import_from_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003107static asdl_seq*
3108import_from_targets_rule(Parser *p)
3109{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003110 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003112 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003113 return NULL;
3114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003115 asdl_seq* _res = NULL;
3116 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003117 { // '(' import_from_as_names ','? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003118 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003119 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003120 return NULL;
3121 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003122 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 +01003123 Token * _literal;
3124 Token * _literal_1;
3125 void *_opt_var;
3126 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003127 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003128 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003129 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003130 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003131 (a = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003132 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003133 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003134 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003135 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003136 )
3137 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003138 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 +01003139 _res = a;
3140 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003141 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003142 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003143 return NULL;
3144 }
3145 goto done;
3146 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003147 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003148 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3149 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' import_from_as_names ','? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003150 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003151 { // import_from_as_names !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003153 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003154 return NULL;
3155 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003156 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 +01003157 asdl_seq* import_from_as_names_var;
3158 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003159 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
Pablo Galindo275d7e12020-05-21 22:04:54 +01003160 &&
3161 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003162 )
3163 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003164 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 +01003165 _res = import_from_as_names_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003166 goto done;
3167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003168 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003169 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3170 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003171 }
3172 { // '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003173 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003174 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003175 return NULL;
3176 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003177 D(fprintf(stderr, "%*c> import_from_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003178 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003179 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003180 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003181 )
3182 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003183 D(fprintf(stderr, "%*c+ import_from_targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003184 _res = _PyPegen_singleton_seq ( p , CHECK ( _PyPegen_alias_for_star ( p ) ) );
3185 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003186 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003188 return NULL;
3189 }
3190 goto done;
3191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003192 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003193 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3194 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003195 }
Pablo Galindo275d7e12020-05-21 22:04:54 +01003196 { // invalid_import_from_targets
3197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003198 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +01003199 return NULL;
3200 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003201 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 +01003202 void *invalid_import_from_targets_var;
3203 if (
3204 (invalid_import_from_targets_var = invalid_import_from_targets_rule(p)) // invalid_import_from_targets
3205 )
3206 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003207 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 +01003208 _res = invalid_import_from_targets_var;
3209 goto done;
3210 }
3211 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003212 D(fprintf(stderr, "%*c%s import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
3213 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_import_from_targets"));
Pablo Galindo275d7e12020-05-21 22:04:54 +01003214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003215 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003216 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003217 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003218 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003219}
3220
3221// import_from_as_names: ','.import_from_as_name+
3222static asdl_seq*
3223import_from_as_names_rule(Parser *p)
3224{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003225 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003226 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003228 return NULL;
3229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003230 asdl_seq* _res = NULL;
3231 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003232 { // ','.import_from_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003233 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003234 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003235 return NULL;
3236 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003237 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 +01003238 asdl_seq * a;
3239 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003240 (a = _gather_32_rule(p)) // ','.import_from_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003241 )
3242 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003243 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 +01003244 _res = a;
3245 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003246 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003247 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003248 return NULL;
3249 }
3250 goto done;
3251 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003252 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003253 D(fprintf(stderr, "%*c%s import_from_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3254 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.import_from_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003256 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003257 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003258 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003259 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003260}
3261
3262// import_from_as_name: NAME ['as' NAME]
3263static alias_ty
3264import_from_as_name_rule(Parser *p)
3265{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003266 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003267 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003268 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003269 return NULL;
3270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003271 alias_ty _res = NULL;
3272 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003273 { // NAME ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003274 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003275 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003276 return NULL;
3277 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003278 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 +01003279 expr_ty a;
3280 void *b;
3281 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003282 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003283 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003284 (b = _tmp_34_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003285 )
3286 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003287 D(fprintf(stderr, "%*c+ import_from_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003288 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3289 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003290 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003291 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003292 return NULL;
3293 }
3294 goto done;
3295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003297 D(fprintf(stderr, "%*c%s import_from_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003300 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003301 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003302 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003303 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003304}
3305
3306// dotted_as_names: ','.dotted_as_name+
3307static asdl_seq*
3308dotted_as_names_rule(Parser *p)
3309{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003310 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003311 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003312 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003313 return NULL;
3314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003315 asdl_seq* _res = NULL;
3316 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003317 { // ','.dotted_as_name+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003318 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003319 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003320 return NULL;
3321 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003322 D(fprintf(stderr, "%*c> dotted_as_names[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003323 asdl_seq * a;
3324 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003325 (a = _gather_35_rule(p)) // ','.dotted_as_name+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003326 )
3327 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003328 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 +01003329 _res = a;
3330 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003331 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003332 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003333 return NULL;
3334 }
3335 goto done;
3336 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003337 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003338 D(fprintf(stderr, "%*c%s dotted_as_names[%d-%d]: %s failed!\n", p->level, ' ',
3339 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.dotted_as_name+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003340 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003341 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003342 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003343 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003344 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003345}
3346
3347// dotted_as_name: dotted_name ['as' NAME]
3348static alias_ty
3349dotted_as_name_rule(Parser *p)
3350{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003351 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003354 return NULL;
3355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003356 alias_ty _res = NULL;
3357 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003358 { // dotted_name ['as' NAME]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003359 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003360 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003361 return NULL;
3362 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003363 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 +01003364 expr_ty a;
3365 void *b;
3366 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003367 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003368 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003369 (b = _tmp_37_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003370 )
3371 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003372 D(fprintf(stderr, "%*c+ dotted_as_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003373 _res = _Py_alias ( a -> v . Name . id , ( b ) ? ( ( expr_ty ) b ) -> v . Name . id : NULL , p -> arena );
3374 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003375 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003377 return NULL;
3378 }
3379 goto done;
3380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003381 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003382 D(fprintf(stderr, "%*c%s dotted_as_name[%d-%d]: %s failed!\n", p->level, ' ',
3383 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name ['as' NAME]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003384 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003385 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003386 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003387 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003388 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003389}
3390
3391// Left-recursive
3392// dotted_name: dotted_name '.' NAME | NAME
3393static expr_ty dotted_name_raw(Parser *);
3394static expr_ty
3395dotted_name_rule(Parser *p)
3396{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003397 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003398 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003399 if (_PyPegen_is_memoized(p, dotted_name_type, &_res)) {
3400 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003401 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003403 int _mark = p->mark;
3404 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003405 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003406 int tmpvar_0 = _PyPegen_update_memo(p, _mark, dotted_name_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003407 if (tmpvar_0) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003408 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003409 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003410 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003411 p->mark = _mark;
3412 void *_raw = dotted_name_raw(p);
3413 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003414 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003415 _resmark = p->mark;
3416 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003418 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003419 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003420 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003421}
3422static expr_ty
3423dotted_name_raw(Parser *p)
3424{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003425 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003426 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003427 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003428 return NULL;
3429 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003430 expr_ty _res = NULL;
3431 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003432 { // dotted_name '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003433 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003434 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003435 return NULL;
3436 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003437 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 +01003438 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003439 expr_ty a;
3440 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003441 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003442 (a = dotted_name_rule(p)) // dotted_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003443 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003444 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003445 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003446 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003447 )
3448 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003449 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 +01003450 _res = _PyPegen_join_names_with_dot ( p , a , b );
3451 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003452 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003454 return NULL;
3455 }
3456 goto done;
3457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003458 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003459 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003461 }
3462 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003463 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003464 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003465 return NULL;
3466 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003467 D(fprintf(stderr, "%*c> dotted_name[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003468 expr_ty name_var;
3469 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003470 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003471 )
3472 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003473 D(fprintf(stderr, "%*c+ dotted_name[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003474 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003475 goto done;
3476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003477 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003478 D(fprintf(stderr, "%*c%s dotted_name[%d-%d]: %s failed!\n", p->level, ' ',
3479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003480 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003481 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003482 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003483 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003484 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003485}
3486
3487// if_stmt:
3488// | 'if' named_expression ':' block elif_stmt
3489// | 'if' named_expression ':' block else_block?
3490static stmt_ty
3491if_stmt_rule(Parser *p)
3492{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003493 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003494 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003496 return NULL;
3497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003498 stmt_ty _res = NULL;
3499 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003500 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3501 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003503 return NULL;
3504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003505 int _start_lineno = p->tokens[_mark]->lineno;
3506 UNUSED(_start_lineno); // Only used by EXTRA macro
3507 int _start_col_offset = p->tokens[_mark]->col_offset;
3508 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003509 { // 'if' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003510 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003511 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003512 return NULL;
3513 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003514 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 +01003515 Token * _keyword;
3516 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003517 expr_ty a;
3518 asdl_seq* b;
3519 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003520 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003521 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003522 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003523 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003524 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003525 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003526 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003527 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003528 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003529 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003530 )
3531 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003532 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 +01003533 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3534 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003535 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003536 return NULL;
3537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003538 int _end_lineno = _token->end_lineno;
3539 UNUSED(_end_lineno); // Only used by EXTRA macro
3540 int _end_col_offset = _token->end_col_offset;
3541 UNUSED(_end_col_offset); // Only used by EXTRA macro
3542 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3543 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003544 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003546 return NULL;
3547 }
3548 goto done;
3549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003550 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003551 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3552 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003553 }
3554 { // 'if' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003556 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003557 return NULL;
3558 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003559 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 +01003560 Token * _keyword;
3561 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003562 expr_ty a;
3563 asdl_seq* b;
3564 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003565 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003566 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003567 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003568 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003569 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003570 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003571 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003572 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003573 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003574 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003575 )
3576 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003577 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 +01003578 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3579 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003581 return NULL;
3582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003583 int _end_lineno = _token->end_lineno;
3584 UNUSED(_end_lineno); // Only used by EXTRA macro
3585 int _end_col_offset = _token->end_col_offset;
3586 UNUSED(_end_col_offset); // Only used by EXTRA macro
3587 _res = _Py_If ( a , b , c , EXTRA );
3588 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003589 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003591 return NULL;
3592 }
3593 goto done;
3594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003595 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003596 D(fprintf(stderr, "%*c%s if_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003599 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003600 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003601 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003602 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003603}
3604
3605// elif_stmt:
3606// | 'elif' named_expression ':' block elif_stmt
3607// | 'elif' named_expression ':' block else_block?
3608static stmt_ty
3609elif_stmt_rule(Parser *p)
3610{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003611 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003613 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003614 return NULL;
3615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003616 stmt_ty _res = NULL;
3617 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003618 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3619 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003621 return NULL;
3622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003623 int _start_lineno = p->tokens[_mark]->lineno;
3624 UNUSED(_start_lineno); // Only used by EXTRA macro
3625 int _start_col_offset = p->tokens[_mark]->col_offset;
3626 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003627 { // 'elif' named_expression ':' block elif_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003628 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003629 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003630 return NULL;
3631 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003632 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 +01003633 Token * _keyword;
3634 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003635 expr_ty a;
3636 asdl_seq* b;
3637 stmt_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003638 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003639 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003640 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003641 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003642 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003643 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003644 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003645 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003646 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003647 (c = elif_stmt_rule(p)) // elif_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003648 )
3649 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003650 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 +01003651 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3652 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003653 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003654 return NULL;
3655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003656 int _end_lineno = _token->end_lineno;
3657 UNUSED(_end_lineno); // Only used by EXTRA macro
3658 int _end_col_offset = _token->end_col_offset;
3659 UNUSED(_end_col_offset); // Only used by EXTRA macro
3660 _res = _Py_If ( a , b , CHECK ( _PyPegen_singleton_seq ( p , c ) ) , EXTRA );
3661 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003662 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003663 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003664 return NULL;
3665 }
3666 goto done;
3667 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003668 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003669 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3670 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block elif_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003671 }
3672 { // 'elif' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003673 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003674 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003675 return NULL;
3676 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003677 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 +01003678 Token * _keyword;
3679 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003680 expr_ty a;
3681 asdl_seq* b;
3682 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003683 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003684 (_keyword = _PyPegen_expect_token(p, 515)) // token='elif'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003685 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003686 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003687 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003688 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003689 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003690 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003691 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003692 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003693 )
3694 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003695 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 +01003696 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3697 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003698 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003699 return NULL;
3700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003701 int _end_lineno = _token->end_lineno;
3702 UNUSED(_end_lineno); // Only used by EXTRA macro
3703 int _end_col_offset = _token->end_col_offset;
3704 UNUSED(_end_col_offset); // Only used by EXTRA macro
3705 _res = _Py_If ( a , b , c , EXTRA );
3706 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003707 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003709 return NULL;
3710 }
3711 goto done;
3712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003713 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003714 D(fprintf(stderr, "%*c%s elif_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3715 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'elif' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003717 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003718 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003719 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003720 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003721}
3722
3723// else_block: 'else' ':' block
3724static asdl_seq*
3725else_block_rule(Parser *p)
3726{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003727 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003729 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003730 return NULL;
3731 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003732 asdl_seq* _res = NULL;
3733 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003734 { // 'else' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003737 return NULL;
3738 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003739 D(fprintf(stderr, "%*c> else_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003740 Token * _keyword;
3741 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003742 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003743 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003744 (_keyword = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003745 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003746 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003747 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003748 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003749 )
3750 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003751 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 +01003752 _res = b;
3753 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003754 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003755 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003756 return NULL;
3757 }
3758 goto done;
3759 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003760 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003761 D(fprintf(stderr, "%*c%s else_block[%d-%d]: %s failed!\n", p->level, ' ',
3762 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003764 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003765 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003766 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003767 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003768}
3769
3770// while_stmt: 'while' named_expression ':' block else_block?
3771static stmt_ty
3772while_stmt_rule(Parser *p)
3773{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003774 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003777 return NULL;
3778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003779 stmt_ty _res = NULL;
3780 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003781 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3782 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003783 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003784 return NULL;
3785 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003786 int _start_lineno = p->tokens[_mark]->lineno;
3787 UNUSED(_start_lineno); // Only used by EXTRA macro
3788 int _start_col_offset = p->tokens[_mark]->col_offset;
3789 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003790 { // 'while' named_expression ':' block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003791 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003792 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003793 return NULL;
3794 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003795 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 +01003796 Token * _keyword;
3797 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003798 expr_ty a;
3799 asdl_seq* b;
3800 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003801 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003802 (_keyword = _PyPegen_expect_token(p, 512)) // token='while'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003804 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003805 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003806 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003807 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003808 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003809 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003810 (c = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003811 )
3812 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003813 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 +01003814 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3815 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003816 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003817 return NULL;
3818 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003819 int _end_lineno = _token->end_lineno;
3820 UNUSED(_end_lineno); // Only used by EXTRA macro
3821 int _end_col_offset = _token->end_col_offset;
3822 UNUSED(_end_col_offset); // Only used by EXTRA macro
3823 _res = _Py_While ( a , b , c , EXTRA );
3824 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003825 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003826 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003827 return NULL;
3828 }
3829 goto done;
3830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003831 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003832 D(fprintf(stderr, "%*c%s while_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'while' named_expression ':' block else_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003835 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003836 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003838 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003839}
3840
Guido van Rossumc001c092020-04-30 12:12:19 -07003841// for_stmt:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003842// | 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
3843// | ASYNC 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003844static stmt_ty
3845for_stmt_rule(Parser *p)
3846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003847 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003850 return NULL;
3851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003852 stmt_ty _res = NULL;
3853 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003854 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3855 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003856 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003857 return NULL;
3858 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003859 int _start_lineno = p->tokens[_mark]->lineno;
3860 UNUSED(_start_lineno); // Only used by EXTRA macro
3861 int _start_col_offset = p->tokens[_mark]->col_offset;
3862 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003863 { // 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003864 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003865 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003866 return NULL;
3867 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003868 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 +01003869 Token * _keyword;
3870 Token * _keyword_1;
3871 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003872 asdl_seq* b;
3873 void *el;
3874 expr_ty ex;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003875 expr_ty t;
Guido van Rossumc001c092020-04-30 12:12:19 -07003876 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003877 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003878 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003879 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003880 (t = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003881 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003882 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003884 (ex = star_expressions_rule(p)) // star_expressions
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003885 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003886 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003887 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003888 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003890 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003891 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003892 (el = else_block_rule(p), 1) // else_block?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003893 )
3894 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003895 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 +01003896 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3897 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003898 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003899 return NULL;
3900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003901 int _end_lineno = _token->end_lineno;
3902 UNUSED(_end_lineno); // Only used by EXTRA macro
3903 int _end_col_offset = _token->end_col_offset;
3904 UNUSED(_end_col_offset); // Only used by EXTRA macro
3905 _res = _Py_For ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
3906 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003907 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003908 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003909 return NULL;
3910 }
3911 goto done;
3912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003914 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3915 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 +03003916 }
3917 { // ASYNC 'for' star_targets 'in' star_expressions ':' TYPE_COMMENT? block else_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03003920 return NULL;
3921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003922 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 +01003923 Token * _keyword;
3924 Token * _keyword_1;
3925 Token * _literal;
Pablo Galindob796b3f2020-05-01 12:32:26 +01003926 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003927 asdl_seq* b;
3928 void *el;
3929 expr_ty ex;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003930 expr_ty t;
3931 void *tc;
3932 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01003933 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003934 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003935 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003936 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003937 (t = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003938 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003939 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003940 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003941 (ex = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003942 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003943 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003944 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003945 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07003946 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003947 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003948 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01003949 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003950 )
3951 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003952 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 +01003953 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
3954 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003955 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003956 return NULL;
3957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003958 int _end_lineno = _token->end_lineno;
3959 UNUSED(_end_lineno); // Only used by EXTRA macro
3960 int _end_col_offset = _token->end_col_offset;
3961 UNUSED(_end_col_offset); // Only used by EXTRA macro
3962 _res = CHECK_VERSION ( 5 , "Async for loops are" , _Py_AsyncFor ( t , ex , b , el , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
3963 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003964 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003965 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003966 return NULL;
3967 }
3968 goto done;
3969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003970 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003971 D(fprintf(stderr, "%*c%s for_stmt[%d-%d]: %s failed!\n", p->level, ' ',
3972 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 +01003973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003974 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003975 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003976 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003977 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003978}
3979
3980// with_stmt:
Pablo Galindo99db2a12020-05-06 22:54:34 +01003981// | 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003982// | 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindo99db2a12020-05-06 22:54:34 +01003983// | ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03003984// | ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003985static stmt_ty
3986with_stmt_rule(Parser *p)
3987{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003988 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003991 return NULL;
3992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01003993 stmt_ty _res = NULL;
3994 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003995 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
3996 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07003997 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01003998 return NULL;
3999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004000 int _start_lineno = p->tokens[_mark]->lineno;
4001 UNUSED(_start_lineno); // Only used by EXTRA macro
4002 int _start_col_offset = p->tokens[_mark]->col_offset;
4003 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindo99db2a12020-05-06 22:54:34 +01004004 { // 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004005 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004006 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004007 return NULL;
4008 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004009 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 +01004010 Token * _keyword;
4011 Token * _literal;
4012 Token * _literal_1;
4013 Token * _literal_2;
4014 void *_opt_var;
4015 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004016 asdl_seq * a;
4017 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004018 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004019 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004020 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004021 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004022 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004023 (a = _gather_38_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004024 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004025 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004026 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004027 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004028 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004029 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004030 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004031 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004032 )
4033 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004034 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 +01004035 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4036 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004038 return NULL;
4039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004040 int _end_lineno = _token->end_lineno;
4041 UNUSED(_end_lineno); // Only used by EXTRA macro
4042 int _end_col_offset = _token->end_col_offset;
4043 UNUSED(_end_col_offset); // Only used by EXTRA macro
4044 _res = _Py_With ( a , b , NULL , EXTRA );
4045 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004046 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004047 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004048 return NULL;
4049 }
4050 goto done;
4051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004052 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004053 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4054 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' '(' ','.with_item+ ','? ')' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004055 }
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004056 { // 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004057 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004058 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004059 return NULL;
4060 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004061 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 +01004062 Token * _keyword;
4063 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004064 asdl_seq * a;
4065 asdl_seq* b;
Guido van Rossumc001c092020-04-30 12:12:19 -07004066 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004067 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004068 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004069 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004070 (a = _gather_40_rule(p)) // ','.with_item+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004071 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004072 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004073 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004074 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07004075 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004076 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004077 )
4078 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004079 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 +01004080 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4081 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004082 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004083 return NULL;
4084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004085 int _end_lineno = _token->end_lineno;
4086 UNUSED(_end_lineno); // Only used by EXTRA macro
4087 int _end_col_offset = _token->end_col_offset;
4088 UNUSED(_end_col_offset); // Only used by EXTRA macro
4089 _res = _Py_With ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4090 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004091 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004092 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004093 return NULL;
4094 }
4095 goto done;
4096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004097 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004098 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4099 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004100 }
Pablo Galindo99db2a12020-05-06 22:54:34 +01004101 { // ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004102 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004103 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004104 return NULL;
4105 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004106 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 +01004107 Token * _keyword;
4108 Token * _literal;
4109 Token * _literal_1;
4110 Token * _literal_2;
4111 void *_opt_var;
4112 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004113 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004114 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004115 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004116 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004117 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004118 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004119 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004120 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004121 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004122 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004123 (a = _gather_42_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004124 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004125 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindo99db2a12020-05-06 22:54:34 +01004126 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004127 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004128 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004129 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004130 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004131 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004132 )
4133 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004134 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 +01004135 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4136 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004137 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004138 return NULL;
4139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004140 int _end_lineno = _token->end_lineno;
4141 UNUSED(_end_lineno); // Only used by EXTRA macro
4142 int _end_col_offset = _token->end_col_offset;
4143 UNUSED(_end_col_offset); // Only used by EXTRA macro
4144 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NULL , EXTRA ) );
4145 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004146 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004147 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004148 return NULL;
4149 }
4150 goto done;
4151 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004152 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004153 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4154 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' '(' ','.with_item+ ','? ')' ':' block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004155 }
4156 { // ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004157 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004158 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004159 return NULL;
4160 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004161 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 +01004162 Token * _keyword;
4163 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004164 asdl_seq * a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004165 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004166 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004167 void *tc;
4168 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004169 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004170 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004171 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004172 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004173 (a = _gather_44_rule(p)) // ','.with_item+
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004174 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004175 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004176 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004177 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004178 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004179 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004180 )
4181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004182 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 +01004183 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4184 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004185 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004186 return NULL;
4187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004188 int _end_lineno = _token->end_lineno;
4189 UNUSED(_end_lineno); // Only used by EXTRA macro
4190 int _end_col_offset = _token->end_col_offset;
4191 UNUSED(_end_col_offset); // Only used by EXTRA macro
4192 _res = CHECK_VERSION ( 5 , "Async with statements are" , _Py_AsyncWith ( a , b , NEW_TYPE_COMMENT ( p , tc ) , EXTRA ) );
4193 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004194 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004195 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004196 return NULL;
4197 }
4198 goto done;
4199 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004200 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004201 D(fprintf(stderr, "%*c%s with_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4202 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'with' ','.with_item+ ':' TYPE_COMMENT? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004203 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004204 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004205 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004206 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004207 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004208}
4209
4210// with_item: expression ['as' target]
4211static withitem_ty
4212with_item_rule(Parser *p)
4213{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004214 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004215 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004216 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004217 return NULL;
4218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004219 withitem_ty _res = NULL;
4220 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004221 { // expression ['as' target]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004222 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004223 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004224 return NULL;
4225 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004226 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 +01004227 expr_ty e;
4228 void *o;
4229 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004230 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004231 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004232 (o = _tmp_46_rule(p), 1) // ['as' target]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004233 )
4234 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004235 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 +01004236 _res = _Py_withitem ( e , o , p -> arena );
4237 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004238 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004240 return NULL;
4241 }
4242 goto done;
4243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004245 D(fprintf(stderr, "%*c%s with_item[%d-%d]: %s failed!\n", p->level, ' ',
4246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' target]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004248 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004249 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004250 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004251 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004252}
4253
4254// try_stmt:
4255// | 'try' ':' block finally_block
4256// | 'try' ':' block except_block+ else_block? finally_block?
4257static stmt_ty
4258try_stmt_rule(Parser *p)
4259{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004260 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004261 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004262 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004263 return NULL;
4264 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004265 stmt_ty _res = NULL;
4266 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004267 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4268 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004269 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004270 return NULL;
4271 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004272 int _start_lineno = p->tokens[_mark]->lineno;
4273 UNUSED(_start_lineno); // Only used by EXTRA macro
4274 int _start_col_offset = p->tokens[_mark]->col_offset;
4275 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004276 { // 'try' ':' block finally_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004277 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004278 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004279 return NULL;
4280 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004281 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 +01004282 Token * _keyword;
4283 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004284 asdl_seq* b;
4285 asdl_seq* f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004286 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004287 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004288 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004289 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004290 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004291 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004292 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004293 (f = finally_block_rule(p)) // finally_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004294 )
4295 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004296 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 +01004297 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4298 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004299 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004300 return NULL;
4301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004302 int _end_lineno = _token->end_lineno;
4303 UNUSED(_end_lineno); // Only used by EXTRA macro
4304 int _end_col_offset = _token->end_col_offset;
4305 UNUSED(_end_col_offset); // Only used by EXTRA macro
4306 _res = _Py_Try ( b , NULL , NULL , f , EXTRA );
4307 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004308 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004309 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004310 return NULL;
4311 }
4312 goto done;
4313 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004314 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004315 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4316 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block finally_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004317 }
4318 { // 'try' ':' block except_block+ else_block? finally_block?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004319 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004320 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004321 return NULL;
4322 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004323 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 +01004324 Token * _keyword;
4325 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004326 asdl_seq* b;
4327 void *el;
4328 asdl_seq * ex;
4329 void *f;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004330 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004331 (_keyword = _PyPegen_expect_token(p, 511)) // token='try'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004332 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004333 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004334 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004335 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004336 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004337 (ex = _loop1_47_rule(p)) // except_block+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004338 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004339 (el = else_block_rule(p), 1) // else_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004340 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004341 (f = finally_block_rule(p), 1) // finally_block?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004342 )
4343 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004344 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 +01004345 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4346 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004347 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004348 return NULL;
4349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004350 int _end_lineno = _token->end_lineno;
4351 UNUSED(_end_lineno); // Only used by EXTRA macro
4352 int _end_col_offset = _token->end_col_offset;
4353 UNUSED(_end_col_offset); // Only used by EXTRA macro
4354 _res = _Py_Try ( b , ex , el , f , EXTRA );
4355 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004356 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004357 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004358 return NULL;
4359 }
4360 goto done;
4361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004362 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004363 D(fprintf(stderr, "%*c%s try_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4364 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'try' ':' block except_block+ else_block? finally_block?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004365 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004366 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004367 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004368 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004369 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004370}
4371
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004372// except_block: 'except' expression ['as' NAME] ':' block | 'except' ':' block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004373static excepthandler_ty
4374except_block_rule(Parser *p)
4375{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004376 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004377 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004379 return NULL;
4380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004381 excepthandler_ty _res = NULL;
4382 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004383 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4384 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004386 return NULL;
4387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004388 int _start_lineno = p->tokens[_mark]->lineno;
4389 UNUSED(_start_lineno); // Only used by EXTRA macro
4390 int _start_col_offset = p->tokens[_mark]->col_offset;
4391 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004392 { // 'except' expression ['as' NAME] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004394 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004395 return NULL;
4396 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004397 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 +01004398 Token * _keyword;
4399 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004400 asdl_seq* b;
4401 expr_ty e;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004402 void *t;
4403 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004404 (_keyword = _PyPegen_expect_token(p, 520)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004405 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004406 (e = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004407 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +03004408 (t = _tmp_48_rule(p), 1) // ['as' NAME]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004409 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004410 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004411 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004412 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004413 )
4414 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004415 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 +01004416 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4417 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004418 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004419 return NULL;
4420 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004421 int _end_lineno = _token->end_lineno;
4422 UNUSED(_end_lineno); // Only used by EXTRA macro
4423 int _end_col_offset = _token->end_col_offset;
4424 UNUSED(_end_col_offset); // Only used by EXTRA macro
4425 _res = _Py_ExceptHandler ( e , ( t ) ? ( ( expr_ty ) t ) -> v . Name . id : NULL , b , EXTRA );
4426 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004427 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004428 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004429 return NULL;
4430 }
4431 goto done;
4432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004433 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004434 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4435 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' expression ['as' NAME] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004436 }
4437 { // 'except' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004440 return NULL;
4441 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004442 D(fprintf(stderr, "%*c> except_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004443 Token * _keyword;
4444 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004445 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004446 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004447 (_keyword = _PyPegen_expect_token(p, 520)) // token='except'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004448 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004449 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004450 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004451 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004452 )
4453 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004454 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 +01004455 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4456 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004457 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004458 return NULL;
4459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004460 int _end_lineno = _token->end_lineno;
4461 UNUSED(_end_lineno); // Only used by EXTRA macro
4462 int _end_col_offset = _token->end_col_offset;
4463 UNUSED(_end_col_offset); // Only used by EXTRA macro
4464 _res = _Py_ExceptHandler ( NULL , NULL , b , EXTRA );
4465 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004466 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004468 return NULL;
4469 }
4470 goto done;
4471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004472 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004473 D(fprintf(stderr, "%*c%s except_block[%d-%d]: %s failed!\n", p->level, ' ',
4474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004476 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004477 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004478 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004479 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004480}
4481
4482// finally_block: 'finally' ':' block
4483static asdl_seq*
4484finally_block_rule(Parser *p)
4485{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004486 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004488 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004489 return NULL;
4490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004491 asdl_seq* _res = NULL;
4492 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004493 { // 'finally' ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004494 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004495 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004496 return NULL;
4497 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004498 D(fprintf(stderr, "%*c> finally_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally' ':' block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004499 Token * _keyword;
4500 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004501 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004502 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004503 (_keyword = _PyPegen_expect_token(p, 521)) // token='finally'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004505 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004506 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004507 (a = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004508 )
4509 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004510 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 +01004511 _res = a;
4512 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004513 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004515 return NULL;
4516 }
4517 goto done;
4518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004519 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004520 D(fprintf(stderr, "%*c%s finally_block[%d-%d]: %s failed!\n", p->level, ' ',
4521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally' ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004523 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004524 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004525 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004526 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004527}
4528
4529// return_stmt: 'return' star_expressions?
4530static stmt_ty
4531return_stmt_rule(Parser *p)
4532{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004533 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004534 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004535 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004536 return NULL;
4537 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004538 stmt_ty _res = NULL;
4539 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004540 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4541 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004542 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004543 return NULL;
4544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004545 int _start_lineno = p->tokens[_mark]->lineno;
4546 UNUSED(_start_lineno); // Only used by EXTRA macro
4547 int _start_col_offset = p->tokens[_mark]->col_offset;
4548 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004549 { // 'return' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004551 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004552 return NULL;
4553 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004554 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 +01004555 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004556 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004557 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004558 (_keyword = _PyPegen_expect_token(p, 500)) // token='return'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004559 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004560 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004561 )
4562 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004563 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 +01004564 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4565 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004566 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004567 return NULL;
4568 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004569 int _end_lineno = _token->end_lineno;
4570 UNUSED(_end_lineno); // Only used by EXTRA macro
4571 int _end_col_offset = _token->end_col_offset;
4572 UNUSED(_end_col_offset); // Only used by EXTRA macro
4573 _res = _Py_Return ( a , EXTRA );
4574 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004575 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004576 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004577 return NULL;
4578 }
4579 goto done;
4580 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004581 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004582 D(fprintf(stderr, "%*c%s return_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4583 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'return' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004584 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004585 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004586 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004587 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004588 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004589}
4590
4591// raise_stmt: 'raise' expression ['from' expression] | 'raise'
4592static stmt_ty
4593raise_stmt_rule(Parser *p)
4594{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004595 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004596 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004598 return NULL;
4599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004600 stmt_ty _res = NULL;
4601 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004602 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4603 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004604 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004605 return NULL;
4606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004607 int _start_lineno = p->tokens[_mark]->lineno;
4608 UNUSED(_start_lineno); // Only used by EXTRA macro
4609 int _start_col_offset = p->tokens[_mark]->col_offset;
4610 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004611 { // 'raise' expression ['from' expression]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004612 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004613 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004614 return NULL;
4615 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004616 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 +01004617 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004618 expr_ty a;
4619 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004620 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004621 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004622 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004623 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004624 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004625 (b = _tmp_49_rule(p), 1) // ['from' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004626 )
4627 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004628 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 +01004629 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4630 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004632 return NULL;
4633 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004634 int _end_lineno = _token->end_lineno;
4635 UNUSED(_end_lineno); // Only used by EXTRA macro
4636 int _end_col_offset = _token->end_col_offset;
4637 UNUSED(_end_col_offset); // Only used by EXTRA macro
4638 _res = _Py_Raise ( a , b , EXTRA );
4639 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004640 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004641 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004642 return NULL;
4643 }
4644 goto done;
4645 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004646 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004647 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4648 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise' expression ['from' expression]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004649 }
4650 { // 'raise'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004651 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004652 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004653 return NULL;
4654 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004655 D(fprintf(stderr, "%*c> raise_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004656 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004657 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004658 (_keyword = _PyPegen_expect_token(p, 501)) // token='raise'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004659 )
4660 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004661 D(fprintf(stderr, "%*c+ raise_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'raise'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4663 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004665 return NULL;
4666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004667 int _end_lineno = _token->end_lineno;
4668 UNUSED(_end_lineno); // Only used by EXTRA macro
4669 int _end_col_offset = _token->end_col_offset;
4670 UNUSED(_end_col_offset); // Only used by EXTRA macro
4671 _res = _Py_Raise ( NULL , NULL , EXTRA );
4672 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004673 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004675 return NULL;
4676 }
4677 goto done;
4678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004680 D(fprintf(stderr, "%*c%s raise_stmt[%d-%d]: %s failed!\n", p->level, ' ',
4681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'raise'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004683 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004684 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004685 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004686 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004687}
4688
4689// function_def: decorators function_def_raw | function_def_raw
4690static stmt_ty
4691function_def_rule(Parser *p)
4692{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004693 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004694 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004695 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004696 return NULL;
4697 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004698 stmt_ty _res = NULL;
4699 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004700 { // decorators function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004701 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004702 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004703 return NULL;
4704 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004705 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 +01004706 asdl_seq* d;
4707 stmt_ty f;
4708 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004709 (d = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004710 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004711 (f = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004712 )
4713 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004714 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 +01004715 _res = _PyPegen_function_def_decorators ( p , d , f );
4716 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004719 return NULL;
4720 }
4721 goto done;
4722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004723 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004724 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004726 }
4727 { // function_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004730 return NULL;
4731 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004732 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 +01004733 stmt_ty function_def_raw_var;
4734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004735 (function_def_raw_var = function_def_raw_rule(p)) // function_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004736 )
4737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004738 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 +01004739 _res = function_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004740 goto done;
4741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004742 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004743 D(fprintf(stderr, "%*c%s function_def[%d-%d]: %s failed!\n", p->level, ' ',
4744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "function_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004746 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004747 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004748 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004749 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004750}
4751
Guido van Rossumc001c092020-04-30 12:12:19 -07004752// function_def_raw:
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004753// | 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
4754// | ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004755static stmt_ty
4756function_def_raw_rule(Parser *p)
4757{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004758 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004759 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004760 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004761 return NULL;
4762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004763 stmt_ty _res = NULL;
4764 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004765 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
4766 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004767 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004768 return NULL;
4769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004770 int _start_lineno = p->tokens[_mark]->lineno;
4771 UNUSED(_start_lineno); // Only used by EXTRA macro
4772 int _start_col_offset = p->tokens[_mark]->col_offset;
4773 UNUSED(_start_col_offset); // Only used by EXTRA macro
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004774 { // 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004775 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004776 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004777 return NULL;
4778 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004779 D(fprintf(stderr, "%*c> 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 +01004780 Token * _keyword;
4781 Token * _literal;
4782 Token * _literal_1;
4783 Token * _literal_2;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004784 void *a;
4785 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004786 expr_ty n;
4787 void *params;
Guido van Rossumc001c092020-04-30 12:12:19 -07004788 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004789 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004790 (_keyword = _PyPegen_expect_token(p, 522)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004791 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004792 (n = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004793 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004794 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004795 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004796 (params = params_rule(p), 1) // params?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004797 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004798 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004799 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004800 (a = _tmp_50_rule(p), 1) // ['->' expression]
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004801 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004802 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004803 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004804 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Guido van Rossumc001c092020-04-30 12:12:19 -07004805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004806 (b = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004807 )
4808 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004809 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 +01004810 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4811 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004812 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004813 return NULL;
4814 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004815 int _end_lineno = _token->end_lineno;
4816 UNUSED(_end_lineno); // Only used by EXTRA macro
4817 int _end_col_offset = _token->end_col_offset;
4818 UNUSED(_end_col_offset); // Only used by EXTRA macro
4819 _res = _Py_FunctionDef ( n -> v . Name . id , ( params ) ? params : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , NULL , a , NEW_TYPE_COMMENT ( p , tc ) , EXTRA );
4820 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004821 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004822 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004823 return NULL;
4824 }
4825 goto done;
4826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004827 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004828 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4829 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004830 }
4831 { // ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004832 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004833 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004834 return NULL;
4835 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004836 D(fprintf(stderr, "%*c> function_def_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 +01004837 Token * _keyword;
4838 Token * _literal;
4839 Token * _literal_1;
4840 Token * _literal_2;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004841 void *a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01004842 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004843 asdl_seq* b;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004844 expr_ty n;
4845 void *params;
4846 void *tc;
4847 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004848 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004849 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004850 (_keyword = _PyPegen_expect_token(p, 522)) // token='def'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004851 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004852 (n = _PyPegen_name_token(p)) // NAME
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004853 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004854 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004855 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004856 (params = params_rule(p), 1) // params?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004857 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004858 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004859 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004860 (a = _tmp_51_rule(p), 1) // ['->' expression]
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004861 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004862 (_literal_2 = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004863 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004864 (tc = func_type_comment_rule(p), 1) // func_type_comment?
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004865 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004866 (b = block_rule(p)) // block
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004867 )
4868 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004869 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 +01004870 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
4871 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004872 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004873 return NULL;
4874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004875 int _end_lineno = _token->end_lineno;
4876 UNUSED(_end_lineno); // Only used by EXTRA macro
4877 int _end_col_offset = _token->end_col_offset;
4878 UNUSED(_end_col_offset); // Only used by EXTRA macro
4879 _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 ) );
4880 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004881 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004882 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004883 return NULL;
4884 }
4885 goto done;
4886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004887 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004888 D(fprintf(stderr, "%*c%s function_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
4889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'def' NAME '(' params? ')' ['->' expression] ':' func_type_comment? block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004891 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004892 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004893 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004894 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004895}
4896
Guido van Rossumc001c092020-04-30 12:12:19 -07004897// func_type_comment:
4898// | NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
4899// | invalid_double_type_comments
4900// | TYPE_COMMENT
Pablo Galindod9552412020-05-01 16:32:09 +01004901static Token*
Guido van Rossumc001c092020-04-30 12:12:19 -07004902func_type_comment_rule(Parser *p)
4903{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004904 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07004905 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004906 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07004907 return NULL;
4908 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004909 Token* _res = NULL;
4910 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07004911 { // NEWLINE TYPE_COMMENT &(NEWLINE INDENT)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004913 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004914 return NULL;
4915 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004916 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 +01004917 Token * newline_var;
4918 Token * t;
Guido van Rossumc001c092020-04-30 12:12:19 -07004919 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004920 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -07004921 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01004922 (t = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07004923 &&
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +03004924 _PyPegen_lookahead(1, _tmp_52_rule, p)
Guido van Rossumc001c092020-04-30 12:12:19 -07004925 )
4926 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004927 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 +01004928 _res = t;
4929 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07004930 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004931 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07004932 return NULL;
4933 }
4934 goto done;
4935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004936 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004937 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
4938 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE TYPE_COMMENT &(NEWLINE INDENT)"));
Guido van Rossumc001c092020-04-30 12:12:19 -07004939 }
4940 { // invalid_double_type_comments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004941 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004942 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004943 return NULL;
4944 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004945 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 -07004946 void *invalid_double_type_comments_var;
4947 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004948 (invalid_double_type_comments_var = invalid_double_type_comments_rule(p)) // invalid_double_type_comments
Guido van Rossumc001c092020-04-30 12:12:19 -07004949 )
4950 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004951 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 +01004952 _res = invalid_double_type_comments_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07004953 goto done;
4954 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004955 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004956 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
4957 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_double_type_comments"));
Guido van Rossumc001c092020-04-30 12:12:19 -07004958 }
4959 { // TYPE_COMMENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004960 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004961 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004962 return NULL;
4963 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004964 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 +01004965 Token * type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07004966 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01004967 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -07004968 )
4969 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004970 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 +01004971 _res = type_comment_var;
Guido van Rossumc001c092020-04-30 12:12:19 -07004972 goto done;
4973 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004974 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004975 D(fprintf(stderr, "%*c%s func_type_comment[%d-%d]: %s failed!\n", p->level, ' ',
4976 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -07004977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004978 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07004979 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004980 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004981 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07004982}
4983
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004984// params: invalid_parameters | parameters
4985static arguments_ty
4986params_rule(Parser *p)
4987{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004988 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004991 return NULL;
4992 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01004993 arguments_ty _res = NULL;
4994 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01004995 { // invalid_parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07004997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03004998 return NULL;
4999 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005000 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005001 void *invalid_parameters_var;
5002 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005003 (invalid_parameters_var = invalid_parameters_rule(p)) // invalid_parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005004 )
5005 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005006 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005007 _res = invalid_parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005008 goto done;
5009 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005010 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005011 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5012 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005013 }
5014 { // parameters
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005016 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005017 return NULL;
5018 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005019 D(fprintf(stderr, "%*c> params[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005020 arguments_ty parameters_var;
5021 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005022 (parameters_var = parameters_rule(p)) // parameters
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005023 )
5024 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005025 D(fprintf(stderr, "%*c+ params[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "parameters"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005026 _res = parameters_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005027 goto done;
5028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005029 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005030 D(fprintf(stderr, "%*c%s params[%d-%d]: %s failed!\n", p->level, ' ',
5031 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "parameters"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005033 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005034 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005035 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005036 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005037}
5038
5039// parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -07005040// | slash_no_default param_no_default* param_with_default* star_etc?
5041// | slash_with_default param_with_default* star_etc?
5042// | param_no_default+ param_with_default* star_etc?
5043// | param_with_default+ star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005044// | star_etc
5045static arguments_ty
5046parameters_rule(Parser *p)
5047{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005048 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005050 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005051 return NULL;
5052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005053 arguments_ty _res = NULL;
5054 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005055 { // slash_no_default param_no_default* param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005057 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005058 return NULL;
5059 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005060 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 +01005061 asdl_seq* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005062 asdl_seq * b;
5063 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005064 void *d;
5065 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005066 (a = slash_no_default_rule(p)) // slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005067 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005068 (b = _loop0_53_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005069 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005070 (c = _loop0_54_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005071 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005072 (d = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005073 )
5074 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005075 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 +01005076 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
5077 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005078 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005080 return NULL;
5081 }
5082 goto done;
5083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005084 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005085 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5086 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 +01005087 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005088 { // slash_with_default param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005090 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005091 return NULL;
5092 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005093 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 +01005094 SlashWithDefault* a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005095 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005096 void *c;
5097 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005098 (a = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005099 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005100 (b = _loop0_55_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005101 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005102 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005103 )
5104 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005105 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 +01005106 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
5107 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005108 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005109 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005110 return NULL;
5111 }
5112 goto done;
5113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005114 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005115 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5116 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005117 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005118 { // param_no_default+ param_with_default* star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005121 return NULL;
5122 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005123 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 -07005124 asdl_seq * a;
5125 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005126 void *c;
5127 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005128 (a = _loop1_56_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005129 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005130 (b = _loop0_57_rule(p)) // param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005131 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005132 (c = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005133 )
5134 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005135 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 +01005136 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
5137 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005138 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005140 return NULL;
5141 }
5142 goto done;
5143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005144 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005145 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ param_with_default* star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005147 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005148 { // param_with_default+ star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005150 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005151 return NULL;
5152 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005153 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 -07005154 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005155 void *b;
5156 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005157 (a = _loop1_58_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005158 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005159 (b = star_etc_rule(p), 1) // star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005160 )
5161 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005162 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 +01005163 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
5164 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005165 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005166 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005167 return NULL;
5168 }
5169 goto done;
5170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005171 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005172 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5173 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+ star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005174 }
5175 { // star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005176 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005177 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005178 return NULL;
5179 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005180 D(fprintf(stderr, "%*c> parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005181 StarEtc* a;
5182 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005183 (a = star_etc_rule(p)) // star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005184 )
5185 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005186 D(fprintf(stderr, "%*c+ parameters[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_etc"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005187 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
5188 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005189 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005190 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005191 return NULL;
5192 }
5193 goto done;
5194 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005195 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005196 D(fprintf(stderr, "%*c%s parameters[%d-%d]: %s failed!\n", p->level, ' ',
5197 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005199 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005200 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005201 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005202 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005203}
5204
Guido van Rossumc001c092020-04-30 12:12:19 -07005205// slash_no_default: param_no_default+ '/' ',' | param_no_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005206static asdl_seq*
Guido van Rossumc001c092020-04-30 12:12:19 -07005207slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005208{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005209 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005210 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005211 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005212 return NULL;
5213 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005214 asdl_seq* _res = NULL;
5215 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005216 { // param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005218 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005219 return NULL;
5220 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005221 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 +01005222 Token * _literal;
5223 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005224 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005225 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005226 (a = _loop1_59_rule(p)) // param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005227 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005228 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005229 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005230 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005231 )
5232 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005233 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 +01005234 _res = a;
5235 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005236 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005237 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005238 return NULL;
5239 }
5240 goto done;
5241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005242 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005243 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5244 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005245 }
5246 { // param_no_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005247 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005248 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005249 return NULL;
5250 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005251 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 +01005252 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005253 asdl_seq * a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005254 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005255 (a = _loop1_60_rule(p)) // param_no_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005256 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005257 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005258 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005259 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005260 )
5261 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005262 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 +01005263 _res = a;
5264 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005265 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005266 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005267 return NULL;
5268 }
5269 goto done;
5270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005271 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005272 D(fprintf(stderr, "%*c%s slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5273 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005275 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005276 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005277 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005278 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005279}
5280
Guido van Rossumc001c092020-04-30 12:12:19 -07005281// slash_with_default:
5282// | param_no_default* param_with_default+ '/' ','
5283// | param_no_default* param_with_default+ '/' &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005284static SlashWithDefault*
5285slash_with_default_rule(Parser *p)
5286{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005287 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005288 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005289 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005290 return NULL;
5291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005292 SlashWithDefault* _res = NULL;
5293 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005294 { // param_no_default* param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005296 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005297 return NULL;
5298 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005299 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 +01005300 Token * _literal;
5301 Token * _literal_1;
Guido van Rossumc001c092020-04-30 12:12:19 -07005302 asdl_seq * a;
5303 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005304 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005305 (a = _loop0_61_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005306 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005307 (b = _loop1_62_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005308 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005309 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005310 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005311 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005312 )
5313 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005314 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 +01005315 _res = _PyPegen_slash_with_default ( p , a , b );
5316 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005317 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005318 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005319 return NULL;
5320 }
5321 goto done;
5322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005323 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005324 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5325 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' ','"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005326 }
5327 { // param_no_default* param_with_default+ '/' &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005328 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005329 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005330 return NULL;
5331 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005332 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 +01005333 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005334 asdl_seq * a;
5335 asdl_seq * b;
Guido van Rossumc001c092020-04-30 12:12:19 -07005336 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005337 (a = _loop0_63_rule(p)) // param_no_default*
Guido van Rossumc001c092020-04-30 12:12:19 -07005338 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005339 (b = _loop1_64_rule(p)) // param_with_default+
Guido van Rossumc001c092020-04-30 12:12:19 -07005340 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005341 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossumc001c092020-04-30 12:12:19 -07005342 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005343 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005344 )
5345 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005346 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 +01005347 _res = _PyPegen_slash_with_default ( p , a , b );
5348 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005349 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005351 return NULL;
5352 }
5353 goto done;
5354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005355 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005356 D(fprintf(stderr, "%*c%s slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default* param_with_default+ '/' &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005359 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005360 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005361 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005362 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005363}
5364
5365// star_etc:
Guido van Rossumc001c092020-04-30 12:12:19 -07005366// | '*' param_no_default param_maybe_default* kwds?
5367// | '*' ',' param_maybe_default+ kwds?
5368// | kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005369// | invalid_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005370static StarEtc*
5371star_etc_rule(Parser *p)
5372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005373 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005376 return NULL;
5377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005378 StarEtc* _res = NULL;
5379 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005380 { // '*' param_no_default param_maybe_default* kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005381 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005382 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005383 return NULL;
5384 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005385 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 +01005386 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005387 arg_ty a;
5388 asdl_seq * b;
5389 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005390 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005391 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005392 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005393 (a = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005394 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005395 (b = _loop0_65_rule(p)) // param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005396 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005397 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005398 )
5399 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005400 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 +01005401 _res = _PyPegen_star_etc ( p , a , b , c );
5402 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005403 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005405 return NULL;
5406 }
5407 goto done;
5408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005409 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005410 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' param_no_default param_maybe_default* kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005412 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005413 { // '*' ',' param_maybe_default+ kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005414 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005415 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005416 return NULL;
5417 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005418 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 +01005419 Token * _literal;
5420 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005421 asdl_seq * b;
5422 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005423 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005424 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005425 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005426 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005427 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005428 (b = _loop1_66_rule(p)) // param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005429 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005430 (c = kwds_rule(p), 1) // kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005431 )
5432 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005433 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 +01005434 _res = _PyPegen_star_etc ( p , NULL , b , c );
5435 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005436 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005437 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005438 return NULL;
5439 }
5440 goto done;
5441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005442 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005443 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5444 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' param_maybe_default+ kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005445 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005446 { // kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005447 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005448 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005449 return NULL;
5450 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005451 D(fprintf(stderr, "%*c> star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005452 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005453 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005454 (a = kwds_rule(p)) // kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005455 )
5456 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005457 D(fprintf(stderr, "%*c+ star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwds"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005458 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
5459 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005460 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005461 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005462 return NULL;
5463 }
5464 goto done;
5465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005466 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005467 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005469 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005470 { // invalid_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005472 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005473 return NULL;
5474 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005475 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 +03005476 void *invalid_star_etc_var;
5477 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005478 (invalid_star_etc_var = invalid_star_etc_rule(p)) // invalid_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005479 )
5480 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005481 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 +01005482 _res = invalid_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005483 goto done;
5484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005485 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005486 D(fprintf(stderr, "%*c%s star_etc[%d-%d]: %s failed!\n", p->level, ' ',
5487 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03005488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005489 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005490 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005492 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005493}
5494
Guido van Rossumc001c092020-04-30 12:12:19 -07005495// kwds: '**' param_no_default
5496static arg_ty
5497kwds_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005498{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005499 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005500 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005501 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005502 return NULL;
5503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005504 arg_ty _res = NULL;
5505 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005506 { // '**' param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005507 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005508 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005509 return NULL;
5510 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005511 D(fprintf(stderr, "%*c> kwds[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**' param_no_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005512 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005513 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005514 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005515 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossumc001c092020-04-30 12:12:19 -07005516 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005517 (a = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -07005518 )
5519 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005520 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 +01005521 _res = a;
5522 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005523 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005524 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005525 return NULL;
5526 }
5527 goto done;
5528 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005529 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005530 D(fprintf(stderr, "%*c%s kwds[%d-%d]: %s failed!\n", p->level, ' ',
5531 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005532 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005533 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -07005534 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005535 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005536 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -07005537}
5538
5539// param_no_default: param ',' TYPE_COMMENT? | param TYPE_COMMENT? &')'
5540static arg_ty
5541param_no_default_rule(Parser *p)
5542{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005543 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -07005544 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005545 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005546 return NULL;
5547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005548 arg_ty _res = NULL;
5549 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005550 { // param ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005551 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005552 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005553 return NULL;
5554 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005555 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 +01005556 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005557 arg_ty a;
Guido van Rossumc001c092020-04-30 12:12:19 -07005558 void *tc;
5559 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005560 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005561 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005562 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005563 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005564 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005565 )
5566 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005567 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 +01005568 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5569 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005570 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005571 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005572 return NULL;
5573 }
5574 goto done;
5575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005576 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005577 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param ',' TYPE_COMMENT?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005579 }
Guido van Rossumc001c092020-04-30 12:12:19 -07005580 { // param TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005582 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005583 return NULL;
5584 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005585 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 -07005586 arg_ty a;
5587 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005588 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005589 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005590 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005591 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005592 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005593 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005594 )
5595 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005596 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 +01005597 _res = _PyPegen_add_type_comment_to_arg ( p , a , tc );
5598 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005599 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005601 return NULL;
5602 }
5603 goto done;
5604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005605 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005606 D(fprintf(stderr, "%*c%s param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
5607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005609 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005610 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005611 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005612 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005613}
5614
Guido van Rossumc001c092020-04-30 12:12:19 -07005615// param_with_default: param default ',' TYPE_COMMENT? | param default TYPE_COMMENT? &')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005616static NameDefaultPair*
Guido van Rossumc001c092020-04-30 12:12:19 -07005617param_with_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005618{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005619 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005621 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005622 return NULL;
5623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005624 NameDefaultPair* _res = NULL;
5625 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005626 { // param default ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005628 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005629 return NULL;
5630 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005631 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 +01005632 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005633 arg_ty a;
5634 expr_ty c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005635 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005636 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005637 (a = param_rule(p)) // param
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005638 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005639 (c = default_rule(p)) // default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005640 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005641 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005642 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005643 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005644 )
5645 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005646 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 +01005647 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5648 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005649 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005650 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005651 return NULL;
5652 }
5653 goto done;
5654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005655 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005656 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5657 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005658 }
5659 { // param default TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005660 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005661 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005662 return NULL;
5663 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005664 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 -07005665 arg_ty a;
5666 expr_ty c;
5667 void *tc;
5668 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005669 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005670 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005671 (c = default_rule(p)) // default
Guido van Rossumc001c092020-04-30 12:12:19 -07005672 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005673 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005674 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005675 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005676 )
5677 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005678 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 +01005679 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5680 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005681 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005682 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005683 return NULL;
5684 }
5685 goto done;
5686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005687 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005688 D(fprintf(stderr, "%*c%s param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
5689 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005690 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005691 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005692 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005693 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005694 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005695}
5696
Guido van Rossumc001c092020-04-30 12:12:19 -07005697// param_maybe_default:
5698// | param default? ',' TYPE_COMMENT?
5699// | param default? TYPE_COMMENT? &')'
5700static NameDefaultPair*
5701param_maybe_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005702{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005703 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005704 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005706 return NULL;
5707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005708 NameDefaultPair* _res = NULL;
5709 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005710 { // param default? ',' TYPE_COMMENT?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005712 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005713 return NULL;
5714 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005715 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 +01005716 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005717 arg_ty a;
5718 void *c;
Guido van Rossumc001c092020-04-30 12:12:19 -07005719 void *tc;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005720 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005721 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005723 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005724 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005725 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -07005726 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005727 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005728 )
5729 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005730 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 +01005731 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5732 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005733 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005734 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005735 return NULL;
5736 }
5737 goto done;
5738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005739 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005740 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? ',' TYPE_COMMENT?"));
Guido van Rossumc001c092020-04-30 12:12:19 -07005742 }
5743 { // param default? TYPE_COMMENT? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005744 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005745 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005746 return NULL;
5747 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005748 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 -07005749 arg_ty a;
5750 void *c;
5751 void *tc;
5752 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005753 (a = param_rule(p)) // param
Guido van Rossumc001c092020-04-30 12:12:19 -07005754 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005755 (c = default_rule(p), 1) // default?
Guido van Rossumc001c092020-04-30 12:12:19 -07005756 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005757 (tc = _PyPegen_expect_token(p, TYPE_COMMENT), 1) // TYPE_COMMENT?
Guido van Rossumc001c092020-04-30 12:12:19 -07005758 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005759 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Guido van Rossumc001c092020-04-30 12:12:19 -07005760 )
5761 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005762 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 +01005763 _res = _PyPegen_name_default_pair ( p , a , c , tc );
5764 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005765 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005766 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005767 return NULL;
5768 }
5769 goto done;
5770 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005771 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005772 D(fprintf(stderr, "%*c%s param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
5773 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param default? TYPE_COMMENT? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005775 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005776 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005777 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005778 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005779}
5780
Guido van Rossumc001c092020-04-30 12:12:19 -07005781// param: NAME annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005782static arg_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005783param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005784{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005785 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005786 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005787 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005788 return NULL;
5789 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005790 arg_ty _res = NULL;
5791 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005792 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
5793 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005795 return NULL;
5796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005797 int _start_lineno = p->tokens[_mark]->lineno;
5798 UNUSED(_start_lineno); // Only used by EXTRA macro
5799 int _start_col_offset = p->tokens[_mark]->col_offset;
5800 UNUSED(_start_col_offset); // Only used by EXTRA macro
Guido van Rossumc001c092020-04-30 12:12:19 -07005801 { // NAME annotation?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005802 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005803 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005804 return NULL;
5805 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005806 D(fprintf(stderr, "%*c> param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005807 expr_ty a;
5808 void *b;
5809 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005810 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005811 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005812 (b = annotation_rule(p), 1) // annotation?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005813 )
5814 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005815 D(fprintf(stderr, "%*c+ param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME annotation?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005816 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
5817 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005818 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005819 return NULL;
5820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005821 int _end_lineno = _token->end_lineno;
5822 UNUSED(_end_lineno); // Only used by EXTRA macro
5823 int _end_col_offset = _token->end_col_offset;
5824 UNUSED(_end_col_offset); // Only used by EXTRA macro
5825 _res = _Py_arg ( a -> v . Name . id , b , NULL , EXTRA );
5826 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005827 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005828 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005829 return NULL;
5830 }
5831 goto done;
5832 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005833 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005834 D(fprintf(stderr, "%*c%s param[%d-%d]: %s failed!\n", p->level, ' ',
5835 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME annotation?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005836 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005837 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005838 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005839 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005840 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005841}
5842
Guido van Rossumc001c092020-04-30 12:12:19 -07005843// annotation: ':' expression
5844static expr_ty
5845annotation_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005846{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005847 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005848 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005849 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005850 return NULL;
5851 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005852 expr_ty _res = NULL;
5853 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005854 { // ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005855 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005856 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005857 return NULL;
5858 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005859 D(fprintf(stderr, "%*c> annotation[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005860 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005861 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005862 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005863 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005864 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005865 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005866 )
5867 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005868 D(fprintf(stderr, "%*c+ annotation[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005869 _res = a;
5870 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005871 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005872 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005873 return NULL;
5874 }
5875 goto done;
5876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005877 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005878 D(fprintf(stderr, "%*c%s annotation[%d-%d]: %s failed!\n", p->level, ' ',
5879 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005881 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005882 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005883 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005884 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005885}
5886
Guido van Rossumc001c092020-04-30 12:12:19 -07005887// default: '=' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005888static expr_ty
Guido van Rossumc001c092020-04-30 12:12:19 -07005889default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005890{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005891 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005892 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005893 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005894 return NULL;
5895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005896 expr_ty _res = NULL;
5897 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -07005898 { // '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005899 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005900 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005901 return NULL;
5902 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005903 D(fprintf(stderr, "%*c> default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005904 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -07005905 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005906 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005907 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Guido van Rossumc001c092020-04-30 12:12:19 -07005908 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005909 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005910 )
5911 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005912 D(fprintf(stderr, "%*c+ default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005913 _res = a;
5914 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -07005915 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005916 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -07005917 return NULL;
5918 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005919 goto done;
5920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005921 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005922 D(fprintf(stderr, "%*c%s default[%d-%d]: %s failed!\n", p->level, ' ',
5923 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005924 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005925 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005926 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005927 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005928 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005929}
5930
5931// decorators: (('@' named_expression NEWLINE))+
5932static asdl_seq*
5933decorators_rule(Parser *p)
5934{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005935 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005936 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005937 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005938 return NULL;
5939 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005940 asdl_seq* _res = NULL;
5941 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005942 { // (('@' named_expression NEWLINE))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005943 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005944 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005945 return NULL;
5946 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005947 D(fprintf(stderr, "%*c> decorators[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005948 asdl_seq * a;
5949 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005950 (a = _loop1_67_rule(p)) // (('@' named_expression NEWLINE))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005951 )
5952 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005953 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 +01005954 _res = a;
5955 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005956 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005957 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005958 return NULL;
5959 }
5960 goto done;
5961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005962 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005963 D(fprintf(stderr, "%*c%s decorators[%d-%d]: %s failed!\n", p->level, ' ',
5964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(('@' named_expression NEWLINE))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005966 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005967 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005968 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005969 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005970}
5971
5972// class_def: decorators class_def_raw | class_def_raw
5973static stmt_ty
5974class_def_rule(Parser *p)
5975{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005976 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005979 return NULL;
5980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01005981 stmt_ty _res = NULL;
5982 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005983 { // decorators class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005984 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005985 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03005986 return NULL;
5987 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005988 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 +01005989 asdl_seq* a;
5990 stmt_ty b;
5991 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01005992 (a = decorators_rule(p)) // decorators
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005993 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01005994 (b = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01005995 )
5996 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07005997 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 +01005998 _res = _PyPegen_class_def_decorators ( p , a , b );
5999 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006000 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006001 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006002 return NULL;
6003 }
6004 goto done;
6005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006006 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006007 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "decorators class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006009 }
6010 { // class_def_raw
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006011 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006012 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006013 return NULL;
6014 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006015 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 +01006016 stmt_ty class_def_raw_var;
6017 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006018 (class_def_raw_var = class_def_raw_rule(p)) // class_def_raw
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006019 )
6020 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006021 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 +01006022 _res = class_def_raw_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006023 goto done;
6024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006026 D(fprintf(stderr, "%*c%s class_def[%d-%d]: %s failed!\n", p->level, ' ',
6027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "class_def_raw"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006029 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006030 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006031 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006032 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006033}
6034
6035// class_def_raw: 'class' NAME ['(' arguments? ')'] ':' block
6036static stmt_ty
6037class_def_raw_rule(Parser *p)
6038{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006039 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006040 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006041 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006042 return NULL;
6043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006044 stmt_ty _res = NULL;
6045 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006046 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6047 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006048 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006049 return NULL;
6050 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006051 int _start_lineno = p->tokens[_mark]->lineno;
6052 UNUSED(_start_lineno); // Only used by EXTRA macro
6053 int _start_col_offset = p->tokens[_mark]->col_offset;
6054 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006055 { // 'class' NAME ['(' arguments? ')'] ':' block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006057 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006058 return NULL;
6059 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006060 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 +01006061 Token * _keyword;
6062 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006063 expr_ty a;
6064 void *b;
6065 asdl_seq* c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006066 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006067 (_keyword = _PyPegen_expect_token(p, 523)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006068 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006069 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006070 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006071 (b = _tmp_68_rule(p), 1) // ['(' arguments? ')']
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006072 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006073 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006074 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006075 (c = block_rule(p)) // block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006076 )
6077 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006078 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 +01006079 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6080 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006082 return NULL;
6083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006084 int _end_lineno = _token->end_lineno;
6085 UNUSED(_end_lineno); // Only used by EXTRA macro
6086 int _end_col_offset = _token->end_col_offset;
6087 UNUSED(_end_col_offset); // Only used by EXTRA macro
6088 _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 );
6089 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006090 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006091 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006092 return NULL;
6093 }
6094 goto done;
6095 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006096 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006097 D(fprintf(stderr, "%*c%s class_def_raw[%d-%d]: %s failed!\n", p->level, ' ',
6098 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class' NAME ['(' arguments? ')'] ':' block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006100 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006101 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006102 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006103 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006104}
6105
6106// block: NEWLINE INDENT statements DEDENT | simple_stmt | invalid_block
6107static asdl_seq*
6108block_rule(Parser *p)
6109{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006110 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006111 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006112 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006113 return NULL;
6114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006115 asdl_seq* _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006116 if (_PyPegen_is_memoized(p, block_type, &_res)) {
6117 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006118 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006120 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006121 { // NEWLINE INDENT statements DEDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006122 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006123 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006124 return NULL;
6125 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006126 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 +01006127 asdl_seq* a;
Pablo Galindob796b3f2020-05-01 12:32:26 +01006128 Token * dedent_var;
6129 Token * indent_var;
6130 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006131 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006132 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006133 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006134 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006135 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006136 (a = statements_rule(p)) // statements
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006137 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006138 (dedent_var = _PyPegen_expect_token(p, DEDENT)) // token='DEDENT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006139 )
6140 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006141 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 +01006142 _res = a;
6143 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006144 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006145 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006146 return NULL;
6147 }
6148 goto done;
6149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006150 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006151 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT statements DEDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006153 }
6154 { // simple_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006155 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006156 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006157 return NULL;
6158 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006159 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006160 asdl_seq* simple_stmt_var;
6161 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006162 (simple_stmt_var = simple_stmt_rule(p)) // simple_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006163 )
6164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006165 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006166 _res = simple_stmt_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006167 goto done;
6168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006169 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006170 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6171 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006172 }
6173 { // invalid_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006174 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006175 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006176 return NULL;
6177 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006178 D(fprintf(stderr, "%*c> block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006179 void *invalid_block_var;
6180 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006181 (invalid_block_var = invalid_block_rule(p)) // invalid_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006182 )
6183 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006184 D(fprintf(stderr, "%*c+ block[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_block"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006185 _res = invalid_block_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006186 goto done;
6187 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006188 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006189 D(fprintf(stderr, "%*c%s block[%d-%d]: %s failed!\n", p->level, ' ',
6190 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006192 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006193 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006194 _PyPegen_insert_memo(p, _mark, block_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006195 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006196 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006197}
6198
6199// expressions_list: ','.star_expression+ ','?
6200static asdl_seq*
6201expressions_list_rule(Parser *p)
6202{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006203 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006204 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006206 return NULL;
6207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006208 asdl_seq* _res = NULL;
6209 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006210 { // ','.star_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006213 return NULL;
6214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006215 D(fprintf(stderr, "%*c> expressions_list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006216 void *_opt_var;
6217 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006218 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006219 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006220 (a = _gather_69_rule(p)) // ','.star_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006221 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006222 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006223 )
6224 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006225 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 +01006226 _res = a;
6227 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006228 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006229 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006230 return NULL;
6231 }
6232 goto done;
6233 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006234 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006235 D(fprintf(stderr, "%*c%s expressions_list[%d-%d]: %s failed!\n", p->level, ' ',
6236 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006238 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006239 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006240 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006241 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006242}
6243
6244// star_expressions:
6245// | star_expression ((',' star_expression))+ ','?
6246// | star_expression ','
6247// | star_expression
6248static expr_ty
6249star_expressions_rule(Parser *p)
6250{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006251 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006252 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006254 return NULL;
6255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006256 expr_ty _res = NULL;
6257 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006258 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6259 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006261 return NULL;
6262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006263 int _start_lineno = p->tokens[_mark]->lineno;
6264 UNUSED(_start_lineno); // Only used by EXTRA macro
6265 int _start_col_offset = p->tokens[_mark]->col_offset;
6266 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006267 { // star_expression ((',' star_expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006268 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006269 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006270 return NULL;
6271 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006272 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 +01006273 void *_opt_var;
6274 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006275 expr_ty a;
6276 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006277 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006278 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006279 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006280 (b = _loop1_71_rule(p)) // ((',' star_expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006281 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006282 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006283 )
6284 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006285 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 +01006286 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6287 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006288 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006289 return NULL;
6290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006291 int _end_lineno = _token->end_lineno;
6292 UNUSED(_end_lineno); // Only used by EXTRA macro
6293 int _end_col_offset = _token->end_col_offset;
6294 UNUSED(_end_col_offset); // Only used by EXTRA macro
6295 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6296 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006297 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006298 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006299 return NULL;
6300 }
6301 goto done;
6302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006303 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006304 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6305 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ((',' star_expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006306 }
6307 { // star_expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006309 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006310 return NULL;
6311 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006312 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006313 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006314 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006315 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006316 (a = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006317 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006318 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006319 )
6320 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006321 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 +01006322 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6323 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006324 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006325 return NULL;
6326 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006327 int _end_lineno = _token->end_lineno;
6328 UNUSED(_end_lineno); // Only used by EXTRA macro
6329 int _end_col_offset = _token->end_col_offset;
6330 UNUSED(_end_col_offset); // Only used by EXTRA macro
6331 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6332 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006333 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006334 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006335 return NULL;
6336 }
6337 goto done;
6338 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006339 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006340 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6341 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006342 }
6343 { // star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006344 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006345 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006346 return NULL;
6347 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006348 D(fprintf(stderr, "%*c> star_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006349 expr_ty star_expression_var;
6350 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006351 (star_expression_var = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006352 )
6353 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006354 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 +01006355 _res = star_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006356 goto done;
6357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006358 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006359 D(fprintf(stderr, "%*c%s star_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6360 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006362 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006363 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006364 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006365 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006366}
6367
6368// star_expression: '*' bitwise_or | expression
6369static expr_ty
6370star_expression_rule(Parser *p)
6371{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006372 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006373 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006374 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006375 return NULL;
6376 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006377 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006378 if (_PyPegen_is_memoized(p, star_expression_type, &_res)) {
6379 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006380 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006381 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006382 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006383 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6384 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006386 return NULL;
6387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006388 int _start_lineno = p->tokens[_mark]->lineno;
6389 UNUSED(_start_lineno); // Only used by EXTRA macro
6390 int _start_col_offset = p->tokens[_mark]->col_offset;
6391 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006392 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006393 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006394 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006395 return NULL;
6396 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006397 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006398 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006399 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006400 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006401 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006402 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006403 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006404 )
6405 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006406 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 +01006407 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6408 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006409 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006410 return NULL;
6411 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006412 int _end_lineno = _token->end_lineno;
6413 UNUSED(_end_lineno); // Only used by EXTRA macro
6414 int _end_col_offset = _token->end_col_offset;
6415 UNUSED(_end_col_offset); // Only used by EXTRA macro
6416 _res = _Py_Starred ( a , Load , EXTRA );
6417 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006418 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006419 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006420 return NULL;
6421 }
6422 goto done;
6423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006424 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006425 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6426 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006427 }
6428 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006429 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006430 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006431 return NULL;
6432 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006433 D(fprintf(stderr, "%*c> star_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006434 expr_ty expression_var;
6435 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006436 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006437 )
6438 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006439 D(fprintf(stderr, "%*c+ star_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006440 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006441 goto done;
6442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006443 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006444 D(fprintf(stderr, "%*c%s star_expression[%d-%d]: %s failed!\n", p->level, ' ',
6445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006447 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006448 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006449 _PyPegen_insert_memo(p, _mark, star_expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006450 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006451 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006452}
6453
6454// star_named_expressions: ','.star_named_expression+ ','?
6455static asdl_seq*
6456star_named_expressions_rule(Parser *p)
6457{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006458 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006459 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006460 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006461 return NULL;
6462 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006463 asdl_seq* _res = NULL;
6464 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006465 { // ','.star_named_expression+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006466 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006467 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006468 return NULL;
6469 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006470 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 +01006471 void *_opt_var;
6472 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006473 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006474 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006475 (a = _gather_72_rule(p)) // ','.star_named_expression+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006476 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006477 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006478 )
6479 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006480 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 +01006481 _res = a;
6482 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006483 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006484 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006485 return NULL;
6486 }
6487 goto done;
6488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006489 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006490 D(fprintf(stderr, "%*c%s star_named_expressions[%d-%d]: %s failed!\n", p->level, ' ',
6491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_named_expression+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006493 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006494 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006495 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006496 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006497}
6498
6499// star_named_expression: '*' bitwise_or | named_expression
6500static expr_ty
6501star_named_expression_rule(Parser *p)
6502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006506 return NULL;
6507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006508 expr_ty _res = NULL;
6509 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006510 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6511 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006513 return NULL;
6514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006515 int _start_lineno = p->tokens[_mark]->lineno;
6516 UNUSED(_start_lineno); // Only used by EXTRA macro
6517 int _start_col_offset = p->tokens[_mark]->col_offset;
6518 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006519 { // '*' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006522 return NULL;
6523 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006524 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 +01006525 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006526 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006527 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006528 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006530 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006531 )
6532 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006533 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 +01006534 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6535 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006536 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006537 return NULL;
6538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006539 int _end_lineno = _token->end_lineno;
6540 UNUSED(_end_lineno); // Only used by EXTRA macro
6541 int _end_col_offset = _token->end_col_offset;
6542 UNUSED(_end_col_offset); // Only used by EXTRA macro
6543 _res = _Py_Starred ( a , Load , EXTRA );
6544 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006545 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006547 return NULL;
6548 }
6549 goto done;
6550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006551 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006552 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006554 }
6555 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006556 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006557 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006558 return NULL;
6559 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006560 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 +01006561 expr_ty named_expression_var;
6562 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006563 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006564 )
6565 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006566 D(fprintf(stderr, "%*c+ star_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006567 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006568 goto done;
6569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006570 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006571 D(fprintf(stderr, "%*c%s star_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6572 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006573 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006574 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006575 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006576 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006577 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006578}
6579
6580// named_expression: NAME ':=' expression | expression !':=' | invalid_named_expression
6581static expr_ty
6582named_expression_rule(Parser *p)
6583{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006584 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006585 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006586 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006587 return NULL;
6588 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006589 expr_ty _res = NULL;
6590 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006591 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6592 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006594 return NULL;
6595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006596 int _start_lineno = p->tokens[_mark]->lineno;
6597 UNUSED(_start_lineno); // Only used by EXTRA macro
6598 int _start_col_offset = p->tokens[_mark]->col_offset;
6599 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006600 { // NAME ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006601 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006602 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006603 return NULL;
6604 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006605 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME ':=' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006606 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006607 expr_ty a;
6608 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006609 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006610 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006611 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006612 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006613 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006614 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006615 )
6616 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006617 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 +01006618 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6619 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006620 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006621 return NULL;
6622 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006623 int _end_lineno = _token->end_lineno;
6624 UNUSED(_end_lineno); // Only used by EXTRA macro
6625 int _end_col_offset = _token->end_col_offset;
6626 UNUSED(_end_col_offset); // Only used by EXTRA macro
6627 _res = _Py_NamedExpr ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , b , EXTRA );
6628 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006629 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006631 return NULL;
6632 }
6633 goto done;
6634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006635 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006636 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6637 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006638 }
6639 { // expression !':='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006642 return NULL;
6643 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006644 D(fprintf(stderr, "%*c> named_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006645 expr_ty expression_var;
6646 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006647 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006648 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006649 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 53) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006650 )
6651 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006652 D(fprintf(stderr, "%*c+ named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression !':='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006653 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006654 goto done;
6655 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006656 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006657 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6658 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression !':='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006659 }
6660 { // invalid_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006661 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006662 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006663 return NULL;
6664 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006665 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 +01006666 void *invalid_named_expression_var;
6667 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006668 (invalid_named_expression_var = invalid_named_expression_rule(p)) // invalid_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006669 )
6670 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006671 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 +01006672 _res = invalid_named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006673 goto done;
6674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006675 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006676 D(fprintf(stderr, "%*c%s named_expression[%d-%d]: %s failed!\n", p->level, ' ',
6677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006679 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006680 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006681 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006682 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006683}
6684
6685// annotated_rhs: yield_expr | star_expressions
6686static expr_ty
6687annotated_rhs_rule(Parser *p)
6688{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006689 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006690 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006692 return NULL;
6693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006694 expr_ty _res = NULL;
6695 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006696 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006699 return NULL;
6700 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006701 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006702 expr_ty yield_expr_var;
6703 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006704 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006705 )
6706 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006707 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 +01006708 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006709 goto done;
6710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006711 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006712 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6713 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006714 }
6715 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006716 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006717 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006718 return NULL;
6719 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006720 D(fprintf(stderr, "%*c> annotated_rhs[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006721 expr_ty star_expressions_var;
6722 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006723 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006724 )
6725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006726 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 +01006727 _res = star_expressions_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006728 goto done;
6729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006730 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006731 D(fprintf(stderr, "%*c%s annotated_rhs[%d-%d]: %s failed!\n", p->level, ' ',
6732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006733 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006734 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006735 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006736 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006737 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006738}
6739
6740// expressions: expression ((',' expression))+ ','? | expression ',' | expression
6741static expr_ty
6742expressions_rule(Parser *p)
6743{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006744 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006745 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006746 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006747 return NULL;
6748 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006749 expr_ty _res = NULL;
6750 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006751 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6752 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006753 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006754 return NULL;
6755 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006756 int _start_lineno = p->tokens[_mark]->lineno;
6757 UNUSED(_start_lineno); // Only used by EXTRA macro
6758 int _start_col_offset = p->tokens[_mark]->col_offset;
6759 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006760 { // expression ((',' expression))+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006761 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006762 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006763 return NULL;
6764 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006765 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006766 void *_opt_var;
6767 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006768 expr_ty a;
6769 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006770 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006771 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006772 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006773 (b = _loop1_74_rule(p)) // ((',' expression))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006774 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006775 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006776 )
6777 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006778 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006779 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6780 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006781 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006782 return NULL;
6783 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006784 int _end_lineno = _token->end_lineno;
6785 UNUSED(_end_lineno); // Only used by EXTRA macro
6786 int _end_col_offset = _token->end_col_offset;
6787 UNUSED(_end_col_offset); // Only used by EXTRA macro
6788 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Load , EXTRA );
6789 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006790 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006791 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006792 return NULL;
6793 }
6794 goto done;
6795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006796 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006797 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ((',' expression))+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006799 }
6800 { // expression ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006801 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006802 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006803 return NULL;
6804 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006805 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006806 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006807 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006808 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006809 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006810 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006811 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006812 )
6813 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006814 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006815 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6816 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006817 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006818 return NULL;
6819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006820 int _end_lineno = _token->end_lineno;
6821 UNUSED(_end_lineno); // Only used by EXTRA macro
6822 int _end_col_offset = _token->end_col_offset;
6823 UNUSED(_end_col_offset); // Only used by EXTRA macro
6824 _res = _Py_Tuple ( CHECK ( _PyPegen_singleton_seq ( p , a ) ) , Load , EXTRA );
6825 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006826 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006827 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006828 return NULL;
6829 }
6830 goto done;
6831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006832 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006833 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006835 }
6836 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006837 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006838 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006839 return NULL;
6840 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006841 D(fprintf(stderr, "%*c> expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006842 expr_ty expression_var;
6843 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006844 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006845 )
6846 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006847 D(fprintf(stderr, "%*c+ expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006848 _res = expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006849 goto done;
6850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006851 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006852 D(fprintf(stderr, "%*c%s expressions[%d-%d]: %s failed!\n", p->level, ' ',
6853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006855 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006856 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006857 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006858 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006859}
6860
6861// expression: disjunction 'if' disjunction 'else' expression | disjunction | lambdef
6862static expr_ty
6863expression_rule(Parser *p)
6864{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006865 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006866 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006868 return NULL;
6869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006870 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006871 if (_PyPegen_is_memoized(p, expression_type, &_res)) {
6872 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006873 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006875 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006876 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6877 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006878 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006879 return NULL;
6880 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006881 int _start_lineno = p->tokens[_mark]->lineno;
6882 UNUSED(_start_lineno); // Only used by EXTRA macro
6883 int _start_col_offset = p->tokens[_mark]->col_offset;
6884 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006885 { // disjunction 'if' disjunction 'else' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006886 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006887 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006888 return NULL;
6889 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006890 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 +01006891 Token * _keyword;
6892 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006893 expr_ty a;
6894 expr_ty b;
6895 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006896 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006897 (a = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006898 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006899 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006900 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006901 (b = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006902 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006903 (_keyword_1 = _PyPegen_expect_token(p, 516)) // token='else'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006904 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01006905 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006906 )
6907 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006908 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 +01006909 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
6910 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006912 return NULL;
6913 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006914 int _end_lineno = _token->end_lineno;
6915 UNUSED(_end_lineno); // Only used by EXTRA macro
6916 int _end_col_offset = _token->end_col_offset;
6917 UNUSED(_end_col_offset); // Only used by EXTRA macro
6918 _res = _Py_IfExp ( b , a , c , EXTRA );
6919 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006920 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006921 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006922 return NULL;
6923 }
6924 goto done;
6925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006926 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006927 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
6928 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006929 }
6930 { // disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006933 return NULL;
6934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006935 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006936 expr_ty disjunction_var;
6937 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006938 (disjunction_var = disjunction_rule(p)) // disjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006939 )
6940 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006941 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006942 _res = disjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006943 goto done;
6944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006945 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006946 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
6947 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006948 }
6949 { // lambdef
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006951 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006952 return NULL;
6953 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006954 D(fprintf(stderr, "%*c> expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006955 expr_ty lambdef_var;
6956 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01006957 (lambdef_var = lambdef_rule(p)) // lambdef
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006958 )
6959 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006960 D(fprintf(stderr, "%*c+ expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambdef"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006961 _res = lambdef_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006962 goto done;
6963 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006964 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006965 D(fprintf(stderr, "%*c%s expression[%d-%d]: %s failed!\n", p->level, ' ',
6966 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambdef"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006968 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006969 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006970 _PyPegen_insert_memo(p, _mark, expression_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006971 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006972 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006973}
6974
6975// lambdef: 'lambda' lambda_parameters? ':' expression
6976static expr_ty
6977lambdef_rule(Parser *p)
6978{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006979 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006980 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006981 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006982 return NULL;
6983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006984 expr_ty _res = NULL;
6985 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006986 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
6987 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006988 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006989 return NULL;
6990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01006991 int _start_lineno = p->tokens[_mark]->lineno;
6992 UNUSED(_start_lineno); // Only used by EXTRA macro
6993 int _start_col_offset = p->tokens[_mark]->col_offset;
6994 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01006995 { // 'lambda' lambda_parameters? ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006996 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07006997 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03006998 return NULL;
6999 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007000 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 +01007001 Token * _keyword;
7002 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007003 void *a;
7004 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007005 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007006 (_keyword = _PyPegen_expect_token(p, 524)) // token='lambda'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007007 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007008 (a = lambda_parameters_rule(p), 1) // lambda_parameters?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007009 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007010 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007011 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007012 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007013 )
7014 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007015 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 +01007016 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7017 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007018 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007019 return NULL;
7020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007021 int _end_lineno = _token->end_lineno;
7022 UNUSED(_end_lineno); // Only used by EXTRA macro
7023 int _end_col_offset = _token->end_col_offset;
7024 UNUSED(_end_col_offset); // Only used by EXTRA macro
7025 _res = _Py_Lambda ( ( a ) ? a : CHECK ( _PyPegen_empty_arguments ( p ) ) , b , EXTRA );
7026 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007027 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007028 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007029 return NULL;
7030 }
7031 goto done;
7032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007033 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007034 D(fprintf(stderr, "%*c%s lambdef[%d-%d]: %s failed!\n", p->level, ' ',
7035 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'lambda' lambda_parameters? ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007037 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007038 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007039 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007040 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007041}
7042
7043// lambda_parameters:
Guido van Rossum3941d972020-05-01 09:42:03 -07007044// | lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
7045// | lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
7046// | lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
7047// | lambda_param_with_default+ lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007048// | lambda_star_etc
7049static arguments_ty
7050lambda_parameters_rule(Parser *p)
7051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007052 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007055 return NULL;
7056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007057 arguments_ty _res = NULL;
7058 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007059 { // lambda_slash_no_default lambda_param_no_default* lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007060 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007061 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007062 return NULL;
7063 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007064 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 +01007065 asdl_seq* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007066 asdl_seq * b;
7067 asdl_seq * c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007068 void *d;
7069 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007070 (a = lambda_slash_no_default_rule(p)) // lambda_slash_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007071 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007072 (b = _loop0_75_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007073 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007074 (c = _loop0_76_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007075 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007076 (d = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007077 )
7078 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007079 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 +01007080 _res = _PyPegen_make_arguments ( p , a , NULL , b , c , d );
7081 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007082 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007083 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007084 return NULL;
7085 }
7086 goto done;
7087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007088 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007089 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7090 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 +01007091 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007092 { // lambda_slash_with_default lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007093 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007094 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007095 return NULL;
7096 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007097 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 +01007098 SlashWithDefault* a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007099 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007100 void *c;
7101 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007102 (a = lambda_slash_with_default_rule(p)) // lambda_slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007103 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007104 (b = _loop0_77_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007105 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007106 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007107 )
7108 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007109 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 +01007110 _res = _PyPegen_make_arguments ( p , NULL , a , NULL , b , c );
7111 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007112 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007114 return NULL;
7115 }
7116 goto done;
7117 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007118 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007119 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7120 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 +01007121 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007122 { // lambda_param_no_default+ lambda_param_with_default* lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007124 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007125 return NULL;
7126 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007127 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 -07007128 asdl_seq * a;
7129 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007130 void *c;
7131 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007132 (a = _loop1_78_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007133 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007134 (b = _loop0_79_rule(p)) // lambda_param_with_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007135 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007136 (c = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007137 )
7138 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007139 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 +01007140 _res = _PyPegen_make_arguments ( p , NULL , NULL , a , b , c );
7141 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007142 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007143 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007144 return NULL;
7145 }
7146 goto done;
7147 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007148 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007149 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7150 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 +01007151 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007152 { // lambda_param_with_default+ lambda_star_etc?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007153 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007154 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007155 return NULL;
7156 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007157 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 -07007158 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007159 void *b;
7160 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007161 (a = _loop1_80_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007162 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007163 (b = lambda_star_etc_rule(p), 1) // lambda_star_etc?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007164 )
7165 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007166 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 +01007167 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , a , b );
7168 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007169 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007170 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007171 return NULL;
7172 }
7173 goto done;
7174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007175 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007176 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7177 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default+ lambda_star_etc?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007178 }
7179 { // lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007181 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007182 return NULL;
7183 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007184 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 +01007185 StarEtc* a;
7186 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007187 (a = lambda_star_etc_rule(p)) // lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007188 )
7189 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007190 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 +01007191 _res = _PyPegen_make_arguments ( p , NULL , NULL , NULL , NULL , a );
7192 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007193 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007194 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007195 return NULL;
7196 }
7197 goto done;
7198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007199 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007200 D(fprintf(stderr, "%*c%s lambda_parameters[%d-%d]: %s failed!\n", p->level, ' ',
7201 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_star_etc"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007202 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007203 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007204 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007205 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007206 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007207}
7208
Guido van Rossum3941d972020-05-01 09:42:03 -07007209// lambda_slash_no_default:
7210// | lambda_param_no_default+ '/' ','
7211// | lambda_param_no_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007212static asdl_seq*
Guido van Rossum3941d972020-05-01 09:42:03 -07007213lambda_slash_no_default_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007214{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007215 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007218 return NULL;
7219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007220 asdl_seq* _res = NULL;
7221 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007222 { // lambda_param_no_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007223 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007224 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007225 return NULL;
7226 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007227 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 +01007228 Token * _literal;
7229 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007230 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007231 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007232 (a = _loop1_81_rule(p)) // lambda_param_no_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007233 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007234 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007235 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007236 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007237 )
7238 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007239 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 +01007240 _res = a;
7241 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007242 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007243 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007244 return NULL;
7245 }
7246 goto done;
7247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007248 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007249 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007251 }
7252 { // lambda_param_no_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007254 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007255 return NULL;
7256 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007257 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 +01007258 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007259 asdl_seq * a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007260 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007261 (a = _loop1_82_rule(p)) // lambda_param_no_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007262 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007263 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007264 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007265 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007266 )
7267 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007268 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 +01007269 _res = a;
7270 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007271 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007272 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007273 return NULL;
7274 }
7275 goto done;
7276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007277 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007278 D(fprintf(stderr, "%*c%s lambda_slash_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007281 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007282 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007283 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007284 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007285}
7286
Guido van Rossum3941d972020-05-01 09:42:03 -07007287// lambda_slash_with_default:
7288// | lambda_param_no_default* lambda_param_with_default+ '/' ','
7289// | lambda_param_no_default* lambda_param_with_default+ '/' &':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007290static SlashWithDefault*
7291lambda_slash_with_default_rule(Parser *p)
7292{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007293 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007294 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007295 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007296 return NULL;
7297 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007298 SlashWithDefault* _res = NULL;
7299 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007300 { // lambda_param_no_default* lambda_param_with_default+ '/' ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007303 return NULL;
7304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007305 D(fprintf(stderr, "%*c> lambda_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 +01007306 Token * _literal;
7307 Token * _literal_1;
Guido van Rossum3941d972020-05-01 09:42:03 -07007308 asdl_seq * a;
7309 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007310 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007311 (a = _loop0_83_rule(p)) // lambda_param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007312 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007313 (b = _loop1_84_rule(p)) // lambda_param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007314 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007315 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007316 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007317 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007318 )
7319 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007320 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 +01007321 _res = _PyPegen_slash_with_default ( p , a , b );
7322 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007323 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007324 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007325 return NULL;
7326 }
7327 goto done;
7328 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007329 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007330 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7331 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007332 }
7333 { // lambda_param_no_default* lambda_param_with_default+ '/' &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007335 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007336 return NULL;
7337 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007338 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 +01007339 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007340 asdl_seq * a;
7341 asdl_seq * b;
Guido van Rossum3941d972020-05-01 09:42:03 -07007342 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007343 (a = _loop0_85_rule(p)) // lambda_param_no_default*
Guido van Rossum3941d972020-05-01 09:42:03 -07007344 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007345 (b = _loop1_86_rule(p)) // lambda_param_with_default+
Guido van Rossum3941d972020-05-01 09:42:03 -07007346 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007347 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Guido van Rossum3941d972020-05-01 09:42:03 -07007348 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007349 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007350 )
7351 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007352 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 +01007353 _res = _PyPegen_slash_with_default ( p , a , b );
7354 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007355 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007357 return NULL;
7358 }
7359 goto done;
7360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007361 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007362 D(fprintf(stderr, "%*c%s lambda_slash_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default* lambda_param_with_default+ '/' &':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007364 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007365 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007366 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007367 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007368 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007369}
7370
7371// lambda_star_etc:
Guido van Rossum3941d972020-05-01 09:42:03 -07007372// | '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
7373// | '*' ',' lambda_param_maybe_default+ lambda_kwds?
7374// | lambda_kwds
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007375// | invalid_lambda_star_etc
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007376static StarEtc*
7377lambda_star_etc_rule(Parser *p)
7378{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007379 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007380 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007381 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007382 return NULL;
7383 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007384 StarEtc* _res = NULL;
7385 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007386 { // '*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007388 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007389 return NULL;
7390 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007391 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 +01007392 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007393 arg_ty a;
7394 asdl_seq * b;
7395 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007396 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007397 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007398 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007399 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007400 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007401 (b = _loop0_87_rule(p)) // lambda_param_maybe_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007402 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007403 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007404 )
7405 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007406 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 +01007407 _res = _PyPegen_star_etc ( p , a , b , c );
7408 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007409 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007410 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007411 return NULL;
7412 }
7413 goto done;
7414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007415 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007416 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' lambda_param_no_default lambda_param_maybe_default* lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007418 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007419 { // '*' ',' lambda_param_maybe_default+ lambda_kwds?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007420 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007421 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007422 return NULL;
7423 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007424 D(fprintf(stderr, "%*c> lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007425 Token * _literal;
7426 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007427 asdl_seq * b;
7428 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007429 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007430 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007431 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007432 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007433 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007434 (b = _loop1_88_rule(p)) // lambda_param_maybe_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007435 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007436 (c = lambda_kwds_rule(p), 1) // lambda_kwds?
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007437 )
7438 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007439 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 +01007440 _res = _PyPegen_star_etc ( p , NULL , b , c );
7441 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007442 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007444 return NULL;
7445 }
7446 goto done;
7447 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007448 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007449 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7450 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' lambda_param_maybe_default+ lambda_kwds?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007451 }
Guido van Rossum3941d972020-05-01 09:42:03 -07007452 { // lambda_kwds
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007453 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007454 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007455 return NULL;
7456 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007457 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 +01007458 arg_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007459 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007460 (a = lambda_kwds_rule(p)) // lambda_kwds
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007461 )
7462 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007463 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 +01007464 _res = _PyPegen_star_etc ( p , NULL , NULL , a );
7465 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007466 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007467 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007468 return NULL;
7469 }
7470 goto done;
7471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007472 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007473 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_kwds"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007475 }
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007476 { // invalid_lambda_star_etc
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007477 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007478 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007479 return NULL;
7480 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007481 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 +03007482 void *invalid_lambda_star_etc_var;
7483 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007484 (invalid_lambda_star_etc_var = invalid_lambda_star_etc_rule(p)) // invalid_lambda_star_etc
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007485 )
7486 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007487 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 +01007488 _res = invalid_lambda_star_etc_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007489 goto done;
7490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007491 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007492 D(fprintf(stderr, "%*c%s lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
7493 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_lambda_star_etc"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +03007494 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007495 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007496 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007497 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007498 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007499}
7500
Guido van Rossum3941d972020-05-01 09:42:03 -07007501// lambda_kwds: '**' lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007502static arg_ty
Guido van Rossum3941d972020-05-01 09:42:03 -07007503lambda_kwds_rule(Parser *p)
7504{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007505 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007506 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007507 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007508 return NULL;
7509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007510 arg_ty _res = NULL;
7511 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007512 { // '**' lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007513 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007514 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007515 return NULL;
7516 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007517 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 +01007518 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007519 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007520 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007521 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Guido van Rossum3941d972020-05-01 09:42:03 -07007522 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007523 (a = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -07007524 )
7525 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007526 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 +01007527 _res = a;
7528 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007529 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007530 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007531 return NULL;
7532 }
7533 goto done;
7534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007535 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007536 D(fprintf(stderr, "%*c%s lambda_kwds[%d-%d]: %s failed!\n", p->level, ' ',
7537 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007538 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007539 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007540 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007541 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007542 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007543}
7544
7545// lambda_param_no_default: lambda_param ',' | lambda_param &':'
7546static arg_ty
7547lambda_param_no_default_rule(Parser *p)
7548{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007549 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007551 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007552 return NULL;
7553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007554 arg_ty _res = NULL;
7555 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007556 { // lambda_param ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007559 return NULL;
7560 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007561 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 +01007562 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007563 arg_ty a;
Guido van Rossum3941d972020-05-01 09:42:03 -07007564 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007565 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007566 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007567 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007568 )
7569 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007570 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 +01007571 _res = a;
7572 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007573 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007574 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007575 return NULL;
7576 }
7577 goto done;
7578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007579 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007580 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007582 }
7583 { // lambda_param &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007585 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007586 return NULL;
7587 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007588 D(fprintf(stderr, "%*c> lambda_param_no_default[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007589 arg_ty a;
7590 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007591 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007592 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007593 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007594 )
7595 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007596 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 +01007597 _res = a;
7598 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007599 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007600 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007601 return NULL;
7602 }
7603 goto done;
7604 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007605 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007606 D(fprintf(stderr, "%*c%s lambda_param_no_default[%d-%d]: %s failed!\n", p->level, ' ',
7607 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007609 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007610 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007611 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007612 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007613}
7614
7615// lambda_param_with_default: lambda_param default ',' | lambda_param default &':'
7616static NameDefaultPair*
7617lambda_param_with_default_rule(Parser *p)
7618{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007619 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007621 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007622 return NULL;
7623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007624 NameDefaultPair* _res = NULL;
7625 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007626 { // lambda_param default ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007627 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007628 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007629 return NULL;
7630 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007631 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 +01007632 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007633 arg_ty a;
7634 expr_ty c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007635 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007636 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007637 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007638 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007639 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007640 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007641 )
7642 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007643 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 +01007644 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7645 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007646 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007647 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007648 return NULL;
7649 }
7650 goto done;
7651 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007652 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007653 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7654 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007655 }
7656 { // lambda_param default &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007659 return NULL;
7660 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007661 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 -07007662 arg_ty a;
7663 expr_ty c;
7664 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007665 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007666 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007667 (c = default_rule(p)) // default
Guido van Rossum3941d972020-05-01 09:42:03 -07007668 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007669 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007670 )
7671 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007672 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 +01007673 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7674 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007675 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007676 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007677 return NULL;
7678 }
7679 goto done;
7680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007681 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007682 D(fprintf(stderr, "%*c%s lambda_param_with_default[%d-%d]: %s failed!\n", p->level, ' ',
7683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007685 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007686 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007687 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007688 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007689}
7690
7691// lambda_param_maybe_default: lambda_param default? ',' | lambda_param default? &':'
7692static NameDefaultPair*
7693lambda_param_maybe_default_rule(Parser *p)
7694{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007695 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -07007696 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007697 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007698 return NULL;
7699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007700 NameDefaultPair* _res = NULL;
7701 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -07007702 { // lambda_param default? ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007704 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007705 return NULL;
7706 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007707 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 +01007708 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -07007709 arg_ty a;
7710 void *c;
Guido van Rossum3941d972020-05-01 09:42:03 -07007711 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007712 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007713 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007714 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007715 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007716 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -07007717 )
7718 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007719 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 +01007720 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7721 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007722 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007723 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007724 return NULL;
7725 }
7726 goto done;
7727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007728 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007729 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7730 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? ','"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007731 }
7732 { // lambda_param default? &':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007733 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007734 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007735 return NULL;
7736 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007737 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 -07007738 arg_ty a;
7739 void *c;
7740 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007741 (a = lambda_param_rule(p)) // lambda_param
Guido van Rossum3941d972020-05-01 09:42:03 -07007742 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007743 (c = default_rule(p), 1) // default?
Guido van Rossum3941d972020-05-01 09:42:03 -07007744 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007745 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 11) // token=':'
Guido van Rossum3941d972020-05-01 09:42:03 -07007746 )
7747 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007748 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 +01007749 _res = _PyPegen_name_default_pair ( p , a , c , NULL );
7750 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -07007751 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007752 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -07007753 return NULL;
7754 }
7755 goto done;
7756 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007757 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007758 D(fprintf(stderr, "%*c%s lambda_param_maybe_default[%d-%d]: %s failed!\n", p->level, ' ',
7759 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param default? &':'"));
Guido van Rossum3941d972020-05-01 09:42:03 -07007760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007761 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -07007762 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007763 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007764 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -07007765}
7766
7767// lambda_param: NAME
7768static arg_ty
7769lambda_param_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007770{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007771 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007773 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007774 return NULL;
7775 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007776 arg_ty _res = NULL;
7777 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007778 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7779 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007780 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007781 return NULL;
7782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007783 int _start_lineno = p->tokens[_mark]->lineno;
7784 UNUSED(_start_lineno); // Only used by EXTRA macro
7785 int _start_col_offset = p->tokens[_mark]->col_offset;
7786 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007787 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007788 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007789 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007790 return NULL;
7791 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007792 D(fprintf(stderr, "%*c> lambda_param[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007793 expr_ty a;
7794 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007795 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007796 )
7797 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007798 D(fprintf(stderr, "%*c+ lambda_param[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007799 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7800 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007801 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007802 return NULL;
7803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007804 int _end_lineno = _token->end_lineno;
7805 UNUSED(_end_lineno); // Only used by EXTRA macro
7806 int _end_col_offset = _token->end_col_offset;
7807 UNUSED(_end_col_offset); // Only used by EXTRA macro
7808 _res = _Py_arg ( a -> v . Name . id , NULL , NULL , EXTRA );
7809 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007810 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007812 return NULL;
7813 }
7814 goto done;
7815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007816 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007817 D(fprintf(stderr, "%*c%s lambda_param[%d-%d]: %s failed!\n", p->level, ' ',
7818 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007819 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007820 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007821 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007822 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007823 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007824}
7825
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007826// disjunction: conjunction (('or' conjunction))+ | conjunction
7827static expr_ty
7828disjunction_rule(Parser *p)
7829{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007830 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007831 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007832 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007833 return NULL;
7834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007835 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007836 if (_PyPegen_is_memoized(p, disjunction_type, &_res)) {
7837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007838 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007840 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007841 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7842 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007843 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007844 return NULL;
7845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007846 int _start_lineno = p->tokens[_mark]->lineno;
7847 UNUSED(_start_lineno); // Only used by EXTRA macro
7848 int _start_col_offset = p->tokens[_mark]->col_offset;
7849 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007850 { // conjunction (('or' conjunction))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007852 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007853 return NULL;
7854 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007855 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007856 expr_ty a;
7857 asdl_seq * b;
7858 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007859 (a = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007860 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007861 (b = _loop1_89_rule(p)) // (('or' conjunction))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007862 )
7863 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007864 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 +01007865 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7866 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007868 return NULL;
7869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007870 int _end_lineno = _token->end_lineno;
7871 UNUSED(_end_lineno); // Only used by EXTRA macro
7872 int _end_col_offset = _token->end_col_offset;
7873 UNUSED(_end_col_offset); // Only used by EXTRA macro
7874 _res = _Py_BoolOp ( Or , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
7875 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007876 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007877 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007878 return NULL;
7879 }
7880 goto done;
7881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007882 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007883 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
7884 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction (('or' conjunction))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007885 }
7886 { // conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007887 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007888 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007889 return NULL;
7890 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007891 D(fprintf(stderr, "%*c> disjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007892 expr_ty conjunction_var;
7893 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007894 (conjunction_var = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007895 )
7896 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007897 D(fprintf(stderr, "%*c+ disjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007898 _res = conjunction_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007899 goto done;
7900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007901 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007902 D(fprintf(stderr, "%*c%s disjunction[%d-%d]: %s failed!\n", p->level, ' ',
7903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007904 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007905 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007906 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007907 _PyPegen_insert_memo(p, _mark, disjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007908 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007909 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007910}
7911
7912// conjunction: inversion (('and' inversion))+ | inversion
7913static expr_ty
7914conjunction_rule(Parser *p)
7915{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007916 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007917 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007918 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007919 return NULL;
7920 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007921 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007922 if (_PyPegen_is_memoized(p, conjunction_type, &_res)) {
7923 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007924 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007926 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007927 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
7928 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007929 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007930 return NULL;
7931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007932 int _start_lineno = p->tokens[_mark]->lineno;
7933 UNUSED(_start_lineno); // Only used by EXTRA macro
7934 int _start_col_offset = p->tokens[_mark]->col_offset;
7935 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007936 { // inversion (('and' inversion))+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007938 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007939 return NULL;
7940 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007941 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007942 expr_ty a;
7943 asdl_seq * b;
7944 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007945 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007946 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01007947 (b = _loop1_90_rule(p)) // (('and' inversion))+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007948 )
7949 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007950 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 +01007951 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
7952 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007953 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007954 return NULL;
7955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007956 int _end_lineno = _token->end_lineno;
7957 UNUSED(_end_lineno); // Only used by EXTRA macro
7958 int _end_col_offset = _token->end_col_offset;
7959 UNUSED(_end_col_offset); // Only used by EXTRA macro
7960 _res = _Py_BoolOp ( And , CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , EXTRA );
7961 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007962 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007963 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007964 return NULL;
7965 }
7966 goto done;
7967 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007968 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007969 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
7970 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion (('and' inversion))+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007971 }
7972 { // inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007973 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007974 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03007975 return NULL;
7976 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007977 D(fprintf(stderr, "%*c> conjunction[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007978 expr_ty inversion_var;
7979 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01007980 (inversion_var = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007981 )
7982 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007983 D(fprintf(stderr, "%*c+ conjunction[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007984 _res = inversion_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007985 goto done;
7986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007987 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007988 D(fprintf(stderr, "%*c%s conjunction[%d-%d]: %s failed!\n", p->level, ' ',
7989 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007991 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007992 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007993 _PyPegen_insert_memo(p, _mark, conjunction_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07007994 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01007995 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01007996}
7997
7998// inversion: 'not' inversion | comparison
7999static expr_ty
8000inversion_rule(Parser *p)
8001{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008002 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008004 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008005 return NULL;
8006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008007 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008008 if (_PyPegen_is_memoized(p, inversion_type, &_res)) {
8009 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008010 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008012 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008013 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8014 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008015 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008016 return NULL;
8017 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008018 int _start_lineno = p->tokens[_mark]->lineno;
8019 UNUSED(_start_lineno); // Only used by EXTRA macro
8020 int _start_col_offset = p->tokens[_mark]->col_offset;
8021 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008022 { // 'not' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008023 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008024 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008025 return NULL;
8026 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008027 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008028 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008029 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008030 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008031 (_keyword = _PyPegen_expect_token(p, 525)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008032 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008033 (a = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008034 )
8035 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008036 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'not' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008037 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8038 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008039 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008040 return NULL;
8041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008042 int _end_lineno = _token->end_lineno;
8043 UNUSED(_end_lineno); // Only used by EXTRA macro
8044 int _end_col_offset = _token->end_col_offset;
8045 UNUSED(_end_col_offset); // Only used by EXTRA macro
8046 _res = _Py_UnaryOp ( Not , a , EXTRA );
8047 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008048 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008049 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008050 return NULL;
8051 }
8052 goto done;
8053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008054 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008055 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8056 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' inversion"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008057 }
8058 { // comparison
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008059 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008060 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008061 return NULL;
8062 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008063 D(fprintf(stderr, "%*c> inversion[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008064 expr_ty comparison_var;
8065 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008066 (comparison_var = comparison_rule(p)) // comparison
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008067 )
8068 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008069 D(fprintf(stderr, "%*c+ inversion[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "comparison"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008070 _res = comparison_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008071 goto done;
8072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008073 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008074 D(fprintf(stderr, "%*c%s inversion[%d-%d]: %s failed!\n", p->level, ' ',
8075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "comparison"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008077 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008078 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008079 _PyPegen_insert_memo(p, _mark, inversion_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008080 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008081 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008082}
8083
8084// comparison: bitwise_or compare_op_bitwise_or_pair+ | bitwise_or
8085static expr_ty
8086comparison_rule(Parser *p)
8087{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008088 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008089 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008090 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008091 return NULL;
8092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008093 expr_ty _res = NULL;
8094 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008095 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8096 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008097 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008098 return NULL;
8099 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008100 int _start_lineno = p->tokens[_mark]->lineno;
8101 UNUSED(_start_lineno); // Only used by EXTRA macro
8102 int _start_col_offset = p->tokens[_mark]->col_offset;
8103 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008104 { // bitwise_or compare_op_bitwise_or_pair+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008105 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008106 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008107 return NULL;
8108 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008109 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 +01008110 expr_ty a;
8111 asdl_seq * b;
8112 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008113 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008114 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008115 (b = _loop1_91_rule(p)) // compare_op_bitwise_or_pair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008116 )
8117 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008118 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 +01008119 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8120 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008122 return NULL;
8123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008124 int _end_lineno = _token->end_lineno;
8125 UNUSED(_end_lineno); // Only used by EXTRA macro
8126 int _end_col_offset = _token->end_col_offset;
8127 UNUSED(_end_col_offset); // Only used by EXTRA macro
8128 _res = _Py_Compare ( a , CHECK ( _PyPegen_get_cmpops ( p , b ) ) , CHECK ( _PyPegen_get_exprs ( p , b ) ) , EXTRA );
8129 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008130 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008132 return NULL;
8133 }
8134 goto done;
8135 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008136 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008137 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8138 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or compare_op_bitwise_or_pair+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008139 }
8140 { // bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008141 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008142 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008143 return NULL;
8144 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008145 D(fprintf(stderr, "%*c> comparison[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008146 expr_ty bitwise_or_var;
8147 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008148 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008149 )
8150 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008151 D(fprintf(stderr, "%*c+ comparison[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008152 _res = bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008153 goto done;
8154 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008155 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008156 D(fprintf(stderr, "%*c%s comparison[%d-%d]: %s failed!\n", p->level, ' ',
8157 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008159 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008160 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008161 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008162 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008163}
8164
8165// compare_op_bitwise_or_pair:
8166// | eq_bitwise_or
8167// | noteq_bitwise_or
8168// | lte_bitwise_or
8169// | lt_bitwise_or
8170// | gte_bitwise_or
8171// | gt_bitwise_or
8172// | notin_bitwise_or
8173// | in_bitwise_or
8174// | isnot_bitwise_or
8175// | is_bitwise_or
8176static CmpopExprPair*
8177compare_op_bitwise_or_pair_rule(Parser *p)
8178{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008179 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008180 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008181 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008182 return NULL;
8183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008184 CmpopExprPair* _res = NULL;
8185 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008186 { // eq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008188 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008189 return NULL;
8190 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008191 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 +01008192 CmpopExprPair* eq_bitwise_or_var;
8193 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008194 (eq_bitwise_or_var = eq_bitwise_or_rule(p)) // eq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008195 )
8196 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008197 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 +01008198 _res = eq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008199 goto done;
8200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008201 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008202 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "eq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008204 }
8205 { // noteq_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008206 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008207 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008208 return NULL;
8209 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008210 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 +01008211 CmpopExprPair* noteq_bitwise_or_var;
8212 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008213 (noteq_bitwise_or_var = noteq_bitwise_or_rule(p)) // noteq_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008214 )
8215 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008216 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 +01008217 _res = noteq_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008218 goto done;
8219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008220 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008221 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8222 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "noteq_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008223 }
8224 { // lte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008225 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008226 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008227 return NULL;
8228 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008229 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 +01008230 CmpopExprPair* lte_bitwise_or_var;
8231 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008232 (lte_bitwise_or_var = lte_bitwise_or_rule(p)) // lte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008233 )
8234 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008235 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 +01008236 _res = lte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008237 goto done;
8238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008239 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008240 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8241 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008242 }
8243 { // lt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008244 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008245 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008246 return NULL;
8247 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008248 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 +01008249 CmpopExprPair* lt_bitwise_or_var;
8250 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008251 (lt_bitwise_or_var = lt_bitwise_or_rule(p)) // lt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008252 )
8253 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008254 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 +01008255 _res = lt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008256 goto done;
8257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008258 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008259 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008261 }
8262 { // gte_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008264 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008265 return NULL;
8266 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008267 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 +01008268 CmpopExprPair* gte_bitwise_or_var;
8269 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008270 (gte_bitwise_or_var = gte_bitwise_or_rule(p)) // gte_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008271 )
8272 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008273 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 +01008274 _res = gte_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008275 goto done;
8276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008277 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008278 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8279 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gte_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008280 }
8281 { // gt_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008283 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008284 return NULL;
8285 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008286 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 +01008287 CmpopExprPair* gt_bitwise_or_var;
8288 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008289 (gt_bitwise_or_var = gt_bitwise_or_rule(p)) // gt_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008290 )
8291 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008292 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 +01008293 _res = gt_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008294 goto done;
8295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008297 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "gt_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008299 }
8300 { // notin_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008303 return NULL;
8304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008305 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 +01008306 CmpopExprPair* notin_bitwise_or_var;
8307 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008308 (notin_bitwise_or_var = notin_bitwise_or_rule(p)) // notin_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008309 )
8310 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008311 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 +01008312 _res = notin_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008313 goto done;
8314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008315 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008316 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "notin_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008318 }
8319 { // in_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008320 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008321 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008322 return NULL;
8323 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008324 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 +01008325 CmpopExprPair* in_bitwise_or_var;
8326 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008327 (in_bitwise_or_var = in_bitwise_or_rule(p)) // in_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008328 )
8329 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008330 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 +01008331 _res = in_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008332 goto done;
8333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008334 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008335 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8336 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "in_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008337 }
8338 { // isnot_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008339 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008340 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008341 return NULL;
8342 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008343 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 +01008344 CmpopExprPair* isnot_bitwise_or_var;
8345 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008346 (isnot_bitwise_or_var = isnot_bitwise_or_rule(p)) // isnot_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008347 )
8348 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008349 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 +01008350 _res = isnot_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008351 goto done;
8352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008353 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008354 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8355 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "isnot_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008356 }
8357 { // is_bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008359 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008360 return NULL;
8361 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008362 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 +01008363 CmpopExprPair* is_bitwise_or_var;
8364 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008365 (is_bitwise_or_var = is_bitwise_or_rule(p)) // is_bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008366 )
8367 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008368 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 +01008369 _res = is_bitwise_or_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008370 goto done;
8371 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008372 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008373 D(fprintf(stderr, "%*c%s compare_op_bitwise_or_pair[%d-%d]: %s failed!\n", p->level, ' ',
8374 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "is_bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008375 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008376 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008377 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008378 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008379 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008380}
8381
8382// eq_bitwise_or: '==' bitwise_or
8383static CmpopExprPair*
8384eq_bitwise_or_rule(Parser *p)
8385{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008386 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008387 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008388 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008389 return NULL;
8390 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008391 CmpopExprPair* _res = NULL;
8392 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008393 { // '==' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008396 return NULL;
8397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008398 D(fprintf(stderr, "%*c> eq_bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008399 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008400 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008401 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008402 (_literal = _PyPegen_expect_token(p, 27)) // token='=='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008403 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008404 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008405 )
8406 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008407 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 +01008408 _res = _PyPegen_cmpop_expr_pair ( p , Eq , a );
8409 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008410 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008411 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008412 return NULL;
8413 }
8414 goto done;
8415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008416 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008417 D(fprintf(stderr, "%*c%s eq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'==' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008420 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008421 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008422 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008423 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008424}
8425
Pablo Galindo2b74c832020-04-27 18:02:07 +01008426// noteq_bitwise_or: ('!=') bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008427static CmpopExprPair*
8428noteq_bitwise_or_rule(Parser *p)
8429{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008430 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008431 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008432 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008433 return NULL;
8434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008435 CmpopExprPair* _res = NULL;
8436 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +01008437 { // ('!=') bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008439 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008440 return NULL;
8441 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008442 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 -07008443 void *_tmp_92_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008444 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008445 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008446 (_tmp_92_var = _tmp_92_rule(p)) // '!='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008447 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008448 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008449 )
8450 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008451 D(fprintf(stderr, "%*c+ noteq_bitwise_or[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008452 _res = _PyPegen_cmpop_expr_pair ( p , NotEq , a );
8453 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008454 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008455 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008456 return NULL;
8457 }
8458 goto done;
8459 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008460 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008461 D(fprintf(stderr, "%*c%s noteq_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8462 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('!=') bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008463 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008464 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008465 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008466 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008467 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008468}
8469
8470// lte_bitwise_or: '<=' bitwise_or
8471static CmpopExprPair*
8472lte_bitwise_or_rule(Parser *p)
8473{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008474 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008475 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008476 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008477 return NULL;
8478 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008479 CmpopExprPair* _res = NULL;
8480 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008481 { // '<=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008482 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008483 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008484 return NULL;
8485 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008486 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 +01008487 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008488 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008489 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008490 (_literal = _PyPegen_expect_token(p, 29)) // token='<='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008491 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008492 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008493 )
8494 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008495 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 +01008496 _res = _PyPegen_cmpop_expr_pair ( p , LtE , a );
8497 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008498 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008499 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008500 return NULL;
8501 }
8502 goto done;
8503 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008504 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008505 D(fprintf(stderr, "%*c%s lte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8506 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008508 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008509 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008511 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008512}
8513
8514// lt_bitwise_or: '<' bitwise_or
8515static CmpopExprPair*
8516lt_bitwise_or_rule(Parser *p)
8517{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008518 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008519 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008520 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008521 return NULL;
8522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008523 CmpopExprPair* _res = NULL;
8524 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008525 { // '<' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008527 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008528 return NULL;
8529 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008530 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 +01008531 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008532 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008533 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008534 (_literal = _PyPegen_expect_token(p, 20)) // token='<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008536 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008537 )
8538 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008539 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 +01008540 _res = _PyPegen_cmpop_expr_pair ( p , Lt , a );
8541 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008542 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008543 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008544 return NULL;
8545 }
8546 goto done;
8547 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008548 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008549 D(fprintf(stderr, "%*c%s lt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8550 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'<' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008552 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008553 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008554 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008555 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008556}
8557
8558// gte_bitwise_or: '>=' bitwise_or
8559static CmpopExprPair*
8560gte_bitwise_or_rule(Parser *p)
8561{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008562 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008563 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008564 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008565 return NULL;
8566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008567 CmpopExprPair* _res = NULL;
8568 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008569 { // '>=' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008570 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008571 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008572 return NULL;
8573 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008574 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 +01008575 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008576 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008577 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008578 (_literal = _PyPegen_expect_token(p, 30)) // token='>='
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008579 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008580 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008581 )
8582 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008583 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 +01008584 _res = _PyPegen_cmpop_expr_pair ( p , GtE , a );
8585 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008586 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008588 return NULL;
8589 }
8590 goto done;
8591 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008592 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008593 D(fprintf(stderr, "%*c%s gte_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8594 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>=' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008596 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008597 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008598 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008599 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008600}
8601
8602// gt_bitwise_or: '>' bitwise_or
8603static CmpopExprPair*
8604gt_bitwise_or_rule(Parser *p)
8605{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008606 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008607 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008608 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008609 return NULL;
8610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008611 CmpopExprPair* _res = NULL;
8612 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008613 { // '>' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008615 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008616 return NULL;
8617 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008618 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 +01008619 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008620 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008621 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008622 (_literal = _PyPegen_expect_token(p, 21)) // token='>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008624 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008625 )
8626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008627 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 +01008628 _res = _PyPegen_cmpop_expr_pair ( p , Gt , a );
8629 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008630 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008631 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008632 return NULL;
8633 }
8634 goto done;
8635 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008636 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008637 D(fprintf(stderr, "%*c%s gt_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8638 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'>' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008639 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008640 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008641 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008642 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008643 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008644}
8645
8646// notin_bitwise_or: 'not' 'in' bitwise_or
8647static CmpopExprPair*
8648notin_bitwise_or_rule(Parser *p)
8649{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008650 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008651 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008652 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008653 return NULL;
8654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008655 CmpopExprPair* _res = NULL;
8656 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008657 { // 'not' 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008658 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008659 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008660 return NULL;
8661 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008662 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 +01008663 Token * _keyword;
8664 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008665 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008666 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008667 (_keyword = _PyPegen_expect_token(p, 525)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008668 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008669 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008670 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008671 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008672 )
8673 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008674 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 +01008675 _res = _PyPegen_cmpop_expr_pair ( p , NotIn , a );
8676 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008677 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008678 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008679 return NULL;
8680 }
8681 goto done;
8682 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008683 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008684 D(fprintf(stderr, "%*c%s notin_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8685 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'not' 'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008686 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008687 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008688 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008689 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008690 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008691}
8692
8693// in_bitwise_or: 'in' bitwise_or
8694static CmpopExprPair*
8695in_bitwise_or_rule(Parser *p)
8696{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008697 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008698 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008699 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008700 return NULL;
8701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008702 CmpopExprPair* _res = NULL;
8703 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008704 { // 'in' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008707 return NULL;
8708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008709 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 +01008710 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008711 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008712 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008713 (_keyword = _PyPegen_expect_token(p, 518)) // token='in'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008714 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008715 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008716 )
8717 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008718 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 +01008719 _res = _PyPegen_cmpop_expr_pair ( p , In , a );
8720 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008721 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008722 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008723 return NULL;
8724 }
8725 goto done;
8726 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008727 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008728 D(fprintf(stderr, "%*c%s in_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8729 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'in' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008731 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008732 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008733 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008734 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008735}
8736
8737// isnot_bitwise_or: 'is' 'not' bitwise_or
8738static CmpopExprPair*
8739isnot_bitwise_or_rule(Parser *p)
8740{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008741 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008742 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008743 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008744 return NULL;
8745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008746 CmpopExprPair* _res = NULL;
8747 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008748 { // 'is' 'not' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008751 return NULL;
8752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008753 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 +01008754 Token * _keyword;
8755 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008756 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008757 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008758 (_keyword = _PyPegen_expect_token(p, 526)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008759 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008760 (_keyword_1 = _PyPegen_expect_token(p, 525)) // token='not'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008761 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008762 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008763 )
8764 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008765 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 +01008766 _res = _PyPegen_cmpop_expr_pair ( p , IsNot , a );
8767 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008768 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008770 return NULL;
8771 }
8772 goto done;
8773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008774 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008775 D(fprintf(stderr, "%*c%s isnot_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8776 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' 'not' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008778 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008779 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008780 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008781 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008782}
8783
8784// is_bitwise_or: 'is' bitwise_or
8785static CmpopExprPair*
8786is_bitwise_or_rule(Parser *p)
8787{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008788 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008789 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008791 return NULL;
8792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008793 CmpopExprPair* _res = NULL;
8794 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008795 { // 'is' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008796 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008797 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008798 return NULL;
8799 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008800 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 +01008801 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008802 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008803 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008804 (_keyword = _PyPegen_expect_token(p, 526)) // token='is'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008806 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008807 )
8808 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008809 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 +01008810 _res = _PyPegen_cmpop_expr_pair ( p , Is , a );
8811 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008812 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008813 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008814 return NULL;
8815 }
8816 goto done;
8817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008818 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008819 D(fprintf(stderr, "%*c%s is_bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8820 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'is' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008821 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008822 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008823 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008824 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008825 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008826}
8827
8828// Left-recursive
8829// bitwise_or: bitwise_or '|' bitwise_xor | bitwise_xor
8830static expr_ty bitwise_or_raw(Parser *);
8831static expr_ty
8832bitwise_or_rule(Parser *p)
8833{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008834 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008835 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008836 if (_PyPegen_is_memoized(p, bitwise_or_type, &_res)) {
8837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008838 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008840 int _mark = p->mark;
8841 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008842 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008843 int tmpvar_1 = _PyPegen_update_memo(p, _mark, bitwise_or_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008844 if (tmpvar_1) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008846 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008848 p->mark = _mark;
8849 void *_raw = bitwise_or_raw(p);
8850 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008851 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008852 _resmark = p->mark;
8853 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008855 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008856 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008857 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008858}
8859static expr_ty
8860bitwise_or_raw(Parser *p)
8861{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008862 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008863 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008864 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008865 return NULL;
8866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008867 expr_ty _res = NULL;
8868 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008869 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8870 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008871 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008872 return NULL;
8873 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008874 int _start_lineno = p->tokens[_mark]->lineno;
8875 UNUSED(_start_lineno); // Only used by EXTRA macro
8876 int _start_col_offset = p->tokens[_mark]->col_offset;
8877 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008878 { // bitwise_or '|' bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008879 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008880 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008881 return NULL;
8882 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008883 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 +01008884 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008885 expr_ty a;
8886 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008887 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008888 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008889 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008890 (_literal = _PyPegen_expect_token(p, 18)) // token='|'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008891 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01008892 (b = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008893 )
8894 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008895 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 +01008896 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
8897 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008899 return NULL;
8900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008901 int _end_lineno = _token->end_lineno;
8902 UNUSED(_end_lineno); // Only used by EXTRA macro
8903 int _end_col_offset = _token->end_col_offset;
8904 UNUSED(_end_col_offset); // Only used by EXTRA macro
8905 _res = _Py_BinOp ( a , BitOr , b , EXTRA );
8906 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008907 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008909 return NULL;
8910 }
8911 goto done;
8912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008914 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or '|' bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008916 }
8917 { // bitwise_xor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008920 return NULL;
8921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008922 D(fprintf(stderr, "%*c> bitwise_or[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008923 expr_ty bitwise_xor_var;
8924 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01008925 (bitwise_xor_var = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008926 )
8927 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008928 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 +01008929 _res = bitwise_xor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008930 goto done;
8931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008932 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008933 D(fprintf(stderr, "%*c%s bitwise_or[%d-%d]: %s failed!\n", p->level, ' ',
8934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008936 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008937 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008938 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008939 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008940}
8941
8942// Left-recursive
8943// bitwise_xor: bitwise_xor '^' bitwise_and | bitwise_and
8944static expr_ty bitwise_xor_raw(Parser *);
8945static expr_ty
8946bitwise_xor_rule(Parser *p)
8947{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008948 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008949 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008950 if (_PyPegen_is_memoized(p, bitwise_xor_type, &_res)) {
8951 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008952 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008954 int _mark = p->mark;
8955 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008956 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008957 int tmpvar_2 = _PyPegen_update_memo(p, _mark, bitwise_xor_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008958 if (tmpvar_2) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008959 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008960 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008962 p->mark = _mark;
8963 void *_raw = bitwise_xor_raw(p);
8964 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008965 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008966 _resmark = p->mark;
8967 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008969 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008970 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008971 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008972}
8973static expr_ty
8974bitwise_xor_raw(Parser *p)
8975{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008976 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008977 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008978 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008979 return NULL;
8980 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008981 expr_ty _res = NULL;
8982 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008983 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
8984 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008985 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008986 return NULL;
8987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008988 int _start_lineno = p->tokens[_mark]->lineno;
8989 UNUSED(_start_lineno); // Only used by EXTRA macro
8990 int _start_col_offset = p->tokens[_mark]->col_offset;
8991 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008992 { // bitwise_xor '^' bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008993 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008994 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03008995 return NULL;
8996 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07008997 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01008998 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01008999 expr_ty a;
9000 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009001 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009002 (a = bitwise_xor_rule(p)) // bitwise_xor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009003 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009004 (_literal = _PyPegen_expect_token(p, 32)) // token='^'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009005 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009006 (b = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009007 )
9008 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009009 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 +01009010 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9011 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009012 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009013 return NULL;
9014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009015 int _end_lineno = _token->end_lineno;
9016 UNUSED(_end_lineno); // Only used by EXTRA macro
9017 int _end_col_offset = _token->end_col_offset;
9018 UNUSED(_end_col_offset); // Only used by EXTRA macro
9019 _res = _Py_BinOp ( a , BitXor , b , EXTRA );
9020 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009021 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009022 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009023 return NULL;
9024 }
9025 goto done;
9026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009027 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009028 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9029 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_xor '^' bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009030 }
9031 { // bitwise_and
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009032 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009033 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009034 return NULL;
9035 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009036 D(fprintf(stderr, "%*c> bitwise_xor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009037 expr_ty bitwise_and_var;
9038 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009039 (bitwise_and_var = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009040 )
9041 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009042 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 +01009043 _res = bitwise_and_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009044 goto done;
9045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009046 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009047 D(fprintf(stderr, "%*c%s bitwise_xor[%d-%d]: %s failed!\n", p->level, ' ',
9048 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009050 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009051 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009052 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009053 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009054}
9055
9056// Left-recursive
9057// bitwise_and: bitwise_and '&' shift_expr | shift_expr
9058static expr_ty bitwise_and_raw(Parser *);
9059static expr_ty
9060bitwise_and_rule(Parser *p)
9061{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009062 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009063 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009064 if (_PyPegen_is_memoized(p, bitwise_and_type, &_res)) {
9065 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009066 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009068 int _mark = p->mark;
9069 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009070 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009071 int tmpvar_3 = _PyPegen_update_memo(p, _mark, bitwise_and_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009072 if (tmpvar_3) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009073 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009074 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009076 p->mark = _mark;
9077 void *_raw = bitwise_and_raw(p);
9078 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009079 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009080 _resmark = p->mark;
9081 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009083 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009084 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009085 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009086}
9087static expr_ty
9088bitwise_and_raw(Parser *p)
9089{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009090 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009092 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009093 return NULL;
9094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009095 expr_ty _res = NULL;
9096 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009097 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9098 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009099 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009100 return NULL;
9101 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009102 int _start_lineno = p->tokens[_mark]->lineno;
9103 UNUSED(_start_lineno); // Only used by EXTRA macro
9104 int _start_col_offset = p->tokens[_mark]->col_offset;
9105 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009106 { // bitwise_and '&' shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009107 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009108 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009109 return NULL;
9110 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009111 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 +01009112 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009113 expr_ty a;
9114 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009115 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009116 (a = bitwise_and_rule(p)) // bitwise_and
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009117 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009118 (_literal = _PyPegen_expect_token(p, 19)) // token='&'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009119 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009120 (b = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009121 )
9122 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009123 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 +01009124 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9125 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009126 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009127 return NULL;
9128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009129 int _end_lineno = _token->end_lineno;
9130 UNUSED(_end_lineno); // Only used by EXTRA macro
9131 int _end_col_offset = _token->end_col_offset;
9132 UNUSED(_end_col_offset); // Only used by EXTRA macro
9133 _res = _Py_BinOp ( a , BitAnd , b , EXTRA );
9134 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009135 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009136 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009137 return NULL;
9138 }
9139 goto done;
9140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009141 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009142 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9143 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_and '&' shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009144 }
9145 { // shift_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009146 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009147 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009148 return NULL;
9149 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009150 D(fprintf(stderr, "%*c> bitwise_and[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009151 expr_ty shift_expr_var;
9152 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009153 (shift_expr_var = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009154 )
9155 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009156 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 +01009157 _res = shift_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009158 goto done;
9159 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009160 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009161 D(fprintf(stderr, "%*c%s bitwise_and[%d-%d]: %s failed!\n", p->level, ' ',
9162 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009163 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009164 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009165 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009166 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009167 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009168}
9169
9170// Left-recursive
9171// shift_expr: shift_expr '<<' sum | shift_expr '>>' sum | sum
9172static expr_ty shift_expr_raw(Parser *);
9173static expr_ty
9174shift_expr_rule(Parser *p)
9175{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009176 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009177 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009178 if (_PyPegen_is_memoized(p, shift_expr_type, &_res)) {
9179 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009180 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009182 int _mark = p->mark;
9183 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009184 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009185 int tmpvar_4 = _PyPegen_update_memo(p, _mark, shift_expr_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009186 if (tmpvar_4) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009187 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009188 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009190 p->mark = _mark;
9191 void *_raw = shift_expr_raw(p);
9192 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009193 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009194 _resmark = p->mark;
9195 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009196 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009197 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009198 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009199 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009200}
9201static expr_ty
9202shift_expr_raw(Parser *p)
9203{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009204 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009205 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009206 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009207 return NULL;
9208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009209 expr_ty _res = NULL;
9210 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009211 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9212 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009213 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009214 return NULL;
9215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009216 int _start_lineno = p->tokens[_mark]->lineno;
9217 UNUSED(_start_lineno); // Only used by EXTRA macro
9218 int _start_col_offset = p->tokens[_mark]->col_offset;
9219 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009220 { // shift_expr '<<' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009221 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009222 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009223 return NULL;
9224 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009225 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 +01009226 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009227 expr_ty a;
9228 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009229 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009230 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009231 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009232 (_literal = _PyPegen_expect_token(p, 33)) // token='<<'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009233 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009234 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009235 )
9236 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009237 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 +01009238 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9239 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009240 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009241 return NULL;
9242 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009243 int _end_lineno = _token->end_lineno;
9244 UNUSED(_end_lineno); // Only used by EXTRA macro
9245 int _end_col_offset = _token->end_col_offset;
9246 UNUSED(_end_col_offset); // Only used by EXTRA macro
9247 _res = _Py_BinOp ( a , LShift , b , EXTRA );
9248 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009249 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009251 return NULL;
9252 }
9253 goto done;
9254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009255 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009256 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9257 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '<<' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009258 }
9259 { // shift_expr '>>' sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009260 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009261 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009262 return NULL;
9263 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009264 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 +01009265 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009266 expr_ty a;
9267 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009268 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009269 (a = shift_expr_rule(p)) // shift_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009270 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009271 (_literal = _PyPegen_expect_token(p, 34)) // token='>>'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009272 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009273 (b = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009274 )
9275 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009276 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 +01009277 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9278 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009279 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009280 return NULL;
9281 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009282 int _end_lineno = _token->end_lineno;
9283 UNUSED(_end_lineno); // Only used by EXTRA macro
9284 int _end_col_offset = _token->end_col_offset;
9285 UNUSED(_end_col_offset); // Only used by EXTRA macro
9286 _res = _Py_BinOp ( a , RShift , b , EXTRA );
9287 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009288 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009289 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009290 return NULL;
9291 }
9292 goto done;
9293 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009294 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009295 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9296 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "shift_expr '>>' sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009297 }
9298 { // sum
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009300 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009301 return NULL;
9302 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009303 D(fprintf(stderr, "%*c> shift_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009304 expr_ty sum_var;
9305 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009306 (sum_var = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009307 )
9308 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009309 D(fprintf(stderr, "%*c+ shift_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009310 _res = sum_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009311 goto done;
9312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009313 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009314 D(fprintf(stderr, "%*c%s shift_expr[%d-%d]: %s failed!\n", p->level, ' ',
9315 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009317 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009318 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009319 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009320 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009321}
9322
9323// Left-recursive
9324// sum: sum '+' term | sum '-' term | term
9325static expr_ty sum_raw(Parser *);
9326static expr_ty
9327sum_rule(Parser *p)
9328{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009329 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009330 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009331 if (_PyPegen_is_memoized(p, sum_type, &_res)) {
9332 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009333 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009335 int _mark = p->mark;
9336 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009337 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009338 int tmpvar_5 = _PyPegen_update_memo(p, _mark, sum_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009339 if (tmpvar_5) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009340 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009341 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009343 p->mark = _mark;
9344 void *_raw = sum_raw(p);
9345 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009346 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009347 _resmark = p->mark;
9348 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009350 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009351 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009352 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009353}
9354static expr_ty
9355sum_raw(Parser *p)
9356{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009357 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009358 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009359 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009360 return NULL;
9361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009362 expr_ty _res = NULL;
9363 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009364 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9365 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009366 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009367 return NULL;
9368 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009369 int _start_lineno = p->tokens[_mark]->lineno;
9370 UNUSED(_start_lineno); // Only used by EXTRA macro
9371 int _start_col_offset = p->tokens[_mark]->col_offset;
9372 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009373 { // sum '+' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009375 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009376 return NULL;
9377 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009378 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009379 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009380 expr_ty a;
9381 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009382 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009383 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009384 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009385 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009386 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009387 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009388 )
9389 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009390 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '+' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009391 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9392 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009394 return NULL;
9395 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009396 int _end_lineno = _token->end_lineno;
9397 UNUSED(_end_lineno); // Only used by EXTRA macro
9398 int _end_col_offset = _token->end_col_offset;
9399 UNUSED(_end_col_offset); // Only used by EXTRA macro
9400 _res = _Py_BinOp ( a , Add , b , EXTRA );
9401 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009402 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009403 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009404 return NULL;
9405 }
9406 goto done;
9407 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009408 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009409 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9410 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '+' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009411 }
9412 { // sum '-' term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009414 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009415 return NULL;
9416 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009417 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009418 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009419 expr_ty a;
9420 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009421 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009422 (a = sum_rule(p)) // sum
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009423 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009424 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009425 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009426 (b = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009427 )
9428 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009429 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "sum '-' term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009430 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9431 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009432 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009433 return NULL;
9434 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009435 int _end_lineno = _token->end_lineno;
9436 UNUSED(_end_lineno); // Only used by EXTRA macro
9437 int _end_col_offset = _token->end_col_offset;
9438 UNUSED(_end_col_offset); // Only used by EXTRA macro
9439 _res = _Py_BinOp ( a , Sub , b , EXTRA );
9440 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009441 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009442 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009443 return NULL;
9444 }
9445 goto done;
9446 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009447 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009448 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9449 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "sum '-' term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009450 }
9451 { // term
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009452 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009453 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009454 return NULL;
9455 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009456 D(fprintf(stderr, "%*c> sum[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009457 expr_ty term_var;
9458 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009459 (term_var = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009460 )
9461 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009462 D(fprintf(stderr, "%*c+ sum[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009463 _res = term_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009464 goto done;
9465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009466 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009467 D(fprintf(stderr, "%*c%s sum[%d-%d]: %s failed!\n", p->level, ' ',
9468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009469 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009470 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009471 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009472 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009473 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009474}
9475
9476// Left-recursive
9477// term:
9478// | term '*' factor
9479// | term '/' factor
9480// | term '//' factor
9481// | term '%' factor
9482// | term '@' factor
9483// | factor
9484static expr_ty term_raw(Parser *);
9485static expr_ty
9486term_rule(Parser *p)
9487{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009488 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009489 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009490 if (_PyPegen_is_memoized(p, term_type, &_res)) {
9491 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009492 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009494 int _mark = p->mark;
9495 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009496 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009497 int tmpvar_6 = _PyPegen_update_memo(p, _mark, term_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009498 if (tmpvar_6) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009499 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009500 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009501 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009502 p->mark = _mark;
9503 void *_raw = term_raw(p);
9504 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009505 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009506 _resmark = p->mark;
9507 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009508 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009509 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009510 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009511 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009512}
9513static expr_ty
9514term_raw(Parser *p)
9515{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009516 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009517 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009519 return NULL;
9520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009521 expr_ty _res = NULL;
9522 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009523 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9524 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009525 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009526 return NULL;
9527 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009528 int _start_lineno = p->tokens[_mark]->lineno;
9529 UNUSED(_start_lineno); // Only used by EXTRA macro
9530 int _start_col_offset = p->tokens[_mark]->col_offset;
9531 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009532 { // term '*' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009533 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009534 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009535 return NULL;
9536 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009537 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009538 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009539 expr_ty a;
9540 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009541 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009542 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009543 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009544 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009545 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009546 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009547 )
9548 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009549 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '*' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009550 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9551 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009552 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009553 return NULL;
9554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009555 int _end_lineno = _token->end_lineno;
9556 UNUSED(_end_lineno); // Only used by EXTRA macro
9557 int _end_col_offset = _token->end_col_offset;
9558 UNUSED(_end_col_offset); // Only used by EXTRA macro
9559 _res = _Py_BinOp ( a , Mult , b , EXTRA );
9560 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009561 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009562 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009563 return NULL;
9564 }
9565 goto done;
9566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009567 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009568 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '*' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009570 }
9571 { // term '/' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009572 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009573 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009574 return NULL;
9575 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009576 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009577 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009578 expr_ty a;
9579 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009580 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009581 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009582 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009583 (_literal = _PyPegen_expect_token(p, 17)) // token='/'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009584 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009585 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009586 )
9587 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009588 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '/' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009589 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9590 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009591 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009592 return NULL;
9593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009594 int _end_lineno = _token->end_lineno;
9595 UNUSED(_end_lineno); // Only used by EXTRA macro
9596 int _end_col_offset = _token->end_col_offset;
9597 UNUSED(_end_col_offset); // Only used by EXTRA macro
9598 _res = _Py_BinOp ( a , Div , b , EXTRA );
9599 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009600 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009601 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009602 return NULL;
9603 }
9604 goto done;
9605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009606 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009607 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9608 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '/' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009609 }
9610 { // term '//' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009611 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009612 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009613 return NULL;
9614 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009615 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009616 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009617 expr_ty a;
9618 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009619 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009620 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009621 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009622 (_literal = _PyPegen_expect_token(p, 47)) // token='//'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009623 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009624 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009625 )
9626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009627 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '//' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9629 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009631 return NULL;
9632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009633 int _end_lineno = _token->end_lineno;
9634 UNUSED(_end_lineno); // Only used by EXTRA macro
9635 int _end_col_offset = _token->end_col_offset;
9636 UNUSED(_end_col_offset); // Only used by EXTRA macro
9637 _res = _Py_BinOp ( a , FloorDiv , b , EXTRA );
9638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009641 return NULL;
9642 }
9643 goto done;
9644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009646 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '//' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009648 }
9649 { // term '%' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009652 return NULL;
9653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009654 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009655 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009656 expr_ty a;
9657 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009658 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009659 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009660 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009661 (_literal = _PyPegen_expect_token(p, 24)) // token='%'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009662 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009663 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009664 )
9665 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009666 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '%' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009667 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9668 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009669 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009670 return NULL;
9671 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009672 int _end_lineno = _token->end_lineno;
9673 UNUSED(_end_lineno); // Only used by EXTRA macro
9674 int _end_col_offset = _token->end_col_offset;
9675 UNUSED(_end_col_offset); // Only used by EXTRA macro
9676 _res = _Py_BinOp ( a , Mod , b , EXTRA );
9677 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009678 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009679 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009680 return NULL;
9681 }
9682 goto done;
9683 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009684 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009685 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9686 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '%' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009687 }
9688 { // term '@' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009689 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009690 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009691 return NULL;
9692 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009693 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009694 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009695 expr_ty a;
9696 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009697 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009698 (a = term_rule(p)) // term
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009699 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009700 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009701 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009702 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009703 )
9704 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009705 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "term '@' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009706 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9707 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009708 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009709 return NULL;
9710 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009711 int _end_lineno = _token->end_lineno;
9712 UNUSED(_end_lineno); // Only used by EXTRA macro
9713 int _end_col_offset = _token->end_col_offset;
9714 UNUSED(_end_col_offset); // Only used by EXTRA macro
9715 _res = CHECK_VERSION ( 5 , "The '@' operator is" , _Py_BinOp ( a , MatMult , b , EXTRA ) );
9716 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009717 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009718 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009719 return NULL;
9720 }
9721 goto done;
9722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009723 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009724 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9725 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "term '@' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009726 }
9727 { // factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009728 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009729 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009730 return NULL;
9731 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009732 D(fprintf(stderr, "%*c> term[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009733 expr_ty factor_var;
9734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009735 (factor_var = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009736 )
9737 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009738 D(fprintf(stderr, "%*c+ term[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009739 _res = factor_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009740 goto done;
9741 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009742 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009743 D(fprintf(stderr, "%*c%s term[%d-%d]: %s failed!\n", p->level, ' ',
9744 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009746 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009747 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009748 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009749 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009750}
9751
9752// factor: '+' factor | '-' factor | '~' factor | power
9753static expr_ty
9754factor_rule(Parser *p)
9755{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009756 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009759 return NULL;
9760 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009761 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009762 if (_PyPegen_is_memoized(p, factor_type, &_res)) {
9763 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009764 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009766 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009767 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9768 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009769 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009770 return NULL;
9771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009772 int _start_lineno = p->tokens[_mark]->lineno;
9773 UNUSED(_start_lineno); // Only used by EXTRA macro
9774 int _start_col_offset = p->tokens[_mark]->col_offset;
9775 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009776 { // '+' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009779 return NULL;
9780 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009781 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009782 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009783 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009784 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009785 (_literal = _PyPegen_expect_token(p, 14)) // token='+'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009786 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009787 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009788 )
9789 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009790 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009791 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9792 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009793 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009794 return NULL;
9795 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009796 int _end_lineno = _token->end_lineno;
9797 UNUSED(_end_lineno); // Only used by EXTRA macro
9798 int _end_col_offset = _token->end_col_offset;
9799 UNUSED(_end_col_offset); // Only used by EXTRA macro
9800 _res = _Py_UnaryOp ( UAdd , a , EXTRA );
9801 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009802 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009803 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009804 return NULL;
9805 }
9806 goto done;
9807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009808 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009809 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9810 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009811 }
9812 { // '-' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009813 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009814 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009815 return NULL;
9816 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009817 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009818 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009819 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009820 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009821 (_literal = _PyPegen_expect_token(p, 15)) // token='-'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009822 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009823 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009824 )
9825 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009826 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009827 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9828 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009829 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009830 return NULL;
9831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009832 int _end_lineno = _token->end_lineno;
9833 UNUSED(_end_lineno); // Only used by EXTRA macro
9834 int _end_col_offset = _token->end_col_offset;
9835 UNUSED(_end_col_offset); // Only used by EXTRA macro
9836 _res = _Py_UnaryOp ( USub , a , EXTRA );
9837 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009838 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009839 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009840 return NULL;
9841 }
9842 goto done;
9843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009845 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009847 }
9848 { // '~' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009849 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009850 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009851 return NULL;
9852 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009853 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009854 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009855 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009856 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009857 (_literal = _PyPegen_expect_token(p, 31)) // token='~'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009858 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009859 (a = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009860 )
9861 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009862 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009863 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9864 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009865 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009866 return NULL;
9867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009868 int _end_lineno = _token->end_lineno;
9869 UNUSED(_end_lineno); // Only used by EXTRA macro
9870 int _end_col_offset = _token->end_col_offset;
9871 UNUSED(_end_col_offset); // Only used by EXTRA macro
9872 _res = _Py_UnaryOp ( Invert , a , EXTRA );
9873 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009874 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009875 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009876 return NULL;
9877 }
9878 goto done;
9879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009880 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009881 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9882 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009883 }
9884 { // power
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009885 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009886 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009887 return NULL;
9888 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009889 D(fprintf(stderr, "%*c> factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009890 expr_ty power_var;
9891 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009892 (power_var = power_rule(p)) // power
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009893 )
9894 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009895 D(fprintf(stderr, "%*c+ factor[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "power"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009896 _res = power_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009897 goto done;
9898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009899 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009900 D(fprintf(stderr, "%*c%s factor[%d-%d]: %s failed!\n", p->level, ' ',
9901 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "power"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009903 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009904 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009905 _PyPegen_insert_memo(p, _mark, factor_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009906 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009907 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009908}
9909
9910// power: await_primary '**' factor | await_primary
9911static expr_ty
9912power_rule(Parser *p)
9913{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009914 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009915 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009916 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009917 return NULL;
9918 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009919 expr_ty _res = NULL;
9920 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009921 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
9922 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009924 return NULL;
9925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009926 int _start_lineno = p->tokens[_mark]->lineno;
9927 UNUSED(_start_lineno); // Only used by EXTRA macro
9928 int _start_col_offset = p->tokens[_mark]->col_offset;
9929 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009930 { // await_primary '**' factor
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009932 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009933 return NULL;
9934 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009935 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009936 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009937 expr_ty a;
9938 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009939 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009940 (a = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009941 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009942 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009943 &&
Pablo Galindo470aac42020-05-06 23:14:43 +01009944 (b = factor_rule(p)) // factor
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009945 )
9946 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009947 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 +01009948 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
9949 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009950 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009951 return NULL;
9952 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009953 int _end_lineno = _token->end_lineno;
9954 UNUSED(_end_lineno); // Only used by EXTRA macro
9955 int _end_col_offset = _token->end_col_offset;
9956 UNUSED(_end_col_offset); // Only used by EXTRA macro
9957 _res = _Py_BinOp ( a , Pow , b , EXTRA );
9958 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009959 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009960 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009961 return NULL;
9962 }
9963 goto done;
9964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009965 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009966 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
9967 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary '**' factor"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009968 }
9969 { // await_primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009970 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009971 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +03009972 return NULL;
9973 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009974 D(fprintf(stderr, "%*c> power[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009975 expr_ty await_primary_var;
9976 if (
Pablo Galindo470aac42020-05-06 23:14:43 +01009977 (await_primary_var = await_primary_rule(p)) // await_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009978 )
9979 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009980 D(fprintf(stderr, "%*c+ power[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "await_primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009981 _res = await_primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009982 goto done;
9983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009984 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009985 D(fprintf(stderr, "%*c%s power[%d-%d]: %s failed!\n", p->level, ' ',
9986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "await_primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009987 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009988 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009989 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009990 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +01009991 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009992}
9993
9994// await_primary: AWAIT primary | primary
9995static expr_ty
9996await_primary_rule(Parser *p)
9997{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -07009998 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +01009999 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010000 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010001 return NULL;
10002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010003 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010004 if (_PyPegen_is_memoized(p, await_primary_type, &_res)) {
10005 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010006 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010007 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010008 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010009 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10010 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010011 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010012 return NULL;
10013 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010014 int _start_lineno = p->tokens[_mark]->lineno;
10015 UNUSED(_start_lineno); // Only used by EXTRA macro
10016 int _start_col_offset = p->tokens[_mark]->col_offset;
10017 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010018 { // AWAIT primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010019 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010020 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010021 return NULL;
10022 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010023 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010024 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010010025 Token * await_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010026 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010027 (await_var = _PyPegen_expect_token(p, AWAIT)) // token='AWAIT'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010028 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010029 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010030 )
10031 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010032 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 +010010033 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10034 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010035 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010036 return NULL;
10037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010038 int _end_lineno = _token->end_lineno;
10039 UNUSED(_end_lineno); // Only used by EXTRA macro
10040 int _end_col_offset = _token->end_col_offset;
10041 UNUSED(_end_col_offset); // Only used by EXTRA macro
10042 _res = CHECK_VERSION ( 5 , "Await expressions are" , _Py_Await ( a , EXTRA ) );
10043 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010044 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010045 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010046 return NULL;
10047 }
10048 goto done;
10049 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010050 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010051 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10052 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "AWAIT primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010053 }
10054 { // primary
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010055 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010056 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010057 return NULL;
10058 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010059 D(fprintf(stderr, "%*c> await_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010060 expr_ty primary_var;
10061 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010062 (primary_var = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010063 )
10064 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010065 D(fprintf(stderr, "%*c+ await_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010066 _res = primary_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010067 goto done;
10068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010069 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010070 D(fprintf(stderr, "%*c%s await_primary[%d-%d]: %s failed!\n", p->level, ' ',
10071 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010073 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010074 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010075 _PyPegen_insert_memo(p, _mark, await_primary_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010076 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010077 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010078}
10079
10080// Left-recursive
10081// primary:
10082// | primary '.' NAME
10083// | primary genexp
10084// | primary '(' arguments? ')'
10085// | primary '[' slices ']'
10086// | atom
10087static expr_ty primary_raw(Parser *);
10088static expr_ty
10089primary_rule(Parser *p)
10090{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010091 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010092 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010093 if (_PyPegen_is_memoized(p, primary_type, &_res)) {
10094 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010095 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010097 int _mark = p->mark;
10098 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010099 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010100 int tmpvar_7 = _PyPegen_update_memo(p, _mark, primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010101 if (tmpvar_7) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010102 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010103 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010105 p->mark = _mark;
10106 void *_raw = primary_raw(p);
10107 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010108 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010109 _resmark = p->mark;
10110 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010112 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010113 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010114 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010115}
10116static expr_ty
10117primary_raw(Parser *p)
10118{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010119 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010120 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010122 return NULL;
10123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010124 expr_ty _res = NULL;
10125 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010126 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10127 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010128 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010129 return NULL;
10130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010131 int _start_lineno = p->tokens[_mark]->lineno;
10132 UNUSED(_start_lineno); // Only used by EXTRA macro
10133 int _start_col_offset = p->tokens[_mark]->col_offset;
10134 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010135 { // primary '.' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010137 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010138 return NULL;
10139 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010140 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010141 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010142 expr_ty a;
10143 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010144 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010145 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010146 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010147 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010148 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010149 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010150 )
10151 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010152 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '.' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010153 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10154 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010156 return NULL;
10157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010158 int _end_lineno = _token->end_lineno;
10159 UNUSED(_end_lineno); // Only used by EXTRA macro
10160 int _end_col_offset = _token->end_col_offset;
10161 UNUSED(_end_col_offset); // Only used by EXTRA macro
10162 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
10163 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010164 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010166 return NULL;
10167 }
10168 goto done;
10169 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010170 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010171 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10172 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '.' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010173 }
10174 { // primary genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010175 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010176 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010177 return NULL;
10178 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010179 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010180 expr_ty a;
10181 expr_ty b;
10182 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010183 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010184 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010185 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010186 )
10187 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010188 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010189 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10190 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010191 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010192 return NULL;
10193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010194 int _end_lineno = _token->end_lineno;
10195 UNUSED(_end_lineno); // Only used by EXTRA macro
10196 int _end_col_offset = _token->end_col_offset;
10197 UNUSED(_end_col_offset); // Only used by EXTRA macro
10198 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
10199 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010200 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010201 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010202 return NULL;
10203 }
10204 goto done;
10205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010206 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010207 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10208 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010209 }
10210 { // primary '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010212 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010213 return NULL;
10214 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010215 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010216 Token * _literal;
10217 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010218 expr_ty a;
10219 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010220 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010221 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010222 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010223 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010224 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010225 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010226 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010227 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010228 )
10229 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010230 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010231 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10232 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010234 return NULL;
10235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010236 int _end_lineno = _token->end_lineno;
10237 UNUSED(_end_lineno); // Only used by EXTRA macro
10238 int _end_col_offset = _token->end_col_offset;
10239 UNUSED(_end_col_offset); // Only used by EXTRA macro
10240 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
10241 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010242 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010244 return NULL;
10245 }
10246 goto done;
10247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010248 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010249 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010251 }
10252 { // primary '[' slices ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010254 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010255 return NULL;
10256 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010257 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010258 Token * _literal;
10259 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010260 expr_ty a;
10261 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010262 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010263 (a = primary_rule(p)) // primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010264 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010265 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010266 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010267 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010268 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010269 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010270 )
10271 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010272 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010273 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10274 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010276 return NULL;
10277 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010278 int _end_lineno = _token->end_lineno;
10279 UNUSED(_end_lineno); // Only used by EXTRA macro
10280 int _end_col_offset = _token->end_col_offset;
10281 UNUSED(_end_col_offset); // Only used by EXTRA macro
10282 _res = _Py_Subscript ( a , b , Load , EXTRA );
10283 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010284 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010285 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010286 return NULL;
10287 }
10288 goto done;
10289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010290 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010291 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10292 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "primary '[' slices ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010293 }
10294 { // atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010295 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010296 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010297 return NULL;
10298 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010299 D(fprintf(stderr, "%*c> primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010300 expr_ty atom_var;
10301 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010302 (atom_var = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010303 )
10304 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010305 D(fprintf(stderr, "%*c+ primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010306 _res = atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010307 goto done;
10308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010309 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010310 D(fprintf(stderr, "%*c%s primary[%d-%d]: %s failed!\n", p->level, ' ',
10311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010312 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010313 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010314 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010315 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010316 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010317}
10318
10319// slices: slice !',' | ','.slice+ ','?
10320static expr_ty
10321slices_rule(Parser *p)
10322{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010323 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010325 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010326 return NULL;
10327 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010328 expr_ty _res = NULL;
10329 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010330 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10331 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010332 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010333 return NULL;
10334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010335 int _start_lineno = p->tokens[_mark]->lineno;
10336 UNUSED(_start_lineno); // Only used by EXTRA macro
10337 int _start_col_offset = p->tokens[_mark]->col_offset;
10338 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010339 { // slice !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010340 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010341 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010342 return NULL;
10343 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010344 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010345 expr_ty a;
10346 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010347 (a = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010348 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010349 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010350 )
10351 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010352 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice !','"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010353 _res = a;
10354 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010355 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010356 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010357 return NULL;
10358 }
10359 goto done;
10360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010361 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010362 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10363 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010364 }
10365 { // ','.slice+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010366 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010367 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010368 return NULL;
10369 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010370 D(fprintf(stderr, "%*c> slices[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010371 void *_opt_var;
10372 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010373 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010375 (a = _gather_93_rule(p)) // ','.slice+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010376 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010377 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010378 )
10379 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010380 D(fprintf(stderr, "%*c+ slices[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010381 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10382 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010383 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010384 return NULL;
10385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010386 int _end_lineno = _token->end_lineno;
10387 UNUSED(_end_lineno); // Only used by EXTRA macro
10388 int _end_col_offset = _token->end_col_offset;
10389 UNUSED(_end_col_offset); // Only used by EXTRA macro
10390 _res = _Py_Tuple ( a , Load , EXTRA );
10391 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010392 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010393 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010394 return NULL;
10395 }
10396 goto done;
10397 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010398 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010399 D(fprintf(stderr, "%*c%s slices[%d-%d]: %s failed!\n", p->level, ' ',
10400 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.slice+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010401 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010402 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010403 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010404 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010405 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010406}
10407
10408// slice: expression? ':' expression? [':' expression?] | expression
10409static expr_ty
10410slice_rule(Parser *p)
10411{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010412 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010413 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010415 return NULL;
10416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010417 expr_ty _res = NULL;
10418 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010419 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10420 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010421 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010422 return NULL;
10423 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010424 int _start_lineno = p->tokens[_mark]->lineno;
10425 UNUSED(_start_lineno); // Only used by EXTRA macro
10426 int _start_col_offset = p->tokens[_mark]->col_offset;
10427 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010428 { // expression? ':' expression? [':' expression?]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010429 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010430 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010431 return NULL;
10432 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010433 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010434 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010435 void *a;
10436 void *b;
10437 void *c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010438 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010439 (a = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010440 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010441 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010442 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010443 (b = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010444 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010445 (c = _tmp_95_rule(p), 1) // [':' expression?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010446 )
10447 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010448 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 +010010449 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10450 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010451 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010452 return NULL;
10453 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010454 int _end_lineno = _token->end_lineno;
10455 UNUSED(_end_lineno); // Only used by EXTRA macro
10456 int _end_col_offset = _token->end_col_offset;
10457 UNUSED(_end_col_offset); // Only used by EXTRA macro
10458 _res = _Py_Slice ( a , b , c , EXTRA );
10459 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010460 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010461 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010462 return NULL;
10463 }
10464 goto done;
10465 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010466 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010467 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10468 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression? ':' expression? [':' expression?]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010469 }
10470 { // expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010472 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010473 return NULL;
10474 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010475 D(fprintf(stderr, "%*c> slice[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010476 expr_ty a;
10477 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010478 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010479 )
10480 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010481 D(fprintf(stderr, "%*c+ slice[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010482 _res = a;
10483 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010484 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010485 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010486 return NULL;
10487 }
10488 goto done;
10489 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010490 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010491 D(fprintf(stderr, "%*c%s slice[%d-%d]: %s failed!\n", p->level, ' ',
10492 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010494 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010495 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010496 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010497 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010498}
10499
10500// atom:
10501// | NAME
10502// | 'True'
10503// | 'False'
10504// | 'None'
10505// | '__new_parser__'
10506// | &STRING strings
10507// | NUMBER
10508// | &'(' (tuple | group | genexp)
10509// | &'[' (list | listcomp)
10510// | &'{' (dict | set | dictcomp | setcomp)
10511// | '...'
10512static expr_ty
10513atom_rule(Parser *p)
10514{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010515 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010516 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010517 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010518 return NULL;
10519 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010520 expr_ty _res = NULL;
10521 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010522 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10523 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010524 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010525 return NULL;
10526 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010527 int _start_lineno = p->tokens[_mark]->lineno;
10528 UNUSED(_start_lineno); // Only used by EXTRA macro
10529 int _start_col_offset = p->tokens[_mark]->col_offset;
10530 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010531 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010533 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010534 return NULL;
10535 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010536 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010537 expr_ty name_var;
10538 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010539 (name_var = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010540 )
10541 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010542 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010543 _res = name_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010544 goto done;
10545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010546 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010547 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10548 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010549 }
10550 { // 'True'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010551 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010552 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010553 return NULL;
10554 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010555 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010556 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010557 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010558 (_keyword = _PyPegen_expect_token(p, 527)) // token='True'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010559 )
10560 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010561 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010562 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10563 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010564 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010565 return NULL;
10566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010567 int _end_lineno = _token->end_lineno;
10568 UNUSED(_end_lineno); // Only used by EXTRA macro
10569 int _end_col_offset = _token->end_col_offset;
10570 UNUSED(_end_col_offset); // Only used by EXTRA macro
10571 _res = _Py_Constant ( Py_True , NULL , EXTRA );
10572 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010573 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010574 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010575 return NULL;
10576 }
10577 goto done;
10578 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010579 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010580 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10581 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010582 }
10583 { // 'False'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010584 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010585 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010586 return NULL;
10587 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010588 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010589 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010590 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010591 (_keyword = _PyPegen_expect_token(p, 528)) // token='False'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010592 )
10593 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010594 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010595 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10596 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010597 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010598 return NULL;
10599 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010600 int _end_lineno = _token->end_lineno;
10601 UNUSED(_end_lineno); // Only used by EXTRA macro
10602 int _end_col_offset = _token->end_col_offset;
10603 UNUSED(_end_col_offset); // Only used by EXTRA macro
10604 _res = _Py_Constant ( Py_False , NULL , EXTRA );
10605 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010606 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010607 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010608 return NULL;
10609 }
10610 goto done;
10611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010612 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010613 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10614 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010615 }
10616 { // 'None'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010619 return NULL;
10620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010621 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010622 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010623 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010624 (_keyword = _PyPegen_expect_token(p, 529)) // token='None'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010625 )
10626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010627 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010628 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10629 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010631 return NULL;
10632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010633 int _end_lineno = _token->end_lineno;
10634 UNUSED(_end_lineno); // Only used by EXTRA macro
10635 int _end_col_offset = _token->end_col_offset;
10636 UNUSED(_end_col_offset); // Only used by EXTRA macro
10637 _res = _Py_Constant ( Py_None , NULL , EXTRA );
10638 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010641 return NULL;
10642 }
10643 goto done;
10644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010645 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010646 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10647 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010648 }
10649 { // '__new_parser__'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010652 return NULL;
10653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010654 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'__new_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010655 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010656 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010657 (_keyword = _PyPegen_expect_token(p, 530)) // token='__new_parser__'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010658 )
10659 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010660 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'__new_parser__'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010661 _res = RAISE_SYNTAX_ERROR ( "You found it!" );
10662 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010663 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010665 return NULL;
10666 }
10667 goto done;
10668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010669 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010670 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'__new_parser__'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010672 }
10673 { // &STRING strings
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010674 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010675 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010676 return NULL;
10677 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010678 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010679 expr_ty strings_var;
10680 if (
10681 _PyPegen_lookahead(1, _PyPegen_string_token, p)
10682 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010683 (strings_var = strings_rule(p)) // strings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010684 )
10685 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010686 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&STRING strings"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010687 _res = strings_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010688 goto done;
10689 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010690 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010691 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10692 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&STRING strings"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010693 }
10694 { // NUMBER
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010695 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010696 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010697 return NULL;
10698 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010699 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010700 expr_ty number_var;
10701 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010702 (number_var = _PyPegen_number_token(p)) // NUMBER
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010703 )
10704 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010705 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NUMBER"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010706 _res = number_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010707 goto done;
10708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010710 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NUMBER"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010712 }
10713 { // &'(' (tuple | group | genexp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010716 return NULL;
10717 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010718 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'(' (tuple | group | genexp)"));
Guido van Rossum3941d972020-05-01 09:42:03 -070010719 void *_tmp_96_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010720 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010721 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 7) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010723 (_tmp_96_var = _tmp_96_rule(p)) // tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010724 )
10725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010726 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 +010010727 _res = _tmp_96_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010728 goto done;
10729 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010730 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010731 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10732 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'(' (tuple | group | genexp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010733 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010734 { // &'[' (list | listcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010735 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010736 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010737 return NULL;
10738 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010739 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Guido van Rossum3941d972020-05-01 09:42:03 -070010740 void *_tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010741 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010742 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 9) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010743 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010744 (_tmp_97_var = _tmp_97_rule(p)) // list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010745 )
10746 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010747 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010748 _res = _tmp_97_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010749 goto done;
10750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010751 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010752 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10753 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'[' (list | listcomp)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010754 }
Pablo Galindo2b74c832020-04-27 18:02:07 +010010755 { // &'{' (dict | set | dictcomp | setcomp)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010756 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010757 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010758 return NULL;
10759 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010760 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 -070010761 void *_tmp_98_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010762 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010763 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 25) // token='{'
Pablo Galindo2b74c832020-04-27 18:02:07 +010010764 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010765 (_tmp_98_var = _tmp_98_rule(p)) // dict | set | dictcomp | setcomp
Pablo Galindo2b74c832020-04-27 18:02:07 +010010766 )
10767 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010768 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 +010010769 _res = _tmp_98_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010010770 goto done;
10771 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010772 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010773 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10774 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'{' (dict | set | dictcomp | setcomp)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010010775 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010776 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010777 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010778 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010779 return NULL;
10780 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010781 D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010782 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010783 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010784 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010785 )
10786 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010787 D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010788 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10789 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010790 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010791 return NULL;
10792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010793 int _end_lineno = _token->end_lineno;
10794 UNUSED(_end_lineno); // Only used by EXTRA macro
10795 int _end_col_offset = _token->end_col_offset;
10796 UNUSED(_end_col_offset); // Only used by EXTRA macro
10797 _res = _Py_Constant ( Py_Ellipsis , NULL , EXTRA );
10798 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010799 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010800 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010801 return NULL;
10802 }
10803 goto done;
10804 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010805 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010806 D(fprintf(stderr, "%*c%s atom[%d-%d]: %s failed!\n", p->level, ' ',
10807 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010809 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010810 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010811 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010812 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010813}
10814
10815// strings: STRING+
10816static expr_ty
10817strings_rule(Parser *p)
10818{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010819 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010820 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010821 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010822 return NULL;
10823 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010824 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010825 if (_PyPegen_is_memoized(p, strings_type, &_res)) {
10826 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010827 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010829 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010830 { // STRING+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010831 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010832 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010833 return NULL;
10834 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010835 D(fprintf(stderr, "%*c> strings[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010836 asdl_seq * a;
10837 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010838 (a = _loop1_99_rule(p)) // STRING+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010839 )
10840 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010841 D(fprintf(stderr, "%*c+ strings[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "STRING+"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010842 _res = _PyPegen_concatenate_strings ( p , a );
10843 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010844 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010845 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010846 return NULL;
10847 }
10848 goto done;
10849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010850 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010851 D(fprintf(stderr, "%*c%s strings[%d-%d]: %s failed!\n", p->level, ' ',
10852 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010853 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010854 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010855 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010856 _PyPegen_insert_memo(p, _mark, strings_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010857 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010858 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010859}
10860
10861// list: '[' star_named_expressions? ']'
10862static expr_ty
10863list_rule(Parser *p)
10864{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010865 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010866 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010867 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010868 return NULL;
10869 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010870 expr_ty _res = NULL;
10871 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010872 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10873 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010874 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010875 return NULL;
10876 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010877 int _start_lineno = p->tokens[_mark]->lineno;
10878 UNUSED(_start_lineno); // Only used by EXTRA macro
10879 int _start_col_offset = p->tokens[_mark]->col_offset;
10880 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010881 { // '[' star_named_expressions? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010882 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010883 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010884 return NULL;
10885 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010886 D(fprintf(stderr, "%*c> list[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010887 Token * _literal;
10888 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010889 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010890 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010891 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010892 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010893 (a = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010894 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010895 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010896 )
10897 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010898 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 +010010899 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10900 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010902 return NULL;
10903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010904 int _end_lineno = _token->end_lineno;
10905 UNUSED(_end_lineno); // Only used by EXTRA macro
10906 int _end_col_offset = _token->end_col_offset;
10907 UNUSED(_end_col_offset); // Only used by EXTRA macro
10908 _res = _Py_List ( a , Load , EXTRA );
10909 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010910 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010911 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010912 return NULL;
10913 }
10914 goto done;
10915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010916 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010917 D(fprintf(stderr, "%*c%s list[%d-%d]: %s failed!\n", p->level, ' ',
10918 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_named_expressions? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010919 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010920 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010921 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010922 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010923 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010924}
10925
10926// listcomp: '[' named_expression for_if_clauses ']' | invalid_comprehension
10927static expr_ty
10928listcomp_rule(Parser *p)
10929{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010930 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010931 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010932 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010933 return NULL;
10934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010935 expr_ty _res = NULL;
10936 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010937 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
10938 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010939 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010940 return NULL;
10941 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010942 int _start_lineno = p->tokens[_mark]->lineno;
10943 UNUSED(_start_lineno); // Only used by EXTRA macro
10944 int _start_col_offset = p->tokens[_mark]->col_offset;
10945 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010946 { // '[' named_expression for_if_clauses ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010947 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010948 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010949 return NULL;
10950 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010951 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 +010010952 Token * _literal;
10953 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010954 expr_ty a;
10955 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010956 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010957 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010958 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010959 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010960 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010010961 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010962 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010963 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010964 )
10965 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010966 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 +010010967 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
10968 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010969 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010970 return NULL;
10971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010972 int _end_lineno = _token->end_lineno;
10973 UNUSED(_end_lineno); // Only used by EXTRA macro
10974 int _end_col_offset = _token->end_col_offset;
10975 UNUSED(_end_col_offset); // Only used by EXTRA macro
10976 _res = _Py_ListComp ( a , b , EXTRA );
10977 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010978 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010980 return NULL;
10981 }
10982 goto done;
10983 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010010984 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010985 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
10986 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' named_expression for_if_clauses ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010987 }
10988 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010989 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010990 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030010991 return NULL;
10992 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010993 D(fprintf(stderr, "%*c> listcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010994 void *invalid_comprehension_var;
10995 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010010996 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010010997 )
10998 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070010999 D(fprintf(stderr, "%*c+ listcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011000 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011001 goto done;
11002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011003 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011004 D(fprintf(stderr, "%*c%s listcomp[%d-%d]: %s failed!\n", p->level, ' ',
11005 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011007 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011008 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011009 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011010 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011011}
11012
11013// tuple: '(' [star_named_expression ',' star_named_expressions?] ')'
11014static expr_ty
11015tuple_rule(Parser *p)
11016{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011017 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011018 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011019 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011020 return NULL;
11021 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011022 expr_ty _res = NULL;
11023 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011024 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11025 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011026 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011027 return NULL;
11028 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011029 int _start_lineno = p->tokens[_mark]->lineno;
11030 UNUSED(_start_lineno); // Only used by EXTRA macro
11031 int _start_col_offset = p->tokens[_mark]->col_offset;
11032 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011033 { // '(' [star_named_expression ',' star_named_expressions?] ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011034 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011035 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011036 return NULL;
11037 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011038 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 +010011039 Token * _literal;
11040 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011041 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011042 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011043 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011044 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011045 (a = _tmp_100_rule(p), 1) // [star_named_expression ',' star_named_expressions?]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011046 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011047 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011048 )
11049 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011050 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 +010011051 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11052 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011054 return NULL;
11055 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011056 int _end_lineno = _token->end_lineno;
11057 UNUSED(_end_lineno); // Only used by EXTRA macro
11058 int _end_col_offset = _token->end_col_offset;
11059 UNUSED(_end_col_offset); // Only used by EXTRA macro
11060 _res = _Py_Tuple ( a , Load , EXTRA );
11061 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011062 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011063 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011064 return NULL;
11065 }
11066 goto done;
11067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011068 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011069 D(fprintf(stderr, "%*c%s tuple[%d-%d]: %s failed!\n", p->level, ' ',
11070 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' [star_named_expression ',' star_named_expressions?] ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011072 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011073 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011074 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011075 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011076}
11077
11078// group: '(' (yield_expr | named_expression) ')'
11079static expr_ty
11080group_rule(Parser *p)
11081{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011082 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011083 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011084 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011085 return NULL;
11086 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011087 expr_ty _res = NULL;
11088 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011089 { // '(' (yield_expr | named_expression) ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011090 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011091 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011092 return NULL;
11093 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011094 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 +010011095 Token * _literal;
11096 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011097 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011098 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011099 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011100 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011101 (a = _tmp_101_rule(p)) // yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011102 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011103 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011104 )
11105 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011106 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 +010011107 _res = a;
11108 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011109 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011110 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011111 return NULL;
11112 }
11113 goto done;
11114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011115 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011116 D(fprintf(stderr, "%*c%s group[%d-%d]: %s failed!\n", p->level, ' ',
11117 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' (yield_expr | named_expression) ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011118 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011119 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011120 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011121 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011122 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011123}
11124
11125// genexp: '(' expression for_if_clauses ')' | invalid_comprehension
11126static expr_ty
11127genexp_rule(Parser *p)
11128{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011129 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011131 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011132 return NULL;
11133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011134 expr_ty _res = NULL;
11135 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011136 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11137 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011138 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011139 return NULL;
11140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011141 int _start_lineno = p->tokens[_mark]->lineno;
11142 UNUSED(_start_lineno); // Only used by EXTRA macro
11143 int _start_col_offset = p->tokens[_mark]->col_offset;
11144 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011145 { // '(' expression for_if_clauses ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011146 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011147 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011148 return NULL;
11149 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011150 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 +010011151 Token * _literal;
11152 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011153 expr_ty a;
11154 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011155 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011156 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011157 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011158 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011159 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011160 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011161 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011162 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011163 )
11164 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011165 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 +010011166 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11167 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011168 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011169 return NULL;
11170 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011171 int _end_lineno = _token->end_lineno;
11172 UNUSED(_end_lineno); // Only used by EXTRA macro
11173 int _end_col_offset = _token->end_col_offset;
11174 UNUSED(_end_col_offset); // Only used by EXTRA macro
11175 _res = _Py_GeneratorExp ( a , b , EXTRA );
11176 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011177 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011178 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011179 return NULL;
11180 }
11181 goto done;
11182 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011183 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011184 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11185 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' expression for_if_clauses ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011186 }
11187 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011190 return NULL;
11191 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011192 D(fprintf(stderr, "%*c> genexp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011193 void *invalid_comprehension_var;
11194 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011195 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011196 )
11197 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011198 D(fprintf(stderr, "%*c+ genexp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011199 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011200 goto done;
11201 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011202 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011203 D(fprintf(stderr, "%*c%s genexp[%d-%d]: %s failed!\n", p->level, ' ',
11204 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011205 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011206 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011207 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011208 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011209 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011210}
11211
11212// set: '{' expressions_list '}'
11213static expr_ty
11214set_rule(Parser *p)
11215{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011216 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011217 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011218 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011219 return NULL;
11220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011221 expr_ty _res = NULL;
11222 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011223 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11224 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011225 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011226 return NULL;
11227 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011228 int _start_lineno = p->tokens[_mark]->lineno;
11229 UNUSED(_start_lineno); // Only used by EXTRA macro
11230 int _start_col_offset = p->tokens[_mark]->col_offset;
11231 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011232 { // '{' expressions_list '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011233 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011234 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011235 return NULL;
11236 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011237 D(fprintf(stderr, "%*c> set[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011238 Token * _literal;
11239 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011240 asdl_seq* a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011241 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011242 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011243 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011244 (a = expressions_list_rule(p)) // expressions_list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011245 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011246 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011247 )
11248 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011249 D(fprintf(stderr, "%*c+ set[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011250 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11251 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011252 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011253 return NULL;
11254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011255 int _end_lineno = _token->end_lineno;
11256 UNUSED(_end_lineno); // Only used by EXTRA macro
11257 int _end_col_offset = _token->end_col_offset;
11258 UNUSED(_end_col_offset); // Only used by EXTRA macro
11259 _res = _Py_Set ( a , EXTRA );
11260 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011261 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011262 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011263 return NULL;
11264 }
11265 goto done;
11266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011267 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011268 D(fprintf(stderr, "%*c%s set[%d-%d]: %s failed!\n", p->level, ' ',
11269 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expressions_list '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011270 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011271 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011272 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011273 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011274 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011275}
11276
11277// setcomp: '{' expression for_if_clauses '}' | invalid_comprehension
11278static expr_ty
11279setcomp_rule(Parser *p)
11280{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011281 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011283 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011284 return NULL;
11285 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011286 expr_ty _res = NULL;
11287 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011288 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11289 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011290 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011291 return NULL;
11292 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011293 int _start_lineno = p->tokens[_mark]->lineno;
11294 UNUSED(_start_lineno); // Only used by EXTRA macro
11295 int _start_col_offset = p->tokens[_mark]->col_offset;
11296 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011297 { // '{' expression for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011298 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011299 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011300 return NULL;
11301 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011302 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 +010011303 Token * _literal;
11304 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011305 expr_ty a;
11306 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011307 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011308 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011309 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011310 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011311 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011312 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011313 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011314 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011315 )
11316 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011317 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 +010011318 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11319 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011320 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011321 return NULL;
11322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011323 int _end_lineno = _token->end_lineno;
11324 UNUSED(_end_lineno); // Only used by EXTRA macro
11325 int _end_col_offset = _token->end_col_offset;
11326 UNUSED(_end_col_offset); // Only used by EXTRA macro
11327 _res = _Py_SetComp ( a , b , EXTRA );
11328 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011329 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011330 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011331 return NULL;
11332 }
11333 goto done;
11334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011335 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011336 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11337 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' expression for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011338 }
11339 { // invalid_comprehension
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011340 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011341 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011342 return NULL;
11343 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011344 D(fprintf(stderr, "%*c> setcomp[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011345 void *invalid_comprehension_var;
11346 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011347 (invalid_comprehension_var = invalid_comprehension_rule(p)) // invalid_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011348 )
11349 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011350 D(fprintf(stderr, "%*c+ setcomp[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_comprehension"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011351 _res = invalid_comprehension_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011352 goto done;
11353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011354 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011355 D(fprintf(stderr, "%*c%s setcomp[%d-%d]: %s failed!\n", p->level, ' ',
11356 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_comprehension"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011357 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011358 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011359 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011360 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011361 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011362}
11363
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011364// dict: '{' double_starred_kvpairs? '}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011365static expr_ty
11366dict_rule(Parser *p)
11367{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011368 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011369 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011371 return NULL;
11372 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011373 expr_ty _res = NULL;
11374 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011375 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11376 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011377 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011378 return NULL;
11379 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011380 int _start_lineno = p->tokens[_mark]->lineno;
11381 UNUSED(_start_lineno); // Only used by EXTRA macro
11382 int _start_col_offset = p->tokens[_mark]->col_offset;
11383 UNUSED(_start_col_offset); // Only used by EXTRA macro
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011384 { // '{' double_starred_kvpairs? '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011385 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011386 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011387 return NULL;
11388 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011389 D(fprintf(stderr, "%*c> dict[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011390 Token * _literal;
11391 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011392 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011393 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011394 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011395 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011396 (a = double_starred_kvpairs_rule(p), 1) // double_starred_kvpairs?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011397 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011398 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011399 )
11400 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011401 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 +010011402 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11403 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011404 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011405 return NULL;
11406 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011407 int _end_lineno = _token->end_lineno;
11408 UNUSED(_end_lineno); // Only used by EXTRA macro
11409 int _end_col_offset = _token->end_col_offset;
11410 UNUSED(_end_col_offset); // Only used by EXTRA macro
11411 _res = _Py_Dict ( CHECK ( _PyPegen_get_keys ( p , a ) ) , CHECK ( _PyPegen_get_values ( p , a ) ) , EXTRA );
11412 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011413 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011415 return NULL;
11416 }
11417 goto done;
11418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011419 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011420 D(fprintf(stderr, "%*c%s dict[%d-%d]: %s failed!\n", p->level, ' ',
11421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' double_starred_kvpairs? '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011422 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011423 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011424 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011425 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011426 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011427}
11428
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011429// dictcomp: '{' kvpair for_if_clauses '}' | invalid_dict_comprehension
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011430static expr_ty
11431dictcomp_rule(Parser *p)
11432{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011433 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011434 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011435 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011436 return NULL;
11437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011438 expr_ty _res = NULL;
11439 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011440 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11441 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011442 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011443 return NULL;
11444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011445 int _start_lineno = p->tokens[_mark]->lineno;
11446 UNUSED(_start_lineno); // Only used by EXTRA macro
11447 int _start_col_offset = p->tokens[_mark]->col_offset;
11448 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011449 { // '{' kvpair for_if_clauses '}'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011450 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011451 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011452 return NULL;
11453 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011454 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 +010011455 Token * _literal;
11456 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011457 KeyValuePair* a;
11458 asdl_seq* b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011459 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011460 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011461 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011462 (a = kvpair_rule(p)) // kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011463 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011464 (b = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011465 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011466 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011467 )
11468 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011469 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 +010011470 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11471 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011473 return NULL;
11474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011475 int _end_lineno = _token->end_lineno;
11476 UNUSED(_end_lineno); // Only used by EXTRA macro
11477 int _end_col_offset = _token->end_col_offset;
11478 UNUSED(_end_col_offset); // Only used by EXTRA macro
11479 _res = _Py_DictComp ( a -> key , a -> value , b , EXTRA );
11480 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011481 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011483 return NULL;
11484 }
11485 goto done;
11486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011487 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011488 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' kvpair for_if_clauses '}'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011490 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011491 { // invalid_dict_comprehension
11492 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011493 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011494 return NULL;
11495 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011496 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 -070011497 void *invalid_dict_comprehension_var;
11498 if (
11499 (invalid_dict_comprehension_var = invalid_dict_comprehension_rule(p)) // invalid_dict_comprehension
11500 )
11501 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011502 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 -070011503 _res = invalid_dict_comprehension_var;
11504 goto done;
11505 }
11506 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011507 D(fprintf(stderr, "%*c%s dictcomp[%d-%d]: %s failed!\n", p->level, ' ',
11508 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_dict_comprehension"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011509 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011510 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011511 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011512 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011513 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011514}
11515
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011516// double_starred_kvpairs: ','.double_starred_kvpair+ ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011517static asdl_seq*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011518double_starred_kvpairs_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011519{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011520 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011523 return NULL;
11524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011525 asdl_seq* _res = NULL;
11526 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011527 { // ','.double_starred_kvpair+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011530 return NULL;
11531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011532 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 +010011533 void *_opt_var;
11534 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011535 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011536 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011537 (a = _gather_102_rule(p)) // ','.double_starred_kvpair+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011538 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011539 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011540 )
11541 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011542 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 +010011543 _res = a;
11544 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011545 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011546 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011547 return NULL;
11548 }
11549 goto done;
11550 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011551 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011552 D(fprintf(stderr, "%*c%s double_starred_kvpairs[%d-%d]: %s failed!\n", p->level, ' ',
11553 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.double_starred_kvpair+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011555 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011556 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011557 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011558 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011559}
11560
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011561// double_starred_kvpair: '**' bitwise_or | kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011562static KeyValuePair*
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011563double_starred_kvpair_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011564{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011565 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011566 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011568 return NULL;
11569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011570 KeyValuePair* _res = NULL;
11571 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011572 { // '**' bitwise_or
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011573 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011574 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011575 return NULL;
11576 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011577 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 +010011578 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011579 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011580 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011581 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011582 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011583 (a = bitwise_or_rule(p)) // bitwise_or
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011584 )
11585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011586 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 +010011587 _res = _PyPegen_key_value_pair ( p , NULL , a );
11588 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011589 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011590 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011591 return NULL;
11592 }
11593 goto done;
11594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011595 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011596 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' bitwise_or"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011598 }
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011599 { // kvpair
11600 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011601 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011602 return NULL;
11603 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011604 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 -070011605 KeyValuePair* kvpair_var;
11606 if (
11607 (kvpair_var = kvpair_rule(p)) // kvpair
11608 )
11609 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011610 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 -070011611 _res = kvpair_var;
11612 goto done;
11613 }
11614 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011615 D(fprintf(stderr, "%*c%s double_starred_kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11616 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kvpair"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011617 }
11618 _res = NULL;
11619 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011620 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011621 return _res;
11622}
11623
11624// kvpair: expression ':' expression
11625static KeyValuePair*
11626kvpair_rule(Parser *p)
11627{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011628 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011629 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011630 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070011631 return NULL;
11632 }
11633 KeyValuePair* _res = NULL;
11634 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011635 { // expression ':' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011636 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011637 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011638 return NULL;
11639 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011640 D(fprintf(stderr, "%*c> kvpair[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011641 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011642 expr_ty a;
11643 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011644 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011645 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011646 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011647 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011648 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011649 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011650 )
11651 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011652 D(fprintf(stderr, "%*c+ kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011653 _res = _PyPegen_key_value_pair ( p , a , b );
11654 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011655 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011656 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011657 return NULL;
11658 }
11659 goto done;
11660 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011661 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011662 D(fprintf(stderr, "%*c%s kvpair[%d-%d]: %s failed!\n", p->level, ' ',
11663 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011665 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011666 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011667 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011668 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011669}
11670
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011671// for_if_clauses: for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011672static asdl_seq*
11673for_if_clauses_rule(Parser *p)
11674{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011675 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011676 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011677 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011678 return NULL;
11679 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011680 asdl_seq* _res = NULL;
11681 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011682 { // for_if_clause+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011683 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011684 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011685 return NULL;
11686 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011687 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 -070011688 asdl_seq * _loop1_104_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011689 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011690 (_loop1_104_var = _loop1_104_rule(p)) // for_if_clause+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011691 )
11692 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011693 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 +010011694 _res = _loop1_104_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011695 goto done;
11696 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011697 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011698 D(fprintf(stderr, "%*c%s for_if_clauses[%d-%d]: %s failed!\n", p->level, ' ',
11699 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause+"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011700 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011701 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011702 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011703 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011704 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011705}
11706
11707// for_if_clause:
11708// | ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*
11709// | 'for' star_targets 'in' disjunction (('if' disjunction))*
11710static comprehension_ty
11711for_if_clause_rule(Parser *p)
11712{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011713 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011715 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011716 return NULL;
11717 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011718 comprehension_ty _res = NULL;
11719 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011720 { // ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011721 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011722 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011723 return NULL;
11724 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011725 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 +010011726 Token * _keyword;
11727 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011728 expr_ty a;
Pablo Galindob796b3f2020-05-01 12:32:26 +010011729 Token * async_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011730 expr_ty b;
11731 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011732 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011733 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011734 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011735 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011736 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011737 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011738 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011739 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011740 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011741 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011742 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011743 (c = _loop0_105_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011744 )
11745 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011746 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 +010011747 _res = CHECK_VERSION ( 6 , "Async comprehensions are" , _Py_comprehension ( a , b , c , 1 , p -> arena ) );
11748 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011749 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011750 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011751 return NULL;
11752 }
11753 goto done;
11754 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011755 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011756 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
11757 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC 'for' star_targets 'in' disjunction (('if' disjunction))*"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011758 }
11759 { // 'for' star_targets 'in' disjunction (('if' disjunction))*
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011760 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011761 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011762 return NULL;
11763 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011764 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 +010011765 Token * _keyword;
11766 Token * _keyword_1;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011767 expr_ty a;
11768 expr_ty b;
11769 asdl_seq * c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011770 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011771 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011772 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011773 (a = star_targets_rule(p)) // star_targets
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011774 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011775 (_keyword_1 = _PyPegen_expect_token(p, 518)) // token='in'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011776 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011777 (b = disjunction_rule(p)) // disjunction
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011778 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011779 (c = _loop0_106_rule(p)) // (('if' disjunction))*
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030011780 )
11781 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011782 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 +010011783 _res = _Py_comprehension ( a , b , c , 0 , p -> arena );
11784 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011785 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011786 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011787 return NULL;
11788 }
11789 goto done;
11790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011791 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011792 D(fprintf(stderr, "%*c%s for_if_clause[%d-%d]: %s failed!\n", p->level, ' ',
11793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for' star_targets 'in' disjunction (('if' disjunction))*"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011795 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011796 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011797 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011798 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011799}
11800
11801// yield_expr: 'yield' 'from' expression | 'yield' star_expressions?
11802static expr_ty
11803yield_expr_rule(Parser *p)
11804{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011805 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011806 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011807 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011808 return NULL;
11809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011810 expr_ty _res = NULL;
11811 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011812 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11813 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011814 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011815 return NULL;
11816 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011817 int _start_lineno = p->tokens[_mark]->lineno;
11818 UNUSED(_start_lineno); // Only used by EXTRA macro
11819 int _start_col_offset = p->tokens[_mark]->col_offset;
11820 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011821 { // 'yield' 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011822 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011823 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011824 return NULL;
11825 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011826 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 +010011827 Token * _keyword;
11828 Token * _keyword_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011829 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011830 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011831 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011832 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011833 (_keyword_1 = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011834 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011835 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011836 )
11837 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011838 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 +010011839 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11840 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011841 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011842 return NULL;
11843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011844 int _end_lineno = _token->end_lineno;
11845 UNUSED(_end_lineno); // Only used by EXTRA macro
11846 int _end_col_offset = _token->end_col_offset;
11847 UNUSED(_end_col_offset); // Only used by EXTRA macro
11848 _res = _Py_YieldFrom ( a , EXTRA );
11849 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011850 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011851 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011852 return NULL;
11853 }
11854 goto done;
11855 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011856 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011857 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
11858 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' 'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011859 }
11860 { // 'yield' star_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011862 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011863 return NULL;
11864 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011865 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 +010011866 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011867 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011868 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011869 (_keyword = _PyPegen_expect_token(p, 504)) // token='yield'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011870 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011871 (a = star_expressions_rule(p), 1) // star_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011872 )
11873 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011874 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 +010011875 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
11876 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011877 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011878 return NULL;
11879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011880 int _end_lineno = _token->end_lineno;
11881 UNUSED(_end_lineno); // Only used by EXTRA macro
11882 int _end_col_offset = _token->end_col_offset;
11883 UNUSED(_end_col_offset); // Only used by EXTRA macro
11884 _res = _Py_Yield ( a , EXTRA );
11885 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011886 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011887 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011888 return NULL;
11889 }
11890 goto done;
11891 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011892 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011893 D(fprintf(stderr, "%*c%s yield_expr[%d-%d]: %s failed!\n", p->level, ' ',
11894 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'yield' star_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011896 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011897 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011898 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011899 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011900}
11901
11902// arguments: args ','? &')' | incorrect_arguments
11903static expr_ty
11904arguments_rule(Parser *p)
11905{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011906 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011909 return NULL;
11910 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011911 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011912 if (_PyPegen_is_memoized(p, arguments_type, &_res)) {
11913 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011914 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011915 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011916 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011917 { // args ','? &')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011920 return NULL;
11921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011922 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011923 void *_opt_var;
11924 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011925 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011926 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011927 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011928 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011929 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011930 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010011931 _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 8) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011932 )
11933 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011934 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ','? &')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011935 _res = a;
11936 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011937 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011939 return NULL;
11940 }
11941 goto done;
11942 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011943 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011944 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
11945 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ','? &')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011946 }
11947 { // incorrect_arguments
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011948 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011949 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011950 return NULL;
11951 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011952 D(fprintf(stderr, "%*c> arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011953 void *incorrect_arguments_var;
11954 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010011955 (incorrect_arguments_var = incorrect_arguments_rule(p)) // incorrect_arguments
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011956 )
11957 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011958 D(fprintf(stderr, "%*c+ arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "incorrect_arguments"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011959 _res = incorrect_arguments_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011960 goto done;
11961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011962 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011963 D(fprintf(stderr, "%*c%s arguments[%d-%d]: %s failed!\n", p->level, ' ',
11964 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "incorrect_arguments"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011966 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011967 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011968 _PyPegen_insert_memo(p, _mark, arguments_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011969 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011970 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011971}
11972
11973// args: starred_expression [',' args] | kwargs | named_expression [',' args]
11974static expr_ty
11975args_rule(Parser *p)
11976{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011977 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011978 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011979 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011980 return NULL;
11981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011982 expr_ty _res = NULL;
11983 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011984 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
11985 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011986 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011987 return NULL;
11988 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010011989 int _start_lineno = p->tokens[_mark]->lineno;
11990 UNUSED(_start_lineno); // Only used by EXTRA macro
11991 int _start_col_offset = p->tokens[_mark]->col_offset;
11992 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011993 { // starred_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011995 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030011996 return NULL;
11997 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070011998 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010011999 expr_ty a;
12000 void *b;
12001 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012002 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012003 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012004 (b = _tmp_107_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012005 )
12006 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012007 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 +010012008 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12009 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012010 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012011 return NULL;
12012 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012013 int _end_lineno = _token->end_lineno;
12014 UNUSED(_end_lineno); // Only used by EXTRA macro
12015 int _end_col_offset = _token->end_col_offset;
12016 UNUSED(_end_col_offset); // Only used by EXTRA macro
12017 _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 );
12018 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012019 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012020 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012021 return NULL;
12022 }
12023 goto done;
12024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012025 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012026 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12027 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012028 }
12029 { // kwargs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012030 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012031 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012032 return NULL;
12033 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012034 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012035 asdl_seq* a;
12036 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012037 (a = kwargs_rule(p)) // kwargs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012038 )
12039 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012040 D(fprintf(stderr, "%*c+ args[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "kwargs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012041 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12042 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012043 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012044 return NULL;
12045 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012046 int _end_lineno = _token->end_lineno;
12047 UNUSED(_end_lineno); // Only used by EXTRA macro
12048 int _end_col_offset = _token->end_col_offset;
12049 UNUSED(_end_col_offset); // Only used by EXTRA macro
12050 _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 );
12051 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012052 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012053 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012054 return NULL;
12055 }
12056 goto done;
12057 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012058 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012059 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12060 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwargs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012061 }
12062 { // named_expression [',' args]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012063 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012064 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012065 return NULL;
12066 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012067 D(fprintf(stderr, "%*c> args[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012068 expr_ty a;
12069 void *b;
12070 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012071 (a = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012072 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012073 (b = _tmp_108_rule(p), 1) // [',' args]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012074 )
12075 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012076 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 +010012077 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12078 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012079 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012080 return NULL;
12081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012082 int _end_lineno = _token->end_lineno;
12083 UNUSED(_end_lineno); // Only used by EXTRA macro
12084 int _end_col_offset = _token->end_col_offset;
12085 UNUSED(_end_col_offset); // Only used by EXTRA macro
12086 _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 );
12087 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012088 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012089 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012090 return NULL;
12091 }
12092 goto done;
12093 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012094 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012095 D(fprintf(stderr, "%*c%s args[%d-%d]: %s failed!\n", p->level, ' ',
12096 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression [',' args]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012097 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012098 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012099 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012100 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012101 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012102}
12103
12104// kwargs:
12105// | ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
12106// | ','.kwarg_or_starred+
12107// | ','.kwarg_or_double_starred+
12108static asdl_seq*
12109kwargs_rule(Parser *p)
12110{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012111 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012112 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012113 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012114 return NULL;
12115 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012116 asdl_seq* _res = NULL;
12117 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012118 { // ','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012119 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012120 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012121 return NULL;
12122 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012123 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 +010012124 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012125 asdl_seq * a;
12126 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012127 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012128 (a = _gather_109_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012129 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012130 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012131 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012132 (b = _gather_111_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012133 )
12134 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012135 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 +010012136 _res = _PyPegen_join_sequences ( p , a , b );
12137 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012138 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012139 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012140 return NULL;
12141 }
12142 goto done;
12143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012144 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012145 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+ ',' ','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012147 }
12148 { // ','.kwarg_or_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012150 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012151 return NULL;
12152 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012153 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 -070012154 asdl_seq * _gather_113_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012155 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012156 (_gather_113_var = _gather_113_rule(p)) // ','.kwarg_or_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012157 )
12158 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012159 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 +010012160 _res = _gather_113_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012161 goto done;
12162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012163 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012164 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012166 }
12167 { // ','.kwarg_or_double_starred+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012170 return NULL;
12171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012172 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 -070012173 asdl_seq * _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012175 (_gather_115_var = _gather_115_rule(p)) // ','.kwarg_or_double_starred+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012176 )
12177 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012178 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 +010012179 _res = _gather_115_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012180 goto done;
12181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012182 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012183 D(fprintf(stderr, "%*c%s kwargs[%d-%d]: %s failed!\n", p->level, ' ',
12184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.kwarg_or_double_starred+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012186 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012187 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012188 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012189 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012190}
12191
12192// starred_expression: '*' expression
12193static expr_ty
12194starred_expression_rule(Parser *p)
12195{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012196 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012197 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012198 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012199 return NULL;
12200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012201 expr_ty _res = NULL;
12202 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012203 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12204 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012205 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012206 return NULL;
12207 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012208 int _start_lineno = p->tokens[_mark]->lineno;
12209 UNUSED(_start_lineno); // Only used by EXTRA macro
12210 int _start_col_offset = p->tokens[_mark]->col_offset;
12211 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012212 { // '*' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012214 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012215 return NULL;
12216 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012217 D(fprintf(stderr, "%*c> starred_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012218 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012219 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012220 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012221 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012222 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012223 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012224 )
12225 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012226 D(fprintf(stderr, "%*c+ starred_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012227 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12228 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012229 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012230 return NULL;
12231 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012232 int _end_lineno = _token->end_lineno;
12233 UNUSED(_end_lineno); // Only used by EXTRA macro
12234 int _end_col_offset = _token->end_col_offset;
12235 UNUSED(_end_col_offset); // Only used by EXTRA macro
12236 _res = _Py_Starred ( a , Load , EXTRA );
12237 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012238 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012239 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012240 return NULL;
12241 }
12242 goto done;
12243 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012244 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012245 D(fprintf(stderr, "%*c%s starred_expression[%d-%d]: %s failed!\n", p->level, ' ',
12246 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012247 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012248 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012249 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012250 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012251 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012252}
12253
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012254// kwarg_or_starred: NAME '=' expression | starred_expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012255static KeywordOrStarred*
12256kwarg_or_starred_rule(Parser *p)
12257{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012258 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012260 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012261 return NULL;
12262 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012263 KeywordOrStarred* _res = NULL;
12264 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012265 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12266 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012267 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012268 return NULL;
12269 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012270 int _start_lineno = p->tokens[_mark]->lineno;
12271 UNUSED(_start_lineno); // Only used by EXTRA macro
12272 int _start_col_offset = p->tokens[_mark]->col_offset;
12273 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012274 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012276 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012277 return NULL;
12278 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012279 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 +010012280 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012281 expr_ty a;
12282 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012283 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012284 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012285 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012286 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012287 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012288 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012289 )
12290 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012291 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 +010012292 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12293 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012294 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012295 return NULL;
12296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012297 int _end_lineno = _token->end_lineno;
12298 UNUSED(_end_lineno); // Only used by EXTRA macro
12299 int _end_col_offset = _token->end_col_offset;
12300 UNUSED(_end_col_offset); // Only used by EXTRA macro
12301 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12302 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012303 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012304 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012305 return NULL;
12306 }
12307 goto done;
12308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012309 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012310 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12311 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012312 }
12313 { // starred_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012314 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012315 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012316 return NULL;
12317 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012318 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 +010012319 expr_ty a;
12320 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012321 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012322 )
12323 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012324 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 +010012325 _res = _PyPegen_keyword_or_starred ( p , a , 0 );
12326 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012327 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012328 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012329 return NULL;
12330 }
12331 goto done;
12332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012333 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012334 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12335 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012336 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012337 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012338 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012339 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012340 return NULL;
12341 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012342 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 +030012343 void *invalid_kwarg_var;
12344 if (
12345 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12346 )
12347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012348 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 +010012349 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012350 goto done;
12351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012353 D(fprintf(stderr, "%*c%s kwarg_or_starred[%d-%d]: %s failed!\n", p->level, ' ',
12354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012356 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012357 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012358 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012359 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012360}
12361
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012362// kwarg_or_double_starred: NAME '=' expression | '**' expression | invalid_kwarg
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012363static KeywordOrStarred*
12364kwarg_or_double_starred_rule(Parser *p)
12365{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012366 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012367 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012368 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012369 return NULL;
12370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012371 KeywordOrStarred* _res = NULL;
12372 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012373 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12374 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012376 return NULL;
12377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012378 int _start_lineno = p->tokens[_mark]->lineno;
12379 UNUSED(_start_lineno); // Only used by EXTRA macro
12380 int _start_col_offset = p->tokens[_mark]->col_offset;
12381 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012382 { // NAME '=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012383 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012384 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012385 return NULL;
12386 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012387 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 +010012388 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012389 expr_ty a;
12390 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012391 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012392 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012393 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012394 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012395 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012396 (b = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012397 )
12398 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012399 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 +010012400 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12401 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012402 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012403 return NULL;
12404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012405 int _end_lineno = _token->end_lineno;
12406 UNUSED(_end_lineno); // Only used by EXTRA macro
12407 int _end_col_offset = _token->end_col_offset;
12408 UNUSED(_end_col_offset); // Only used by EXTRA macro
12409 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( a -> v . Name . id , b , EXTRA ) ) , 1 );
12410 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012411 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012412 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012413 return NULL;
12414 }
12415 goto done;
12416 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012417 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012418 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12419 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME '=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012420 }
12421 { // '**' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012422 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012423 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012424 return NULL;
12425 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012426 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 +010012427 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012428 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012429 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012430 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012431 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012432 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012433 )
12434 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012435 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 +010012436 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12437 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012438 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012439 return NULL;
12440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012441 int _end_lineno = _token->end_lineno;
12442 UNUSED(_end_lineno); // Only used by EXTRA macro
12443 int _end_col_offset = _token->end_col_offset;
12444 UNUSED(_end_col_offset); // Only used by EXTRA macro
12445 _res = _PyPegen_keyword_or_starred ( p , CHECK ( _Py_keyword ( NULL , a , EXTRA ) ) , 1 );
12446 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012447 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012448 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012449 return NULL;
12450 }
12451 goto done;
12452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012454 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012456 }
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012457 { // invalid_kwarg
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012458 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012459 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012460 return NULL;
12461 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012462 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 +030012463 void *invalid_kwarg_var;
12464 if (
12465 (invalid_kwarg_var = invalid_kwarg_rule(p)) // invalid_kwarg
12466 )
12467 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012468 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 +010012469 _res = invalid_kwarg_var;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012470 goto done;
12471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012472 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012473 D(fprintf(stderr, "%*c%s kwarg_or_double_starred[%d-%d]: %s failed!\n", p->level, ' ',
12474 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_kwarg"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030012475 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012476 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012477 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012478 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012479 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012480}
12481
12482// star_targets: star_target !',' | star_target ((',' star_target))* ','?
12483static expr_ty
12484star_targets_rule(Parser *p)
12485{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012486 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012487 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012488 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012489 return NULL;
12490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012491 expr_ty _res = NULL;
12492 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012493 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12494 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012496 return NULL;
12497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012498 int _start_lineno = p->tokens[_mark]->lineno;
12499 UNUSED(_start_lineno); // Only used by EXTRA macro
12500 int _start_col_offset = p->tokens[_mark]->col_offset;
12501 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012502 { // star_target !','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012504 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012505 return NULL;
12506 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012507 D(fprintf(stderr, "%*c> star_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012508 expr_ty a;
12509 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012510 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012511 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012512 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 12) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012513 )
12514 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012515 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 +010012516 _res = a;
12517 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012518 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012519 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012520 return NULL;
12521 }
12522 goto done;
12523 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012524 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012525 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12526 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target !','"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012527 }
12528 { // star_target ((',' star_target))* ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012529 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012530 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012531 return NULL;
12532 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012533 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 +010012534 void *_opt_var;
12535 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012536 expr_ty a;
12537 asdl_seq * b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012538 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012539 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012540 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012541 (b = _loop0_117_rule(p)) // ((',' star_target))*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012542 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012543 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012544 )
12545 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012546 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 +010012547 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12548 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012549 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012550 return NULL;
12551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012552 int _end_lineno = _token->end_lineno;
12553 UNUSED(_end_lineno); // Only used by EXTRA macro
12554 int _end_col_offset = _token->end_col_offset;
12555 UNUSED(_end_col_offset); // Only used by EXTRA macro
12556 _res = _Py_Tuple ( CHECK ( _PyPegen_seq_insert_in_front ( p , a , b ) ) , Store , EXTRA );
12557 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012558 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012560 return NULL;
12561 }
12562 goto done;
12563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012565 D(fprintf(stderr, "%*c%s star_targets[%d-%d]: %s failed!\n", p->level, ' ',
12566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target ((',' star_target))* ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012568 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012569 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012571 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012572}
12573
12574// star_targets_seq: ','.star_target+ ','?
12575static asdl_seq*
12576star_targets_seq_rule(Parser *p)
12577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012578 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012581 return NULL;
12582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012583 asdl_seq* _res = NULL;
12584 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012585 { // ','.star_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012587 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012588 return NULL;
12589 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012590 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 +010012591 void *_opt_var;
12592 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012593 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012594 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012595 (a = _gather_118_rule(p)) // ','.star_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012596 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012597 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012598 )
12599 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012600 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 +010012601 _res = a;
12602 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012603 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012604 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012605 return NULL;
12606 }
12607 goto done;
12608 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012609 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012610 D(fprintf(stderr, "%*c%s star_targets_seq[%d-%d]: %s failed!\n", p->level, ' ',
12611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.star_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012613 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012614 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012615 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012616 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012617}
12618
12619// star_target:
12620// | '*' (!'*' star_target)
12621// | t_primary '.' NAME !t_lookahead
12622// | t_primary '[' slices ']' !t_lookahead
12623// | star_atom
12624static expr_ty
12625star_target_rule(Parser *p)
12626{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012627 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012628 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012629 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012630 return NULL;
12631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012632 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012633 if (_PyPegen_is_memoized(p, star_target_type, &_res)) {
12634 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012635 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012637 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012638 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12639 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012640 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012641 return NULL;
12642 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012643 int _start_lineno = p->tokens[_mark]->lineno;
12644 UNUSED(_start_lineno); // Only used by EXTRA macro
12645 int _start_col_offset = p->tokens[_mark]->col_offset;
12646 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012647 { // '*' (!'*' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012648 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012649 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012650 return NULL;
12651 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012652 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012653 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012654 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012655 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012656 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012657 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012658 (a = _tmp_120_rule(p)) // !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012659 )
12660 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012661 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 +010012662 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12663 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012665 return NULL;
12666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012667 int _end_lineno = _token->end_lineno;
12668 UNUSED(_end_lineno); // Only used by EXTRA macro
12669 int _end_col_offset = _token->end_col_offset;
12670 UNUSED(_end_col_offset); // Only used by EXTRA macro
12671 _res = _Py_Starred ( CHECK ( _PyPegen_set_expr_context ( p , a , Store ) ) , Store , EXTRA );
12672 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012673 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012675 return NULL;
12676 }
12677 goto done;
12678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012679 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012680 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12681 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (!'*' star_target)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012682 }
12683 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012684 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012685 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012686 return NULL;
12687 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012688 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012689 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012690 expr_ty a;
12691 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012692 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012693 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012694 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012695 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012696 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012697 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012698 &&
12699 _PyPegen_lookahead(0, t_lookahead_rule, p)
12700 )
12701 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012702 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 +010012703 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12704 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012705 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012706 return NULL;
12707 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012708 int _end_lineno = _token->end_lineno;
12709 UNUSED(_end_lineno); // Only used by EXTRA macro
12710 int _end_col_offset = _token->end_col_offset;
12711 UNUSED(_end_col_offset); // Only used by EXTRA macro
12712 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
12713 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012714 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012715 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012716 return NULL;
12717 }
12718 goto done;
12719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012720 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012721 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12722 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012723 }
12724 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012725 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012726 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012727 return NULL;
12728 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012729 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 +010012730 Token * _literal;
12731 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012732 expr_ty a;
12733 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012734 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012735 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012736 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012737 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012738 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012739 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012740 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012741 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012742 &&
12743 _PyPegen_lookahead(0, t_lookahead_rule, p)
12744 )
12745 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012746 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 +010012747 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12748 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012749 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012750 return NULL;
12751 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012752 int _end_lineno = _token->end_lineno;
12753 UNUSED(_end_lineno); // Only used by EXTRA macro
12754 int _end_col_offset = _token->end_col_offset;
12755 UNUSED(_end_col_offset); // Only used by EXTRA macro
12756 _res = _Py_Subscript ( a , b , Store , EXTRA );
12757 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012758 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012759 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012760 return NULL;
12761 }
12762 goto done;
12763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012765 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012767 }
12768 { // star_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012769 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012770 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012771 return NULL;
12772 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012773 D(fprintf(stderr, "%*c> star_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012774 expr_ty star_atom_var;
12775 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012776 (star_atom_var = star_atom_rule(p)) // star_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012777 )
12778 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012779 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 +010012780 _res = star_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012781 goto done;
12782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012784 D(fprintf(stderr, "%*c%s star_target[%d-%d]: %s failed!\n", p->level, ' ',
12785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012787 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012788 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012789 _PyPegen_insert_memo(p, _mark, star_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012790 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012791 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012792}
12793
12794// star_atom:
12795// | NAME
12796// | '(' star_target ')'
12797// | '(' star_targets_seq? ')'
12798// | '[' star_targets_seq? ']'
12799static expr_ty
12800star_atom_rule(Parser *p)
12801{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012802 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012803 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012804 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012805 return NULL;
12806 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012807 expr_ty _res = NULL;
12808 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012809 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
12810 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012811 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012812 return NULL;
12813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012814 int _start_lineno = p->tokens[_mark]->lineno;
12815 UNUSED(_start_lineno); // Only used by EXTRA macro
12816 int _start_col_offset = p->tokens[_mark]->col_offset;
12817 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012818 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012820 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012821 return NULL;
12822 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012823 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012824 expr_ty a;
12825 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012826 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012827 )
12828 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012829 D(fprintf(stderr, "%*c+ star_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012830 _res = _PyPegen_set_expr_context ( p , a , Store );
12831 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012832 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012833 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012834 return NULL;
12835 }
12836 goto done;
12837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012838 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012839 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12840 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012841 }
12842 { // '(' star_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012843 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012844 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012845 return NULL;
12846 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012847 D(fprintf(stderr, "%*c> star_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012848 Token * _literal;
12849 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012850 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012851 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012852 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012853 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012854 (a = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012855 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012856 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012857 )
12858 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012859 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 +010012860 _res = _PyPegen_set_expr_context ( p , a , Store );
12861 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012862 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012863 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012864 return NULL;
12865 }
12866 goto done;
12867 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012868 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012869 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12870 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012871 }
12872 { // '(' star_targets_seq? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012873 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012874 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012875 return NULL;
12876 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012877 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 +010012878 Token * _literal;
12879 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012880 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012881 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012882 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012883 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012884 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012885 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012886 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012887 )
12888 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012889 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 +010012890 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12891 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012892 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012893 return NULL;
12894 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012895 int _end_lineno = _token->end_lineno;
12896 UNUSED(_end_lineno); // Only used by EXTRA macro
12897 int _end_col_offset = _token->end_col_offset;
12898 UNUSED(_end_col_offset); // Only used by EXTRA macro
12899 _res = _Py_Tuple ( a , Store , EXTRA );
12900 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012901 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012902 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012903 return NULL;
12904 }
12905 goto done;
12906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012907 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012908 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12909 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' star_targets_seq? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012910 }
12911 { // '[' star_targets_seq? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012912 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012913 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012914 return NULL;
12915 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012916 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 +010012917 Token * _literal;
12918 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012919 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012920 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012921 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012922 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010012923 (a = star_targets_seq_rule(p), 1) // star_targets_seq?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012924 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012925 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012926 )
12927 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012928 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 +010012929 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
12930 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012931 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012932 return NULL;
12933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012934 int _end_lineno = _token->end_lineno;
12935 UNUSED(_end_lineno); // Only used by EXTRA macro
12936 int _end_col_offset = _token->end_col_offset;
12937 UNUSED(_end_col_offset); // Only used by EXTRA macro
12938 _res = _Py_List ( a , Store , EXTRA );
12939 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012940 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012941 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012942 return NULL;
12943 }
12944 goto done;
12945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012946 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012947 D(fprintf(stderr, "%*c%s star_atom[%d-%d]: %s failed!\n", p->level, ' ',
12948 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' star_targets_seq? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012949 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012950 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012951 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012952 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012953 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012954}
12955
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012956// single_target: single_subscript_attribute_target | NAME | '(' single_target ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012957static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012958single_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012959{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012960 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012961 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012962 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012963 return NULL;
12964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012965 expr_ty _res = NULL;
12966 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012967 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012969 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012970 return NULL;
12971 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012972 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 +030012973 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012974 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030012975 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012976 )
12977 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012978 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 +030012979 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012980 goto done;
12981 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012982 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012983 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
12984 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012985 }
12986 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012987 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012988 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030012989 return NULL;
12990 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012991 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012992 expr_ty a;
12993 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010012994 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010012995 )
12996 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070012997 D(fprintf(stderr, "%*c+ single_target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010012998 _res = _PyPegen_set_expr_context ( p , a , Store );
12999 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013000 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013001 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013002 return NULL;
13003 }
13004 goto done;
13005 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013006 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013007 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13008 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013009 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013010 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013011 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013012 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013013 return NULL;
13014 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013015 D(fprintf(stderr, "%*c> single_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013016 Token * _literal;
13017 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013018 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013019 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013020 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013021 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013022 (a = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013023 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013024 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013025 )
13026 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013027 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 +010013028 _res = a;
13029 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013030 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013031 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013032 return NULL;
13033 }
13034 goto done;
13035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013036 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013037 D(fprintf(stderr, "%*c%s single_target[%d-%d]: %s failed!\n", p->level, ' ',
13038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013040 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013041 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013042 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013043 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013044}
13045
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013046// single_subscript_attribute_target:
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013047// | t_primary '.' NAME !t_lookahead
13048// | t_primary '[' slices ']' !t_lookahead
13049static expr_ty
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030013050single_subscript_attribute_target_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013051{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013052 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013054 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013055 return NULL;
13056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013057 expr_ty _res = NULL;
13058 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013059 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13060 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013061 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013062 return NULL;
13063 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013064 int _start_lineno = p->tokens[_mark]->lineno;
13065 UNUSED(_start_lineno); // Only used by EXTRA macro
13066 int _start_col_offset = p->tokens[_mark]->col_offset;
13067 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013068 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013069 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013070 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013071 return NULL;
13072 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013073 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 +010013074 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013075 expr_ty a;
13076 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013077 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013078 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013079 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013080 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013081 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013082 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013083 &&
13084 _PyPegen_lookahead(0, t_lookahead_rule, p)
13085 )
13086 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013087 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 +010013088 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13089 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013090 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013091 return NULL;
13092 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013093 int _end_lineno = _token->end_lineno;
13094 UNUSED(_end_lineno); // Only used by EXTRA macro
13095 int _end_col_offset = _token->end_col_offset;
13096 UNUSED(_end_col_offset); // Only used by EXTRA macro
13097 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13098 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013099 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013100 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013101 return NULL;
13102 }
13103 goto done;
13104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013105 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013106 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013108 }
13109 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013110 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013111 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013112 return NULL;
13113 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013114 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 +010013115 Token * _literal;
13116 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013117 expr_ty a;
13118 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013119 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013120 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013121 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013122 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013123 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013124 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013125 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013126 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013127 &&
13128 _PyPegen_lookahead(0, t_lookahead_rule, p)
13129 )
13130 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013131 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 +010013132 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13133 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013134 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013135 return NULL;
13136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013137 int _end_lineno = _token->end_lineno;
13138 UNUSED(_end_lineno); // Only used by EXTRA macro
13139 int _end_col_offset = _token->end_col_offset;
13140 UNUSED(_end_col_offset); // Only used by EXTRA macro
13141 _res = _Py_Subscript ( a , b , Store , EXTRA );
13142 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013143 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013144 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013145 return NULL;
13146 }
13147 goto done;
13148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013149 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013150 D(fprintf(stderr, "%*c%s single_subscript_attribute_target[%d-%d]: %s failed!\n", p->level, ' ',
13151 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013152 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013153 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013154 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013155 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013156 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013157}
13158
13159// del_targets: ','.del_target+ ','?
13160static asdl_seq*
13161del_targets_rule(Parser *p)
13162{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013163 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013164 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013165 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013166 return NULL;
13167 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013168 asdl_seq* _res = NULL;
13169 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013170 { // ','.del_target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013172 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013173 return NULL;
13174 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013175 D(fprintf(stderr, "%*c> del_targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013176 void *_opt_var;
13177 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013178 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013179 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013180 (a = _gather_121_rule(p)) // ','.del_target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013181 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013182 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013183 )
13184 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013185 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 +010013186 _res = a;
13187 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013188 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013189 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013190 return NULL;
13191 }
13192 goto done;
13193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013194 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013195 D(fprintf(stderr, "%*c%s del_targets[%d-%d]: %s failed!\n", p->level, ' ',
13196 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.del_target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013197 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013198 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013199 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013200 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013201 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013202}
13203
13204// del_target:
Shantanu27c0d9b2020-05-11 14:53:58 -070013205// | t_primary '.' NAME &del_target_end
13206// | t_primary '[' slices ']' &del_target_end
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013207// | del_t_atom
13208static expr_ty
13209del_target_rule(Parser *p)
13210{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013211 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013212 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013213 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013214 return NULL;
13215 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013216 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013217 if (_PyPegen_is_memoized(p, del_target_type, &_res)) {
13218 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013219 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013221 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013222 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13223 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013224 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013225 return NULL;
13226 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013227 int _start_lineno = p->tokens[_mark]->lineno;
13228 UNUSED(_start_lineno); // Only used by EXTRA macro
13229 int _start_col_offset = p->tokens[_mark]->col_offset;
13230 UNUSED(_start_col_offset); // Only used by EXTRA macro
Shantanu27c0d9b2020-05-11 14:53:58 -070013231 { // t_primary '.' NAME &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013233 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013234 return NULL;
13235 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013236 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 +010013237 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013238 expr_ty a;
13239 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013240 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013241 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013242 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013243 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013244 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013245 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013246 &&
Shantanu27c0d9b2020-05-11 14:53:58 -070013247 _PyPegen_lookahead(1, del_target_end_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013248 )
13249 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013250 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 +010013251 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13252 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013254 return NULL;
13255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013256 int _end_lineno = _token->end_lineno;
13257 UNUSED(_end_lineno); // Only used by EXTRA macro
13258 int _end_col_offset = _token->end_col_offset;
13259 UNUSED(_end_col_offset); // Only used by EXTRA macro
13260 _res = _Py_Attribute ( a , b -> v . Name . id , Del , EXTRA );
13261 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013262 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013263 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013264 return NULL;
13265 }
13266 goto done;
13267 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013268 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013269 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13270 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013271 }
Shantanu27c0d9b2020-05-11 14:53:58 -070013272 { // t_primary '[' slices ']' &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013273 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013274 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013275 return NULL;
13276 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013277 D(fprintf(stderr, "%*c> del_target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &del_target_end"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013278 Token * _literal;
13279 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013280 expr_ty a;
13281 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013282 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013283 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013284 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013285 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013286 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013287 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013288 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013289 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013290 &&
Shantanu27c0d9b2020-05-11 14:53:58 -070013291 _PyPegen_lookahead(1, del_target_end_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013292 )
13293 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013294 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 +010013295 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13296 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013298 return NULL;
13299 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013300 int _end_lineno = _token->end_lineno;
13301 UNUSED(_end_lineno); // Only used by EXTRA macro
13302 int _end_col_offset = _token->end_col_offset;
13303 UNUSED(_end_col_offset); // Only used by EXTRA macro
13304 _res = _Py_Subscript ( a , b , Del , EXTRA );
13305 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013306 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013307 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013308 return NULL;
13309 }
13310 goto done;
13311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013312 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013313 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13314 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013315 }
13316 { // del_t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013317 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013318 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013319 return NULL;
13320 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013321 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 +010013322 expr_ty del_t_atom_var;
13323 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013324 (del_t_atom_var = del_t_atom_rule(p)) // del_t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013325 )
13326 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013327 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 +010013328 _res = del_t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013329 goto done;
13330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013331 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013332 D(fprintf(stderr, "%*c%s del_target[%d-%d]: %s failed!\n", p->level, ' ',
13333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013335 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013336 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013337 _PyPegen_insert_memo(p, _mark, del_target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013338 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013339 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013340}
13341
Shantanu27c0d9b2020-05-11 14:53:58 -070013342// del_t_atom:
13343// | NAME &del_target_end
13344// | '(' del_target ')'
13345// | '(' del_targets? ')'
13346// | '[' del_targets? ']'
13347// | invalid_del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013348static expr_ty
13349del_t_atom_rule(Parser *p)
13350{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013351 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013352 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013353 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013354 return NULL;
13355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013356 expr_ty _res = NULL;
13357 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013358 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13359 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013360 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013361 return NULL;
13362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013363 int _start_lineno = p->tokens[_mark]->lineno;
13364 UNUSED(_start_lineno); // Only used by EXTRA macro
13365 int _start_col_offset = p->tokens[_mark]->col_offset;
13366 UNUSED(_start_col_offset); // Only used by EXTRA macro
Shantanu27c0d9b2020-05-11 14:53:58 -070013367 { // NAME &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013368 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013369 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013370 return NULL;
13371 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013372 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 +010013373 expr_ty a;
13374 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013375 (a = _PyPegen_name_token(p)) // NAME
Shantanu27c0d9b2020-05-11 14:53:58 -070013376 &&
13377 _PyPegen_lookahead(1, del_target_end_rule, p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013378 )
13379 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013380 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 +010013381 _res = _PyPegen_set_expr_context ( p , a , Del );
13382 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013383 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013384 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013385 return NULL;
13386 }
13387 goto done;
13388 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013389 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013390 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13391 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME &del_target_end"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013392 }
13393 { // '(' del_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013394 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013395 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013396 return NULL;
13397 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013398 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 +010013399 Token * _literal;
13400 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013401 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013402 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013403 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013404 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013405 (a = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013406 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013407 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013408 )
13409 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013410 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 +010013411 _res = _PyPegen_set_expr_context ( p , a , Del );
13412 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013413 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013414 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013415 return NULL;
13416 }
13417 goto done;
13418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013419 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013420 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13421 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013422 }
13423 { // '(' del_targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013424 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013425 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013426 return NULL;
13427 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013428 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 +010013429 Token * _literal;
13430 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013431 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013432 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013433 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013434 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013435 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013436 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013437 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013438 )
13439 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013440 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 +010013441 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13442 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013443 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013444 return NULL;
13445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013446 int _end_lineno = _token->end_lineno;
13447 UNUSED(_end_lineno); // Only used by EXTRA macro
13448 int _end_col_offset = _token->end_col_offset;
13449 UNUSED(_end_col_offset); // Only used by EXTRA macro
13450 _res = _Py_Tuple ( a , Del , EXTRA );
13451 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013452 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013453 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013454 return NULL;
13455 }
13456 goto done;
13457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013458 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013459 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13460 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' del_targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013461 }
13462 { // '[' del_targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013463 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013464 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013465 return NULL;
13466 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013467 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 +010013468 Token * _literal;
13469 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013470 void *a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013471 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013472 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013473 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013474 (a = del_targets_rule(p), 1) // del_targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013475 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013476 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013477 )
13478 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013479 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 +010013480 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13481 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013482 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013483 return NULL;
13484 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013485 int _end_lineno = _token->end_lineno;
13486 UNUSED(_end_lineno); // Only used by EXTRA macro
13487 int _end_col_offset = _token->end_col_offset;
13488 UNUSED(_end_col_offset); // Only used by EXTRA macro
13489 _res = _Py_List ( a , Del , EXTRA );
13490 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013491 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013492 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013493 return NULL;
13494 }
13495 goto done;
13496 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013497 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013498 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13499 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' del_targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013500 }
Shantanu27c0d9b2020-05-11 14:53:58 -070013501 { // invalid_del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013502 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013503 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013504 return NULL;
13505 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013506 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 -070013507 void *invalid_del_target_var;
13508 if (
13509 (invalid_del_target_var = invalid_del_target_rule(p)) // invalid_del_target
13510 )
13511 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013512 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 -070013513 _res = invalid_del_target_var;
13514 goto done;
13515 }
13516 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013517 D(fprintf(stderr, "%*c%s del_t_atom[%d-%d]: %s failed!\n", p->level, ' ',
13518 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_del_target"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013519 }
13520 _res = NULL;
13521 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013522 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070013523 return _res;
13524}
13525
13526// del_target_end: ')' | ']' | ',' | ';' | NEWLINE
13527static void *
13528del_target_end_rule(Parser *p)
13529{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013530 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070013531 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013532 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070013533 return NULL;
13534 }
13535 void * _res = NULL;
13536 int _mark = p->mark;
13537 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013538 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013539 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013540 return NULL;
13541 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013542 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013543 Token * _literal;
13544 if (
13545 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
13546 )
13547 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013548 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013549 _res = _literal;
13550 goto done;
13551 }
13552 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013553 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13554 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013555 }
13556 { // ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013557 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013558 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013559 return NULL;
13560 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013561 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "']'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013562 Token * _literal;
13563 if (
13564 (_literal = _PyPegen_expect_token(p, 10)) // token=']'
13565 )
13566 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013567 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "']'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013568 _res = _literal;
13569 goto done;
13570 }
13571 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013572 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13573 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "']'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013574 }
13575 { // ','
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013576 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013577 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013578 return NULL;
13579 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013580 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013581 Token * _literal;
13582 if (
13583 (_literal = _PyPegen_expect_token(p, 12)) // token=','
13584 )
13585 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013586 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013587 _res = _literal;
13588 goto done;
13589 }
13590 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013591 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13592 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013593 }
13594 { // ';'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013595 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013596 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013597 return NULL;
13598 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013599 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013600 Token * _literal;
13601 if (
13602 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
13603 )
13604 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013605 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "';'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013606 _res = _literal;
13607 goto done;
13608 }
13609 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013610 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13611 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';'"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013612 }
13613 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013614 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013615 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013616 return NULL;
13617 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013618 D(fprintf(stderr, "%*c> del_target_end[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013619 Token * newline_var;
13620 if (
13621 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
13622 )
13623 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013624 D(fprintf(stderr, "%*c+ del_target_end[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013625 _res = newline_var;
13626 goto done;
13627 }
13628 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013629 D(fprintf(stderr, "%*c%s del_target_end[%d-%d]: %s failed!\n", p->level, ' ',
13630 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Shantanu27c0d9b2020-05-11 14:53:58 -070013631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013632 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013633 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013634 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013635 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013636}
13637
13638// targets: ','.target+ ','?
13639static asdl_seq*
13640targets_rule(Parser *p)
13641{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013642 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013643 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013644 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013645 return NULL;
13646 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013647 asdl_seq* _res = NULL;
13648 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013649 { // ','.target+ ','?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013650 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013651 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013652 return NULL;
13653 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013654 D(fprintf(stderr, "%*c> targets[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013655 void *_opt_var;
13656 UNUSED(_opt_var); // Silence compiler warnings
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013657 asdl_seq * a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013658 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013659 (a = _gather_123_rule(p)) // ','.target+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013660 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013661 (_opt_var = _PyPegen_expect_token(p, 12), 1) // ','?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013662 )
13663 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013664 D(fprintf(stderr, "%*c+ targets[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.target+ ','?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013665 _res = a;
13666 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013667 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013668 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013669 return NULL;
13670 }
13671 goto done;
13672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013673 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013674 D(fprintf(stderr, "%*c%s targets[%d-%d]: %s failed!\n", p->level, ' ',
13675 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.target+ ','?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013677 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013678 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013679 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013680 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013681}
13682
13683// target:
13684// | t_primary '.' NAME !t_lookahead
13685// | t_primary '[' slices ']' !t_lookahead
13686// | t_atom
13687static expr_ty
13688target_rule(Parser *p)
13689{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013690 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013691 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013692 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013693 return NULL;
13694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013695 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013696 if (_PyPegen_is_memoized(p, target_type, &_res)) {
13697 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013698 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013700 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013701 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13702 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013703 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013704 return NULL;
13705 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013706 int _start_lineno = p->tokens[_mark]->lineno;
13707 UNUSED(_start_lineno); // Only used by EXTRA macro
13708 int _start_col_offset = p->tokens[_mark]->col_offset;
13709 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013710 { // t_primary '.' NAME !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013711 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013712 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013713 return NULL;
13714 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013715 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013716 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013717 expr_ty a;
13718 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013719 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013720 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013721 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013722 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013723 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013724 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013725 &&
13726 _PyPegen_lookahead(0, t_lookahead_rule, p)
13727 )
13728 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013729 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 +010013730 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13731 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013732 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013733 return NULL;
13734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013735 int _end_lineno = _token->end_lineno;
13736 UNUSED(_end_lineno); // Only used by EXTRA macro
13737 int _end_col_offset = _token->end_col_offset;
13738 UNUSED(_end_col_offset); // Only used by EXTRA macro
13739 _res = _Py_Attribute ( a , b -> v . Name . id , Store , EXTRA );
13740 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013741 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013742 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013743 return NULL;
13744 }
13745 goto done;
13746 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013747 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013748 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13749 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013750 }
13751 { // t_primary '[' slices ']' !t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013752 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013753 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013754 return NULL;
13755 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013756 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 +010013757 Token * _literal;
13758 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013759 expr_ty a;
13760 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013761 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013762 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013763 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013764 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013765 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013766 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013767 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013768 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013769 &&
13770 _PyPegen_lookahead(0, t_lookahead_rule, p)
13771 )
13772 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013773 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 +010013774 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13775 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013776 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013777 return NULL;
13778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013779 int _end_lineno = _token->end_lineno;
13780 UNUSED(_end_lineno); // Only used by EXTRA macro
13781 int _end_col_offset = _token->end_col_offset;
13782 UNUSED(_end_col_offset); // Only used by EXTRA macro
13783 _res = _Py_Subscript ( a , b , Store , EXTRA );
13784 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013785 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013786 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013787 return NULL;
13788 }
13789 goto done;
13790 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013791 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013792 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13793 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' !t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013794 }
13795 { // t_atom
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013796 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013797 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013798 return NULL;
13799 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013800 D(fprintf(stderr, "%*c> target[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013801 expr_ty t_atom_var;
13802 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013803 (t_atom_var = t_atom_rule(p)) // t_atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013804 )
13805 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013806 D(fprintf(stderr, "%*c+ target[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "t_atom"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013807 _res = t_atom_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013808 goto done;
13809 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013810 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013811 D(fprintf(stderr, "%*c%s target[%d-%d]: %s failed!\n", p->level, ' ',
13812 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_atom"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013813 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013814 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013815 done:
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013816 _PyPegen_insert_memo(p, _mark, target_type, _res);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013817 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013818 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013819}
13820
13821// Left-recursive
13822// t_primary:
13823// | t_primary '.' NAME &t_lookahead
13824// | t_primary '[' slices ']' &t_lookahead
13825// | t_primary genexp &t_lookahead
13826// | t_primary '(' arguments? ')' &t_lookahead
13827// | atom &t_lookahead
13828static expr_ty t_primary_raw(Parser *);
13829static expr_ty
13830t_primary_rule(Parser *p)
13831{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013832 D(p->level++);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013833 expr_ty _res = NULL;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013834 if (_PyPegen_is_memoized(p, t_primary_type, &_res)) {
13835 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013836 return _res;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013837 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013838 int _mark = p->mark;
13839 int _resmark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013840 while (1) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013841 int tmpvar_8 = _PyPegen_update_memo(p, _mark, t_primary_type, _res);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013842 if (tmpvar_8) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013843 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013844 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013846 p->mark = _mark;
13847 void *_raw = t_primary_raw(p);
13848 if (_raw == NULL || p->mark <= _resmark)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013849 break;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013850 _resmark = p->mark;
13851 _res = _raw;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013852 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013853 p->mark = _resmark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013854 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013855 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013856}
13857static expr_ty
13858t_primary_raw(Parser *p)
13859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013860 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013863 return NULL;
13864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013865 expr_ty _res = NULL;
13866 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013867 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
13868 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013869 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013870 return NULL;
13871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013872 int _start_lineno = p->tokens[_mark]->lineno;
13873 UNUSED(_start_lineno); // Only used by EXTRA macro
13874 int _start_col_offset = p->tokens[_mark]->col_offset;
13875 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013876 { // t_primary '.' NAME &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013877 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013878 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013879 return NULL;
13880 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013881 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 +010013882 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013883 expr_ty a;
13884 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013885 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013886 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013887 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013888 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013889 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013890 (b = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013891 &&
13892 _PyPegen_lookahead(1, t_lookahead_rule, p)
13893 )
13894 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013895 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 +010013896 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13897 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013898 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013899 return NULL;
13900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013901 int _end_lineno = _token->end_lineno;
13902 UNUSED(_end_lineno); // Only used by EXTRA macro
13903 int _end_col_offset = _token->end_col_offset;
13904 UNUSED(_end_col_offset); // Only used by EXTRA macro
13905 _res = _Py_Attribute ( a , b -> v . Name . id , Load , EXTRA );
13906 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013907 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013908 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013909 return NULL;
13910 }
13911 goto done;
13912 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013913 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013914 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13915 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '.' NAME &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013916 }
13917 { // t_primary '[' slices ']' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013918 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013919 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013920 return NULL;
13921 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013922 D(fprintf(stderr, "%*c> t_primary[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013923 Token * _literal;
13924 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013925 expr_ty a;
13926 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013927 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013928 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013929 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013930 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013931 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013932 (b = slices_rule(p)) // slices
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013933 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013934 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013935 &&
13936 _PyPegen_lookahead(1, t_lookahead_rule, p)
13937 )
13938 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013939 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 +010013940 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13941 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013942 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013943 return NULL;
13944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013945 int _end_lineno = _token->end_lineno;
13946 UNUSED(_end_lineno); // Only used by EXTRA macro
13947 int _end_col_offset = _token->end_col_offset;
13948 UNUSED(_end_col_offset); // Only used by EXTRA macro
13949 _res = _Py_Subscript ( a , b , Load , EXTRA );
13950 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013951 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013952 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013953 return NULL;
13954 }
13955 goto done;
13956 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013957 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013958 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13959 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '[' slices ']' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013960 }
13961 { // t_primary genexp &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013962 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013963 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030013964 return NULL;
13965 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013966 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 +010013967 expr_ty a;
13968 expr_ty b;
13969 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010013970 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013971 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010013972 (b = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013973 &&
13974 _PyPegen_lookahead(1, t_lookahead_rule, p)
13975 )
13976 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013977 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 +010013978 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
13979 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013980 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013981 return NULL;
13982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013983 int _end_lineno = _token->end_lineno;
13984 UNUSED(_end_lineno); // Only used by EXTRA macro
13985 int _end_col_offset = _token->end_col_offset;
13986 UNUSED(_end_col_offset); // Only used by EXTRA macro
13987 _res = _Py_Call ( a , CHECK ( _PyPegen_singleton_seq ( p , b ) ) , NULL , EXTRA );
13988 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013989 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013990 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013991 return NULL;
13992 }
13993 goto done;
13994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010013995 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070013996 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
13997 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary genexp &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010013998 }
13999 { // t_primary '(' arguments? ')' &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014000 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014001 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014002 return NULL;
14003 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014004 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 +010014005 Token * _literal;
14006 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014007 expr_ty a;
14008 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014009 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014010 (a = t_primary_rule(p)) // t_primary
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014011 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014012 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014014 (b = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014015 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014016 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014017 &&
14018 _PyPegen_lookahead(1, t_lookahead_rule, p)
14019 )
14020 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014021 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 +010014022 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14023 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014024 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014025 return NULL;
14026 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014027 int _end_lineno = _token->end_lineno;
14028 UNUSED(_end_lineno); // Only used by EXTRA macro
14029 int _end_col_offset = _token->end_col_offset;
14030 UNUSED(_end_col_offset); // Only used by EXTRA macro
14031 _res = _Py_Call ( a , ( b ) ? ( ( expr_ty ) b ) -> v . Call . args : NULL , ( b ) ? ( ( expr_ty ) b ) -> v . Call . keywords : NULL , EXTRA );
14032 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014033 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014034 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014035 return NULL;
14036 }
14037 goto done;
14038 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014039 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014040 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14041 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "t_primary '(' arguments? ')' &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014042 }
14043 { // atom &t_lookahead
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014044 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014045 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014046 return NULL;
14047 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014048 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 +010014049 expr_ty a;
14050 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014051 (a = atom_rule(p)) // atom
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014052 &&
14053 _PyPegen_lookahead(1, t_lookahead_rule, p)
14054 )
14055 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014056 D(fprintf(stderr, "%*c+ t_primary[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014057 _res = a;
14058 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014059 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014060 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014061 return NULL;
14062 }
14063 goto done;
14064 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014065 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014066 D(fprintf(stderr, "%*c%s t_primary[%d-%d]: %s failed!\n", p->level, ' ',
14067 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "atom &t_lookahead"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014068 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014069 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014070 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014071 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014072 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014073}
14074
14075// t_lookahead: '(' | '[' | '.'
14076static void *
14077t_lookahead_rule(Parser *p)
14078{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014079 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014080 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014081 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014082 return NULL;
14083 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014084 void * _res = NULL;
14085 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014086 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014087 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014088 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014089 return NULL;
14090 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014091 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014092 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014093 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014094 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014095 )
14096 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014097 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014098 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014099 goto done;
14100 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014101 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014102 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14103 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014104 }
14105 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014106 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014107 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014108 return NULL;
14109 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014110 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014111 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014112 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014113 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014114 )
14115 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014116 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014117 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014118 goto done;
14119 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014120 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014121 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14122 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014123 }
14124 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014125 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014126 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014127 return NULL;
14128 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014129 D(fprintf(stderr, "%*c> t_lookahead[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014130 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014131 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014132 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014133 )
14134 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014135 D(fprintf(stderr, "%*c+ t_lookahead[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014136 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014137 goto done;
14138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014139 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014140 D(fprintf(stderr, "%*c%s t_lookahead[%d-%d]: %s failed!\n", p->level, ' ',
14141 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014142 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014143 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014144 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014145 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014146 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014147}
14148
14149// t_atom: NAME | '(' target ')' | '(' targets? ')' | '[' targets? ']'
14150static expr_ty
14151t_atom_rule(Parser *p)
14152{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014153 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014154 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014155 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014156 return NULL;
14157 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014158 expr_ty _res = NULL;
14159 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014160 if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) {
14161 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014162 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014163 return NULL;
14164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014165 int _start_lineno = p->tokens[_mark]->lineno;
14166 UNUSED(_start_lineno); // Only used by EXTRA macro
14167 int _start_col_offset = p->tokens[_mark]->col_offset;
14168 UNUSED(_start_col_offset); // Only used by EXTRA macro
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014169 { // NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014170 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014171 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014172 return NULL;
14173 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014174 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014175 expr_ty a;
14176 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014177 (a = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014178 )
14179 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014180 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014181 _res = _PyPegen_set_expr_context ( p , a , Store );
14182 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014183 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014184 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014185 return NULL;
14186 }
14187 goto done;
14188 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014189 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014190 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14191 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014192 }
14193 { // '(' target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014194 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014195 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014196 return NULL;
14197 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014198 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014199 Token * _literal;
14200 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014201 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014202 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014203 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014204 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014205 (a = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014206 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014207 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014208 )
14209 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014210 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014211 _res = _PyPegen_set_expr_context ( p , a , Store );
14212 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014213 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014214 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014215 return NULL;
14216 }
14217 goto done;
14218 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014219 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014220 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14221 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014222 }
14223 { // '(' targets? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014224 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014225 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014226 return NULL;
14227 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014228 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014229 Token * _literal;
14230 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014231 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014232 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014233 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014234 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014235 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014236 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014237 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014238 )
14239 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014240 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014241 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14242 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014244 return NULL;
14245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014246 int _end_lineno = _token->end_lineno;
14247 UNUSED(_end_lineno); // Only used by EXTRA macro
14248 int _end_col_offset = _token->end_col_offset;
14249 UNUSED(_end_col_offset); // Only used by EXTRA macro
14250 _res = _Py_Tuple ( b , Store , EXTRA );
14251 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014252 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014254 return NULL;
14255 }
14256 goto done;
14257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014258 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014259 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' targets? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014261 }
14262 { // '[' targets? ']'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014264 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014265 return NULL;
14266 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014267 D(fprintf(stderr, "%*c> t_atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014268 Token * _literal;
14269 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014270 void *b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014271 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014272 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014273 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014274 (b = targets_rule(p), 1) // targets?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014275 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014276 (_literal_1 = _PyPegen_expect_token(p, 10)) // token=']'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014277 )
14278 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014279 D(fprintf(stderr, "%*c+ t_atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014280 Token *_token = _PyPegen_get_last_nonnwhitespace_token(p);
14281 if (_token == NULL) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014282 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014283 return NULL;
14284 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014285 int _end_lineno = _token->end_lineno;
14286 UNUSED(_end_lineno); // Only used by EXTRA macro
14287 int _end_col_offset = _token->end_col_offset;
14288 UNUSED(_end_col_offset); // Only used by EXTRA macro
14289 _res = _Py_List ( b , Store , EXTRA );
14290 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014291 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014293 return NULL;
14294 }
14295 goto done;
14296 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014297 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014298 D(fprintf(stderr, "%*c%s t_atom[%d-%d]: %s failed!\n", p->level, ' ',
14299 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'[' targets? ']'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014301 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014302 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014303 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014304 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014305}
14306
14307// incorrect_arguments:
14308// | args ',' '*'
14309// | expression for_if_clauses ',' [args | expression for_if_clauses]
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014310// | args for_if_clauses
14311// | args ',' expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014312// | args ',' args
14313static void *
14314incorrect_arguments_rule(Parser *p)
14315{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014316 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014317 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014318 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014319 return NULL;
14320 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014321 void * _res = NULL;
14322 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014323 { // args ',' '*'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014324 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014325 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014326 return NULL;
14327 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014328 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014329 Token * _literal;
14330 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014331 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014332 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014333 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014334 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014335 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014336 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014337 (_literal_1 = _PyPegen_expect_token(p, 16)) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014338 )
14339 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014340 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' '*'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014341 _res = RAISE_SYNTAX_ERROR ( "iterable argument unpacking follows keyword argument unpacking" );
14342 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014343 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014344 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014345 return NULL;
14346 }
14347 goto done;
14348 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014349 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014350 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14351 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' '*'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014352 }
14353 { // expression for_if_clauses ',' [args | expression for_if_clauses]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014354 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014355 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014356 return NULL;
14357 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014358 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 +010014359 Token * _literal;
14360 void *_opt_var;
14361 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014362 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014363 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014364 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014365 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014366 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014367 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014368 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014369 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014370 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014371 (_opt_var = _tmp_125_rule(p), 1) // [args | expression for_if_clauses]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014372 )
14373 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014374 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 +030014375 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014376 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014377 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014379 return NULL;
14380 }
14381 goto done;
14382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014383 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014384 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14385 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses ',' [args | expression for_if_clauses]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014386 }
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014387 { // args for_if_clauses
14388 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014389 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014390 return NULL;
14391 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014392 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 -070014393 expr_ty a;
14394 asdl_seq* for_if_clauses_var;
14395 if (
14396 (a = args_rule(p)) // args
14397 &&
14398 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14399 )
14400 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014401 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 -070014402 _res = _PyPegen_nonparen_genexp_in_call ( p , a );
14403 if (_res == NULL && PyErr_Occurred()) {
14404 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014405 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014406 return NULL;
14407 }
14408 goto done;
14409 }
14410 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014411 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14412 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014413 }
14414 { // args ',' expression for_if_clauses
14415 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014416 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014417 return NULL;
14418 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014419 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 -070014420 Token * _literal;
14421 expr_ty a;
14422 expr_ty args_var;
14423 asdl_seq* for_if_clauses_var;
14424 if (
14425 (args_var = args_rule(p)) // args
14426 &&
14427 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14428 &&
14429 (a = expression_rule(p)) // expression
14430 &&
14431 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14432 )
14433 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014434 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 -070014435 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "Generator expression must be parenthesized" );
14436 if (_res == NULL && PyErr_Occurred()) {
14437 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014438 D(p->level--);
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014439 return NULL;
14440 }
14441 goto done;
14442 }
14443 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014444 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14445 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' expression for_if_clauses"));
Miss Islington (bot)55c89232020-05-21 18:14:55 -070014446 }
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014447 { // args ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014448 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014449 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014450 return NULL;
14451 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014452 D(fprintf(stderr, "%*c> incorrect_arguments[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014453 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014454 expr_ty a;
14455 expr_ty args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014456 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014457 (a = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014458 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014459 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014460 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014461 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014462 )
14463 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014464 D(fprintf(stderr, "%*c+ incorrect_arguments[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args ',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014465 _res = _PyPegen_arguments_parsing_error ( p , a );
14466 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014467 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014468 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014469 return NULL;
14470 }
14471 goto done;
14472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014473 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014474 D(fprintf(stderr, "%*c%s incorrect_arguments[%d-%d]: %s failed!\n", p->level, ' ',
14475 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args ',' args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014476 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014477 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014478 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014479 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014480 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014481}
14482
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014483// invalid_kwarg: expression '='
14484static void *
14485invalid_kwarg_rule(Parser *p)
14486{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014487 D(p->level++);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014488 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014489 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014490 return NULL;
14491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014492 void * _res = NULL;
14493 int _mark = p->mark;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014494 { // expression '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014495 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014496 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014497 return NULL;
14498 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014499 D(fprintf(stderr, "%*c> invalid_kwarg[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014500 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014501 expr_ty a;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014502 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014503 (a = expression_rule(p)) // expression
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014504 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014505 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014506 )
14507 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014508 D(fprintf(stderr, "%*c+ invalid_kwarg[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression '='"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014509 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expression cannot contain assignment, perhaps you meant \"==\"?" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014510 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014511 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014512 D(p->level--);
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014513 return NULL;
14514 }
14515 goto done;
14516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014517 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014518 D(fprintf(stderr, "%*c%s invalid_kwarg[%d-%d]: %s failed!\n", p->level, ' ',
14519 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression '='"));
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014520 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014521 _res = NULL;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014522 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014523 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014524 return _res;
Lysandros Nikolaou4638c642020-05-07 13:44:06 +030014525}
14526
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014527// invalid_named_expression: expression ':=' expression
14528static void *
14529invalid_named_expression_rule(Parser *p)
14530{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014531 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014532 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014533 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014534 return NULL;
14535 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014536 void * _res = NULL;
14537 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014538 { // expression ':=' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014539 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014540 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014541 return NULL;
14542 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014543 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 +010014544 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014545 expr_ty a;
14546 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014547 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014548 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014549 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014550 (_literal = _PyPegen_expect_token(p, 53)) // token=':='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014551 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014552 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014553 )
14554 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014555 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 +030014556 _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 +010014557 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014558 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014560 return NULL;
14561 }
14562 goto done;
14563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014564 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014565 D(fprintf(stderr, "%*c%s invalid_named_expression[%d-%d]: %s failed!\n", p->level, ' ',
14566 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':=' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014567 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014568 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014569 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014571 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014572}
14573
14574// invalid_assignment:
14575// | list ':'
14576// | tuple ':'
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014577// | star_named_expression ',' star_named_expressions* ':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014578// | expression ':' expression ['=' annotated_rhs]
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014579// | ((star_targets '='))* star_expressions '='
14580// | ((star_targets '='))* yield_expr '='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014581// | star_expressions augassign (yield_expr | star_expressions)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014582static void *
14583invalid_assignment_rule(Parser *p)
14584{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014585 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014587 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014588 return NULL;
14589 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014590 void * _res = NULL;
14591 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014592 { // list ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014593 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014594 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014595 return NULL;
14596 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014597 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list ':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014598 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014599 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014600 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014601 (a = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014602 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014603 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014604 )
14605 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014606 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014607 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not list) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014608 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014609 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014610 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014611 return NULL;
14612 }
14613 goto done;
14614 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014615 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014616 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14617 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list ':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014618 }
14619 { // tuple ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014620 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014621 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014622 return NULL;
14623 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014624 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple ':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014625 Token * _literal;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014626 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014627 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014628 (a = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014629 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014630 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014631 )
14632 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014633 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014634 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
14635 if (_res == NULL && PyErr_Occurred()) {
14636 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014637 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014638 return NULL;
14639 }
14640 goto done;
14641 }
14642 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014643 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14644 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple ':'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014645 }
14646 { // star_named_expression ',' star_named_expressions* ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014647 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014648 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014649 return NULL;
14650 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014651 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 +030014652 Token * _literal;
14653 Token * _literal_1;
14654 asdl_seq * _loop0_126_var;
14655 expr_ty a;
14656 if (
14657 (a = star_named_expression_rule(p)) // star_named_expression
14658 &&
14659 (_literal = _PyPegen_expect_token(p, 12)) // token=','
14660 &&
14661 (_loop0_126_var = _loop0_126_rule(p)) // star_named_expressions*
14662 &&
14663 (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':'
14664 )
14665 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014666 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 +030014667 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "only single target (not tuple) can be annotated" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014668 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014671 return NULL;
14672 }
14673 goto done;
14674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014675 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014676 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions* ':'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014678 }
14679 { // expression ':' expression ['=' annotated_rhs]
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014680 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014681 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014682 return NULL;
14683 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014684 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 +010014685 Token * _literal;
14686 void *_opt_var;
14687 UNUSED(_opt_var); // Silence compiler warnings
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014688 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014689 expr_ty expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014690 if (
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014691 (a = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014692 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014693 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014694 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014695 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014696 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014697 (_opt_var = _tmp_127_rule(p), 1) // ['=' annotated_rhs]
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014698 )
14699 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014700 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 +030014701 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "illegal target for annotation" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014702 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014703 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014704 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014705 return NULL;
14706 }
14707 goto done;
14708 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014709 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014710 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14711 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ':' expression ['=' annotated_rhs]"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014712 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014713 { // ((star_targets '='))* star_expressions '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014714 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014715 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014716 return NULL;
14717 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014718 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014719 Token * _literal;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014720 asdl_seq * _loop0_128_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014721 expr_ty a;
14722 if (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014723 (_loop0_128_var = _loop0_128_rule(p)) // ((star_targets '='))*
14724 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014725 (a = star_expressions_rule(p)) // star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014726 &&
Pablo Galindo16ab0702020-05-15 02:04:52 +010014727 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindo16ab0702020-05-15 02:04:52 +010014728 )
14729 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014730 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014731 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( _PyPegen_get_invalid_target ( a ) , "cannot assign to %s" , _PyPegen_get_expr_name ( _PyPegen_get_invalid_target ( a ) ) );
14732 if (_res == NULL && PyErr_Occurred()) {
14733 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014734 D(p->level--);
Pablo Galindo16ab0702020-05-15 02:04:52 +010014735 return NULL;
14736 }
14737 goto done;
14738 }
14739 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014740 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* star_expressions '='"));
14742 }
14743 { // ((star_targets '='))* yield_expr '='
14744 if (p->error_indicator) {
14745 D(p->level--);
14746 return NULL;
14747 }
14748 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14749 Token * _literal;
14750 asdl_seq * _loop0_129_var;
14751 expr_ty a;
14752 if (
14753 (_loop0_129_var = _loop0_129_rule(p)) // ((star_targets '='))*
14754 &&
14755 (a = yield_expr_rule(p)) // yield_expr
14756 &&
14757 (_literal = _PyPegen_expect_token(p, 22)) // token='='
14758 )
14759 {
14760 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='"));
14761 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "assignment to yield expression not possible" );
14762 if (_res == NULL && PyErr_Occurred()) {
14763 p->error_indicator = 1;
14764 D(p->level--);
14765 return NULL;
14766 }
14767 goto done;
14768 }
14769 p->mark = _mark;
14770 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14771 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "((star_targets '='))* yield_expr '='"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014772 }
14773 { // star_expressions augassign (yield_expr | star_expressions)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014774 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014775 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014776 return NULL;
14777 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014778 D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014779 void *_tmp_130_var;
Pablo Galindo16ab0702020-05-15 02:04:52 +010014780 expr_ty a;
14781 AugOperator* augassign_var;
14782 if (
14783 (a = star_expressions_rule(p)) // star_expressions
14784 &&
14785 (augassign_var = augassign_rule(p)) // augassign
Pablo Galindo2b74c832020-04-27 18:02:07 +010014786 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014787 (_tmp_130_var = _tmp_130_rule(p)) // yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014788 )
14789 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014790 D(fprintf(stderr, "%*c+ invalid_assignment[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindo16ab0702020-05-15 02:04:52 +010014791 _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 +010014792 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014793 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014794 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014795 return NULL;
14796 }
14797 goto done;
14798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014799 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014800 D(fprintf(stderr, "%*c%s invalid_assignment[%d-%d]: %s failed!\n", p->level, ' ',
14801 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions augassign (yield_expr | star_expressions)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014802 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014803 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014804 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014805 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014806 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014807}
14808
14809// invalid_block: NEWLINE !INDENT
14810static void *
14811invalid_block_rule(Parser *p)
14812{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014813 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014814 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014815 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014816 return NULL;
14817 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014818 void * _res = NULL;
14819 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014820 { // NEWLINE !INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014822 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014823 return NULL;
14824 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014825 D(fprintf(stderr, "%*c> invalid_block[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010014826 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014827 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010014828 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014829 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014830 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, INDENT) // token=INDENT
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014831 )
14832 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014833 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 +010014834 _res = RAISE_INDENTATION_ERROR ( "expected an indented block" );
14835 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014836 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014838 return NULL;
14839 }
14840 goto done;
14841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014842 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014843 D(fprintf(stderr, "%*c%s invalid_block[%d-%d]: %s failed!\n", p->level, ' ',
14844 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE !INDENT"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014845 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014846 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014847 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014848 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014849 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014850}
14851
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014852// invalid_comprehension: ('[' | '(' | '{') starred_expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014853static void *
14854invalid_comprehension_rule(Parser *p)
14855{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014856 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014857 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014858 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014859 return NULL;
14860 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014861 void * _res = NULL;
14862 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014863 { // ('[' | '(' | '{') starred_expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014864 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014865 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014866 return NULL;
14867 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014868 D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014869 void *_tmp_131_var;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014870 expr_ty a;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014871 asdl_seq* for_if_clauses_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014872 if (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014873 (_tmp_131_var = _tmp_131_rule(p)) // '[' | '(' | '{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014874 &&
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030014875 (a = starred_expression_rule(p)) // starred_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014876 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014877 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014878 )
14879 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014880 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 +030014881 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "iterable unpacking cannot be used in comprehension" );
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014882 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014883 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014884 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014885 return NULL;
14886 }
14887 goto done;
14888 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014889 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014890 D(fprintf(stderr, "%*c%s invalid_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
14891 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014893 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014894 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014895 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014896 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014897}
14898
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014899// invalid_dict_comprehension: '{' '**' bitwise_or for_if_clauses '}'
14900static void *
14901invalid_dict_comprehension_rule(Parser *p)
14902{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014903 D(p->level++);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014904 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014905 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014906 return NULL;
14907 }
14908 void * _res = NULL;
14909 int _mark = p->mark;
14910 { // '{' '**' bitwise_or for_if_clauses '}'
14911 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014912 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014913 return NULL;
14914 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014915 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 -070014916 Token * _literal;
14917 Token * _literal_1;
14918 Token * a;
14919 expr_ty bitwise_or_var;
14920 asdl_seq* for_if_clauses_var;
14921 if (
14922 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
14923 &&
14924 (a = _PyPegen_expect_token(p, 35)) // token='**'
14925 &&
14926 (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or
14927 &&
14928 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
14929 &&
14930 (_literal_1 = _PyPegen_expect_token(p, 26)) // token='}'
14931 )
14932 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014933 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 -070014934 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "dict unpacking cannot be used in dict comprehension" );
14935 if (_res == NULL && PyErr_Occurred()) {
14936 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014937 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014938 return NULL;
14939 }
14940 goto done;
14941 }
14942 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014943 D(fprintf(stderr, "%*c%s invalid_dict_comprehension[%d-%d]: %s failed!\n", p->level, ' ',
14944 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{' '**' bitwise_or for_if_clauses '}'"));
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014945 }
14946 _res = NULL;
14947 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014948 D(p->level--);
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070014949 return _res;
14950}
14951
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014952// invalid_parameters:
Guido van Rossumc001c092020-04-30 12:12:19 -070014953// | param_no_default* (slash_with_default | param_with_default+) param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014954static void *
14955invalid_parameters_rule(Parser *p)
14956{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014957 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014959 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014960 return NULL;
14961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014962 void * _res = NULL;
14963 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070014964 { // param_no_default* (slash_with_default | param_with_default+) param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014965 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014966 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030014967 return NULL;
14968 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014969 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"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014970 asdl_seq * _loop0_132_var;
14971 void *_tmp_133_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070014972 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014973 if (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014974 (_loop0_132_var = _loop0_132_rule(p)) // param_no_default*
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014975 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070014976 (_tmp_133_var = _tmp_133_rule(p)) // slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014977 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010014978 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014979 )
14980 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014981 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 +010014982 _res = RAISE_SYNTAX_ERROR ( "non-default argument follows default argument" );
14983 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014984 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014985 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014986 return NULL;
14987 }
14988 goto done;
14989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014990 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014991 D(fprintf(stderr, "%*c%s invalid_parameters[%d-%d]: %s failed!\n", p->level, ' ',
14992 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 +010014993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014994 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014995 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070014996 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010014997 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010014998}
14999
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015000// invalid_star_etc: '*' (')' | ',' (')' | '**')) | '*' ',' TYPE_COMMENT
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015001static void *
15002invalid_star_etc_rule(Parser *p)
15003{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015004 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015005 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015006 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015007 return NULL;
15008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015009 void * _res = NULL;
15010 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015011 { // '*' (')' | ',' (')' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015012 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015013 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015014 return NULL;
15015 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015016 D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015017 Token * _literal;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070015018 void *_tmp_134_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015019 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015020 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015021 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070015022 (_tmp_134_var = _tmp_134_rule(p)) // ')' | ',' (')' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015023 )
15024 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015025 D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015026 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15027 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015028 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015029 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015030 return NULL;
15031 }
15032 goto done;
15033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015034 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015035 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (')' | ',' (')' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015037 }
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015038 { // '*' ',' TYPE_COMMENT
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015040 D(p->level--);
Pablo Galindoced4e5c2020-05-18 22:47:51 +010015041 return NULL;
15042 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015043 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 +030015044 Token * _literal;
15045 Token * _literal_1;
15046 Token * type_comment_var;
15047 if (
15048 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
15049 &&
15050 (_literal_1 = _PyPegen_expect_token(p, 12)) // token=','
15051 &&
15052 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
15053 )
15054 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015055 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 +030015056 _res = RAISE_SYNTAX_ERROR ( "bare * has associated type comment" );
15057 if (_res == NULL && PyErr_Occurred()) {
15058 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015059 D(p->level--);
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015060 return NULL;
15061 }
15062 goto done;
15063 }
15064 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015065 D(fprintf(stderr, "%*c%s invalid_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15066 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' ',' TYPE_COMMENT"));
Lysandros Nikolaou75b863a2020-05-18 22:14:47 +030015067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015068 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015069 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015070 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015071 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015072}
15073
15074// invalid_lambda_star_etc: '*' (':' | ',' (':' | '**'))
15075static void *
15076invalid_lambda_star_etc_rule(Parser *p)
15077{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015078 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015079 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015080 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015081 return NULL;
15082 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015083 void * _res = NULL;
15084 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015085 { // '*' (':' | ',' (':' | '**'))
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015086 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015087 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015088 return NULL;
15089 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015090 D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015091 Token * _literal;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070015092 void *_tmp_135_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015093 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015094 (_literal = _PyPegen_expect_token(p, 16)) // token='*'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015095 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070015096 (_tmp_135_var = _tmp_135_rule(p)) // ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015097 )
15098 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015099 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 +010015100 _res = RAISE_SYNTAX_ERROR ( "named arguments must follow bare *" );
15101 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015102 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015103 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015104 return NULL;
15105 }
15106 goto done;
15107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015108 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015109 D(fprintf(stderr, "%*c%s invalid_lambda_star_etc[%d-%d]: %s failed!\n", p->level, ' ',
15110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*' (':' | ',' (':' | '**'))"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015112 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015113 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015114 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015115 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030015116}
15117
Guido van Rossumc001c092020-04-30 12:12:19 -070015118// invalid_double_type_comments: TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
15119static void *
15120invalid_double_type_comments_rule(Parser *p)
15121{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015122 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015124 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015125 return NULL;
15126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015127 void * _res = NULL;
15128 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015129 { // TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015132 return NULL;
15133 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015134 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 +010015135 Token * indent_var;
15136 Token * newline_var;
15137 Token * newline_var_1;
15138 Token * type_comment_var;
15139 Token * type_comment_var_1;
Guido van Rossumc001c092020-04-30 12:12:19 -070015140 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015141 (type_comment_var = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015142 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015143 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015144 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015145 (type_comment_var_1 = _PyPegen_expect_token(p, TYPE_COMMENT)) // token='TYPE_COMMENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015146 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015147 (newline_var_1 = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015148 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015149 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070015150 )
15151 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015152 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 +010015153 _res = RAISE_SYNTAX_ERROR ( "Cannot have two type comments on def" );
15154 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015155 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015156 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015157 return NULL;
15158 }
15159 goto done;
15160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015161 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015162 D(fprintf(stderr, "%*c%s invalid_double_type_comments[%d-%d]: %s failed!\n", p->level, ' ',
15163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "TYPE_COMMENT NEWLINE TYPE_COMMENT NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015165 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015166 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015167 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015168 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015169}
15170
Shantanu27c0d9b2020-05-11 14:53:58 -070015171// invalid_del_target: star_expression &del_target_end
15172static void *
15173invalid_del_target_rule(Parser *p)
15174{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015175 D(p->level++);
Shantanu27c0d9b2020-05-11 14:53:58 -070015176 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015177 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015178 return NULL;
15179 }
15180 void * _res = NULL;
15181 int _mark = p->mark;
15182 { // star_expression &del_target_end
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015183 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015184 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015185 return NULL;
15186 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015187 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 -070015188 expr_ty a;
15189 if (
15190 (a = star_expression_rule(p)) // star_expression
15191 &&
15192 _PyPegen_lookahead(1, del_target_end_rule, p)
15193 )
15194 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015195 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 +030015196 _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "cannot delete %s" , _PyPegen_get_expr_name ( a ) );
Shantanu27c0d9b2020-05-11 14:53:58 -070015197 if (_res == NULL && PyErr_Occurred()) {
15198 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015199 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015200 return NULL;
15201 }
15202 goto done;
15203 }
15204 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015205 D(fprintf(stderr, "%*c%s invalid_del_target[%d-%d]: %s failed!\n", p->level, ' ',
15206 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression &del_target_end"));
Shantanu27c0d9b2020-05-11 14:53:58 -070015207 }
15208 _res = NULL;
15209 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015210 D(p->level--);
Shantanu27c0d9b2020-05-11 14:53:58 -070015211 return _res;
15212}
15213
Pablo Galindo275d7e12020-05-21 22:04:54 +010015214// invalid_import_from_targets: import_from_as_names ','
15215static void *
15216invalid_import_from_targets_rule(Parser *p)
15217{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015218 D(p->level++);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015219 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015220 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015221 return NULL;
15222 }
15223 void * _res = NULL;
15224 int _mark = p->mark;
15225 { // import_from_as_names ','
15226 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015227 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015228 return NULL;
15229 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015230 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 +010015231 Token * _literal;
15232 asdl_seq* import_from_as_names_var;
15233 if (
15234 (import_from_as_names_var = import_from_as_names_rule(p)) // import_from_as_names
15235 &&
15236 (_literal = _PyPegen_expect_token(p, 12)) // token=','
15237 )
15238 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015239 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 +010015240 _res = RAISE_SYNTAX_ERROR ( "trailing comma not allowed without surrounding parentheses" );
15241 if (_res == NULL && PyErr_Occurred()) {
15242 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015243 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015244 return NULL;
15245 }
15246 goto done;
15247 }
15248 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015249 D(fprintf(stderr, "%*c%s invalid_import_from_targets[%d-%d]: %s failed!\n", p->level, ' ',
15250 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_names ','"));
Pablo Galindo275d7e12020-05-21 22:04:54 +010015251 }
15252 _res = NULL;
15253 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015254 D(p->level--);
Pablo Galindo275d7e12020-05-21 22:04:54 +010015255 return _res;
15256}
15257
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015258// _loop0_1: NEWLINE
15259static asdl_seq *
15260_loop0_1_rule(Parser *p)
15261{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015262 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015263 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015265 return NULL;
15266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015267 void *_res = NULL;
15268 int _mark = p->mark;
15269 int _start_mark = p->mark;
15270 void **_children = PyMem_Malloc(sizeof(void *));
15271 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015272 p->error_indicator = 1;
15273 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015274 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015275 return NULL;
15276 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015277 ssize_t _children_capacity = 1;
15278 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015279 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015280 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015281 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015282 return NULL;
15283 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015284 D(fprintf(stderr, "%*c> _loop0_1[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015285 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015286 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015287 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015288 )
15289 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015290 _res = newline_var;
15291 if (_n == _children_capacity) {
15292 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015293 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15294 if (!_new_children) {
15295 p->error_indicator = 1;
15296 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015297 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015298 return NULL;
15299 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015300 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015301 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015302 _children[_n++] = _res;
15303 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015304 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015305 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015306 D(fprintf(stderr, "%*c%s _loop0_1[%d-%d]: %s failed!\n", p->level, ' ',
15307 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015308 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015309 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15310 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015311 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015312 p->error_indicator = 1;
15313 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015315 return NULL;
15316 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015317 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15318 PyMem_Free(_children);
15319 _PyPegen_insert_memo(p, _start_mark, _loop0_1_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015320 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015321 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015322}
15323
Guido van Rossumc001c092020-04-30 12:12:19 -070015324// _loop0_2: NEWLINE
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015325static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015326_loop0_2_rule(Parser *p)
15327{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015328 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015329 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015330 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015331 return NULL;
15332 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015333 void *_res = NULL;
15334 int _mark = p->mark;
15335 int _start_mark = p->mark;
15336 void **_children = PyMem_Malloc(sizeof(void *));
15337 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015338 p->error_indicator = 1;
15339 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015340 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015341 return NULL;
15342 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015343 ssize_t _children_capacity = 1;
15344 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015345 { // NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015347 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015348 return NULL;
15349 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015350 D(fprintf(stderr, "%*c> _loop0_2[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010015351 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070015352 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015353 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070015354 )
15355 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015356 _res = newline_var;
15357 if (_n == _children_capacity) {
15358 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015359 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15360 if (!_new_children) {
15361 p->error_indicator = 1;
15362 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015363 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015364 return NULL;
15365 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015366 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015367 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015368 _children[_n++] = _res;
15369 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015371 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015372 D(fprintf(stderr, "%*c%s _loop0_2[%d-%d]: %s failed!\n", p->level, ' ',
15373 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015375 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15376 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015377 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015378 p->error_indicator = 1;
15379 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015380 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015381 return NULL;
15382 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015383 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15384 PyMem_Free(_children);
15385 _PyPegen_insert_memo(p, _start_mark, _loop0_2_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015386 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015387 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015388}
15389
15390// _loop0_4: ',' expression
15391static asdl_seq *
15392_loop0_4_rule(Parser *p)
15393{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015394 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015395 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015396 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015397 return NULL;
15398 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015399 void *_res = NULL;
15400 int _mark = p->mark;
15401 int _start_mark = p->mark;
15402 void **_children = PyMem_Malloc(sizeof(void *));
15403 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015404 p->error_indicator = 1;
15405 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015406 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015407 return NULL;
15408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015409 ssize_t _children_capacity = 1;
15410 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015411 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015412 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015413 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015414 return NULL;
15415 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015416 D(fprintf(stderr, "%*c> _loop0_4[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015417 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015418 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015419 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015420 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015421 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015422 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015423 )
15424 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015425 _res = elem;
15426 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015427 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015428 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015429 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015430 return NULL;
15431 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015432 if (_n == _children_capacity) {
15433 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015434 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15435 if (!_new_children) {
15436 p->error_indicator = 1;
15437 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015438 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015439 return NULL;
15440 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015441 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015442 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015443 _children[_n++] = _res;
15444 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015445 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015446 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015447 D(fprintf(stderr, "%*c%s _loop0_4[%d-%d]: %s failed!\n", p->level, ' ',
15448 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015449 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015450 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15451 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015452 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015453 p->error_indicator = 1;
15454 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015455 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015456 return NULL;
15457 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015458 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15459 PyMem_Free(_children);
15460 _PyPegen_insert_memo(p, _start_mark, _loop0_4_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015461 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015462 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015463}
15464
15465// _gather_3: expression _loop0_4
15466static asdl_seq *
15467_gather_3_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 asdl_seq * _res = NULL;
15475 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015476 { // expression _loop0_4
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015477 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015478 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015479 return NULL;
15480 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015481 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 -070015482 expr_ty elem;
15483 asdl_seq * seq;
15484 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015485 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015486 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015487 (seq = _loop0_4_rule(p)) // _loop0_4
Guido van Rossumc001c092020-04-30 12:12:19 -070015488 )
15489 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015490 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 +010015491 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015492 goto done;
15493 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015494 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015495 D(fprintf(stderr, "%*c%s _gather_3[%d-%d]: %s failed!\n", p->level, ' ',
15496 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_4"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015498 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015499 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015500 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015501 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015502}
15503
15504// _loop0_6: ',' expression
15505static asdl_seq *
15506_loop0_6_rule(Parser *p)
15507{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015508 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015509 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015510 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015511 return NULL;
15512 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015513 void *_res = NULL;
15514 int _mark = p->mark;
15515 int _start_mark = p->mark;
15516 void **_children = PyMem_Malloc(sizeof(void *));
15517 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015518 p->error_indicator = 1;
15519 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015520 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015521 return NULL;
15522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015523 ssize_t _children_capacity = 1;
15524 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015525 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015526 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015527 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015528 return NULL;
15529 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015530 D(fprintf(stderr, "%*c> _loop0_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015531 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015532 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015533 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015534 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015535 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015536 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015537 )
15538 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015539 _res = elem;
15540 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015541 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015542 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015543 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015544 return NULL;
15545 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015546 if (_n == _children_capacity) {
15547 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015548 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15549 if (!_new_children) {
15550 p->error_indicator = 1;
15551 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015552 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015553 return NULL;
15554 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015555 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015557 _children[_n++] = _res;
15558 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015559 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015560 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015561 D(fprintf(stderr, "%*c%s _loop0_6[%d-%d]: %s failed!\n", p->level, ' ',
15562 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015563 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015564 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15565 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015566 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015567 p->error_indicator = 1;
15568 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015569 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015570 return NULL;
15571 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015572 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15573 PyMem_Free(_children);
15574 _PyPegen_insert_memo(p, _start_mark, _loop0_6_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015575 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015576 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015577}
15578
15579// _gather_5: expression _loop0_6
15580static asdl_seq *
15581_gather_5_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 asdl_seq * _res = NULL;
15589 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015590 { // expression _loop0_6
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015591 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015592 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015593 return NULL;
15594 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015595 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 -070015596 expr_ty elem;
15597 asdl_seq * seq;
15598 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015599 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015600 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015601 (seq = _loop0_6_rule(p)) // _loop0_6
Guido van Rossumc001c092020-04-30 12:12:19 -070015602 )
15603 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015604 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 +010015605 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015606 goto done;
15607 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015608 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015609 D(fprintf(stderr, "%*c%s _gather_5[%d-%d]: %s failed!\n", p->level, ' ',
15610 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_6"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015611 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015612 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015613 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015614 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015615 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015616}
15617
15618// _loop0_8: ',' expression
15619static asdl_seq *
15620_loop0_8_rule(Parser *p)
15621{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015622 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015624 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015625 return NULL;
15626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015627 void *_res = NULL;
15628 int _mark = p->mark;
15629 int _start_mark = p->mark;
15630 void **_children = PyMem_Malloc(sizeof(void *));
15631 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015632 p->error_indicator = 1;
15633 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015634 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015635 return NULL;
15636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015637 ssize_t _children_capacity = 1;
15638 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015639 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015642 return NULL;
15643 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015644 D(fprintf(stderr, "%*c> _loop0_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015645 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015646 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015647 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015648 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015649 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015650 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015651 )
15652 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015653 _res = elem;
15654 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015655 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015656 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015657 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015658 return NULL;
15659 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015660 if (_n == _children_capacity) {
15661 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015662 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15663 if (!_new_children) {
15664 p->error_indicator = 1;
15665 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015666 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015667 return NULL;
15668 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015669 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015670 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015671 _children[_n++] = _res;
15672 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015673 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015674 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015675 D(fprintf(stderr, "%*c%s _loop0_8[%d-%d]: %s failed!\n", p->level, ' ',
15676 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015677 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015678 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15679 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015680 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015681 p->error_indicator = 1;
15682 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015683 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015684 return NULL;
15685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015686 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15687 PyMem_Free(_children);
15688 _PyPegen_insert_memo(p, _start_mark, _loop0_8_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015689 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015690 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015691}
15692
15693// _gather_7: expression _loop0_8
15694static asdl_seq *
15695_gather_7_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 asdl_seq * _res = NULL;
15703 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015704 { // expression _loop0_8
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015705 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015706 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015707 return NULL;
15708 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015709 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 -070015710 expr_ty elem;
15711 asdl_seq * seq;
15712 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015713 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015714 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015715 (seq = _loop0_8_rule(p)) // _loop0_8
Guido van Rossumc001c092020-04-30 12:12:19 -070015716 )
15717 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015718 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 +010015719 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015720 goto done;
15721 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015722 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015723 D(fprintf(stderr, "%*c%s _gather_7[%d-%d]: %s failed!\n", p->level, ' ',
15724 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_8"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015725 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015726 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015727 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015728 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015729 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015730}
15731
15732// _loop0_10: ',' expression
15733static asdl_seq *
15734_loop0_10_rule(Parser *p)
15735{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015736 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015737 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015738 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015739 return NULL;
15740 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015741 void *_res = NULL;
15742 int _mark = p->mark;
15743 int _start_mark = p->mark;
15744 void **_children = PyMem_Malloc(sizeof(void *));
15745 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015746 p->error_indicator = 1;
15747 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015748 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015749 return NULL;
15750 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015751 ssize_t _children_capacity = 1;
15752 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070015753 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015754 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015755 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015756 return NULL;
15757 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015758 D(fprintf(stderr, "%*c> _loop0_10[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015759 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070015760 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070015761 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015762 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070015763 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015764 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015765 )
15766 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015767 _res = elem;
15768 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070015769 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015770 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015771 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015772 return NULL;
15773 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015774 if (_n == _children_capacity) {
15775 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015776 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15777 if (!_new_children) {
15778 p->error_indicator = 1;
15779 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015780 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015781 return NULL;
15782 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015783 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070015784 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015785 _children[_n++] = _res;
15786 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015787 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015788 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015789 D(fprintf(stderr, "%*c%s _loop0_10[%d-%d]: %s failed!\n", p->level, ' ',
15790 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015791 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015792 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15793 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015794 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015795 p->error_indicator = 1;
15796 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015797 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015798 return NULL;
15799 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015800 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15801 PyMem_Free(_children);
15802 _PyPegen_insert_memo(p, _start_mark, _loop0_10_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015803 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015804 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070015805}
15806
15807// _gather_9: expression _loop0_10
15808static asdl_seq *
15809_gather_9_rule(Parser *p)
15810{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015811 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070015812 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015813 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070015814 return NULL;
15815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015816 asdl_seq * _res = NULL;
15817 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070015818 { // expression _loop0_10
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015819 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015820 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015821 return NULL;
15822 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015823 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 -070015824 expr_ty elem;
15825 asdl_seq * seq;
15826 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010015827 (elem = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070015828 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015829 (seq = _loop0_10_rule(p)) // _loop0_10
Guido van Rossumc001c092020-04-30 12:12:19 -070015830 )
15831 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015832 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 +010015833 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070015834 goto done;
15835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015836 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015837 D(fprintf(stderr, "%*c%s _gather_9[%d-%d]: %s failed!\n", p->level, ' ',
15838 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression _loop0_10"));
Guido van Rossumc001c092020-04-30 12:12:19 -070015839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015840 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070015841 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015842 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015843 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070015844}
15845
15846// _loop1_11: statement
15847static asdl_seq *
15848_loop1_11_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015849{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015850 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015851 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015852 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015853 return NULL;
15854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015855 void *_res = NULL;
15856 int _mark = p->mark;
15857 int _start_mark = p->mark;
15858 void **_children = PyMem_Malloc(sizeof(void *));
15859 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015860 p->error_indicator = 1;
15861 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015862 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015863 return NULL;
15864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015865 ssize_t _children_capacity = 1;
15866 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015867 { // statement
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015868 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015869 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015870 return NULL;
15871 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015872 D(fprintf(stderr, "%*c> _loop1_11[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015873 asdl_seq* statement_var;
15874 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010015875 (statement_var = statement_rule(p)) // statement
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015876 )
15877 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015878 _res = statement_var;
15879 if (_n == _children_capacity) {
15880 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015881 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15882 if (!_new_children) {
15883 p->error_indicator = 1;
15884 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015885 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015886 return NULL;
15887 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015888 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015889 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015890 _children[_n++] = _res;
15891 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015893 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015894 D(fprintf(stderr, "%*c%s _loop1_11[%d-%d]: %s failed!\n", p->level, ' ',
15895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "statement"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015897 if (_n == 0 || p->error_indicator) {
15898 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015899 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015900 return NULL;
15901 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015902 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15903 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015904 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015905 p->error_indicator = 1;
15906 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015907 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015908 return NULL;
15909 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015910 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15911 PyMem_Free(_children);
15912 _PyPegen_insert_memo(p, _start_mark, _loop1_11_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015913 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015914 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015915}
15916
Guido van Rossumc001c092020-04-30 12:12:19 -070015917// _loop0_13: ';' small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015918static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015919_loop0_13_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015920{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015921 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015922 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015923 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015924 return NULL;
15925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015926 void *_res = NULL;
15927 int _mark = p->mark;
15928 int _start_mark = p->mark;
15929 void **_children = PyMem_Malloc(sizeof(void *));
15930 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015931 p->error_indicator = 1;
15932 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015933 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015934 return NULL;
15935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015936 ssize_t _children_capacity = 1;
15937 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015938 { // ';' small_stmt
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015939 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015940 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030015941 return NULL;
15942 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015943 D(fprintf(stderr, "%*c> _loop0_13[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "';' small_stmt"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015944 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015945 stmt_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015946 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015947 (_literal = _PyPegen_expect_token(p, 13)) // token=';'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015948 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010015949 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015950 )
15951 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015952 _res = elem;
15953 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015954 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015955 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015956 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015957 return NULL;
15958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015959 if (_n == _children_capacity) {
15960 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015961 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
15962 if (!_new_children) {
15963 p->error_indicator = 1;
15964 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015965 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015966 return NULL;
15967 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015968 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015969 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015970 _children[_n++] = _res;
15971 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015973 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015974 D(fprintf(stderr, "%*c%s _loop0_13[%d-%d]: %s failed!\n", p->level, ' ',
15975 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "';' small_stmt"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015976 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015977 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
15978 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015979 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030015980 p->error_indicator = 1;
15981 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015982 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015983 return NULL;
15984 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015985 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
15986 PyMem_Free(_children);
15987 _PyPegen_insert_memo(p, _start_mark, _loop0_13_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070015988 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010015989 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015990}
15991
Guido van Rossumc001c092020-04-30 12:12:19 -070015992// _gather_12: small_stmt _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010015993static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070015994_gather_12_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 asdl_seq * _res = NULL;
16002 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016003 { // small_stmt _loop0_13
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> _gather_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016009 stmt_ty elem;
16010 asdl_seq * seq;
16011 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016012 (elem = small_stmt_rule(p)) // small_stmt
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016013 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016014 (seq = _loop0_13_rule(p)) // _loop0_13
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016015 )
16016 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016017 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 +010016018 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016019 goto done;
16020 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016021 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016022 D(fprintf(stderr, "%*c%s _gather_12[%d-%d]: %s failed!\n", p->level, ' ',
16023 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "small_stmt _loop0_13"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016024 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016025 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016026 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016027 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016028 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016029}
16030
Guido van Rossumc001c092020-04-30 12:12:19 -070016031// _tmp_14: 'import' | 'from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016032static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016033_tmp_14_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016034{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016035 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016036 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016037 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016038 return NULL;
16039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016040 void * _res = NULL;
16041 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016042 { // 'import'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016043 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016044 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016045 return NULL;
16046 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016047 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016048 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016049 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016050 (_keyword = _PyPegen_expect_token(p, 513)) // token='import'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016051 )
16052 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016053 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016054 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016055 goto done;
16056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016057 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016058 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16059 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'import'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016060 }
16061 { // 'from'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016062 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016063 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016064 return NULL;
16065 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016066 D(fprintf(stderr, "%*c> _tmp_14[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016067 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016068 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016069 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016070 )
16071 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016072 D(fprintf(stderr, "%*c+ _tmp_14[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016073 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016074 goto done;
16075 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016076 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016077 D(fprintf(stderr, "%*c%s _tmp_14[%d-%d]: %s failed!\n", p->level, ' ',
16078 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016080 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016081 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016082 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016083 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016084}
16085
Guido van Rossumc001c092020-04-30 12:12:19 -070016086// _tmp_15: 'def' | '@' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016087static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016088_tmp_15_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016089{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016090 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016092 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016093 return NULL;
16094 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016095 void * _res = NULL;
16096 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016097 { // 'def'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016098 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016099 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016100 return NULL;
16101 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016102 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016103 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016104 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016105 (_keyword = _PyPegen_expect_token(p, 522)) // token='def'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016106 )
16107 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016108 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016109 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016110 goto done;
16111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016112 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016113 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16114 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'def'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016115 }
16116 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016119 return NULL;
16120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016121 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016122 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016123 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016124 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016125 )
16126 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016127 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016128 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016129 goto done;
16130 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016131 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016132 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16133 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016134 }
16135 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016137 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016138 return NULL;
16139 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016140 D(fprintf(stderr, "%*c> _tmp_15[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016141 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016142 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016143 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016144 )
16145 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016146 D(fprintf(stderr, "%*c+ _tmp_15[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016147 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016148 goto done;
16149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016150 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016151 D(fprintf(stderr, "%*c%s _tmp_15[%d-%d]: %s failed!\n", p->level, ' ',
16152 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016153 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016154 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016155 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016156 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016157 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016158}
16159
Guido van Rossumc001c092020-04-30 12:12:19 -070016160// _tmp_16: 'class' | '@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016161static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016162_tmp_16_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016163{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016164 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016165 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016166 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016167 return NULL;
16168 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016169 void * _res = NULL;
16170 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016171 { // 'class'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016172 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016173 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016174 return NULL;
16175 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016176 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016177 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016178 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016179 (_keyword = _PyPegen_expect_token(p, 523)) // token='class'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016180 )
16181 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016182 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016183 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016184 goto done;
16185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016186 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016187 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16188 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'class'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016189 }
16190 { // '@'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016191 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016192 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016193 return NULL;
16194 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016195 D(fprintf(stderr, "%*c> _tmp_16[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016196 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016197 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016198 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016199 )
16200 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016201 D(fprintf(stderr, "%*c+ _tmp_16[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016202 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016203 goto done;
16204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016205 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016206 D(fprintf(stderr, "%*c%s _tmp_16[%d-%d]: %s failed!\n", p->level, ' ',
16207 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016208 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016209 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016210 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016211 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016212 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016213}
16214
Guido van Rossumc001c092020-04-30 12:12:19 -070016215// _tmp_17: 'with' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016216static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016217_tmp_17_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016218{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016219 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016220 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016221 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016222 return NULL;
16223 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016224 void * _res = NULL;
16225 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016226 { // 'with'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016227 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016228 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016229 return NULL;
16230 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016231 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016232 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016233 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016234 (_keyword = _PyPegen_expect_token(p, 519)) // token='with'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016235 )
16236 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016237 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016238 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016239 goto done;
16240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016241 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016242 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16243 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'with'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016244 }
16245 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016246 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016247 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016248 return NULL;
16249 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016250 D(fprintf(stderr, "%*c> _tmp_17[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016251 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016252 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016253 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016254 )
16255 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016256 D(fprintf(stderr, "%*c+ _tmp_17[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016257 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016258 goto done;
16259 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016260 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016261 D(fprintf(stderr, "%*c%s _tmp_17[%d-%d]: %s failed!\n", p->level, ' ',
16262 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016264 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016265 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016266 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016267 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016268}
16269
Guido van Rossumc001c092020-04-30 12:12:19 -070016270// _tmp_18: 'for' | ASYNC
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016271static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016272_tmp_18_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016273{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016274 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016275 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016276 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016277 return NULL;
16278 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016279 void * _res = NULL;
16280 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016281 { // 'for'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016282 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016283 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016284 return NULL;
16285 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016286 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016287 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016288 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016289 (_keyword = _PyPegen_expect_token(p, 517)) // token='for'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016290 )
16291 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016292 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016293 _res = _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016294 goto done;
16295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016296 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016297 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16298 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'for'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016299 }
16300 { // ASYNC
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016301 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016302 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016303 return NULL;
16304 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016305 D(fprintf(stderr, "%*c> _tmp_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010016306 Token * async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016307 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016308 (async_var = _PyPegen_expect_token(p, ASYNC)) // token='ASYNC'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016309 )
16310 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016311 D(fprintf(stderr, "%*c+ _tmp_18[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "ASYNC"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016312 _res = async_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016313 goto done;
16314 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016315 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016316 D(fprintf(stderr, "%*c%s _tmp_18[%d-%d]: %s failed!\n", p->level, ' ',
16317 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "ASYNC"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016319 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016320 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016321 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016322 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016323}
16324
Guido van Rossumc001c092020-04-30 12:12:19 -070016325// _tmp_19: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016326static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016327_tmp_19_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016328{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016329 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016330 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016331 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016332 return NULL;
16333 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016334 void * _res = NULL;
16335 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016336 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016337 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016338 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016339 return NULL;
16340 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016341 D(fprintf(stderr, "%*c> _tmp_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016342 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016343 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016344 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016345 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016346 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016347 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016348 )
16349 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016350 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 +010016351 _res = d;
16352 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016353 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016354 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016355 return NULL;
16356 }
16357 goto done;
16358 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016359 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016360 D(fprintf(stderr, "%*c%s _tmp_19[%d-%d]: %s failed!\n", p->level, ' ',
16361 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016362 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016363 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016364 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016365 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016366 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016367}
16368
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016369// _tmp_20: '(' single_target ')' | single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016370static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016371_tmp_20_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016373 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016376 return NULL;
16377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016378 void * _res = NULL;
16379 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016380 { // '(' single_target ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016381 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016382 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016383 return NULL;
16384 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016385 D(fprintf(stderr, "%*c> _tmp_20[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016386 Token * _literal;
16387 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016388 expr_ty b;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016389 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016390 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016391 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016392 (b = single_target_rule(p)) // single_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016393 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016394 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016395 )
16396 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016397 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 +010016398 _res = b;
16399 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016400 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016402 return NULL;
16403 }
16404 goto done;
16405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016406 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016407 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16408 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' single_target ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016409 }
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016410 { // single_subscript_attribute_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016411 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016412 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016413 return NULL;
16414 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016415 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 +030016416 expr_ty single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016417 if (
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030016418 (single_subscript_attribute_target_var = single_subscript_attribute_target_rule(p)) // single_subscript_attribute_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016419 )
16420 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016421 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 +030016422 _res = single_subscript_attribute_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016423 goto done;
16424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016425 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016426 D(fprintf(stderr, "%*c%s _tmp_20[%d-%d]: %s failed!\n", p->level, ' ',
16427 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "single_subscript_attribute_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016428 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016429 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016430 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016431 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016432 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016433}
16434
Guido van Rossumc001c092020-04-30 12:12:19 -070016435// _tmp_21: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016436static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070016437_tmp_21_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016438{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016439 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016440 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016441 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016442 return NULL;
16443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016444 void * _res = NULL;
16445 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016446 { // '=' annotated_rhs
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016447 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016448 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016449 return NULL;
16450 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016451 D(fprintf(stderr, "%*c> _tmp_21[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016452 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016453 expr_ty d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016454 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016455 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016456 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016457 (d = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016458 )
16459 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016460 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 +010016461 _res = d;
16462 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016463 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016464 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016465 return NULL;
16466 }
16467 goto done;
16468 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016469 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016470 D(fprintf(stderr, "%*c%s _tmp_21[%d-%d]: %s failed!\n", p->level, ' ',
16471 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016472 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016473 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016474 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016475 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016476 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016477}
16478
Guido van Rossumc001c092020-04-30 12:12:19 -070016479// _loop1_22: (star_targets '=')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016480static asdl_seq *
16481_loop1_22_rule(Parser *p)
16482{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016483 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016484 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016485 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016486 return NULL;
16487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016488 void *_res = NULL;
16489 int _mark = p->mark;
16490 int _start_mark = p->mark;
16491 void **_children = PyMem_Malloc(sizeof(void *));
16492 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016493 p->error_indicator = 1;
16494 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016495 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016496 return NULL;
16497 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016498 ssize_t _children_capacity = 1;
16499 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016500 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016501 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016502 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016503 return NULL;
16504 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016505 D(fprintf(stderr, "%*c> _loop1_22[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070016506 void *_tmp_136_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016507 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070016508 (_tmp_136_var = _tmp_136_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016509 )
16510 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070016511 _res = _tmp_136_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016512 if (_n == _children_capacity) {
16513 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016514 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16515 if (!_new_children) {
16516 p->error_indicator = 1;
16517 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016518 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016519 return NULL;
16520 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016521 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016523 _children[_n++] = _res;
16524 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016525 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016526 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016527 D(fprintf(stderr, "%*c%s _loop1_22[%d-%d]: %s failed!\n", p->level, ' ',
16528 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016529 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016530 if (_n == 0 || p->error_indicator) {
16531 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016532 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016533 return NULL;
16534 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016535 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16536 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016537 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016538 p->error_indicator = 1;
16539 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016540 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016541 return NULL;
16542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016543 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16544 PyMem_Free(_children);
16545 _PyPegen_insert_memo(p, _start_mark, _loop1_22_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016546 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016547 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016548}
16549
Guido van Rossumc001c092020-04-30 12:12:19 -070016550// _tmp_23: yield_expr | star_expressions
16551static void *
16552_tmp_23_rule(Parser *p)
16553{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016554 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016555 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016556 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016557 return NULL;
16558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016559 void * _res = NULL;
16560 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016561 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016562 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016563 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016564 return NULL;
16565 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016566 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 -070016567 expr_ty yield_expr_var;
16568 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016569 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016570 )
16571 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016572 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 +010016573 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016574 goto done;
16575 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016576 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016577 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16578 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016579 }
16580 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016581 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016582 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016583 return NULL;
16584 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016585 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 -070016586 expr_ty star_expressions_var;
16587 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016588 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016589 )
16590 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016591 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 +010016592 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016593 goto done;
16594 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016595 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016596 D(fprintf(stderr, "%*c%s _tmp_23[%d-%d]: %s failed!\n", p->level, ' ',
16597 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016598 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016599 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016600 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016601 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016602 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016603}
16604
16605// _tmp_24: yield_expr | star_expressions
16606static void *
16607_tmp_24_rule(Parser *p)
16608{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016609 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016610 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016611 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016612 return NULL;
16613 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016614 void * _res = NULL;
16615 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016616 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016617 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016618 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016619 return NULL;
16620 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016621 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 -070016622 expr_ty yield_expr_var;
16623 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016624 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Guido van Rossumc001c092020-04-30 12:12:19 -070016625 )
16626 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016627 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 +010016628 _res = yield_expr_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016629 goto done;
16630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016631 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016632 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016634 }
16635 { // star_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016636 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016637 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016638 return NULL;
16639 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016640 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 -070016641 expr_ty star_expressions_var;
16642 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016643 (star_expressions_var = star_expressions_rule(p)) // star_expressions
Guido van Rossumc001c092020-04-30 12:12:19 -070016644 )
16645 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016646 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 +010016647 _res = star_expressions_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016648 goto done;
16649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016650 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016651 D(fprintf(stderr, "%*c%s _tmp_24[%d-%d]: %s failed!\n", p->level, ' ',
16652 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016654 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016655 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016656 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016657 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016658}
16659
16660// _loop0_26: ',' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010016661static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070016662_loop0_26_rule(Parser *p)
16663{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016664 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016665 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016666 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016667 return NULL;
16668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016669 void *_res = NULL;
16670 int _mark = p->mark;
16671 int _start_mark = p->mark;
16672 void **_children = PyMem_Malloc(sizeof(void *));
16673 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016674 p->error_indicator = 1;
16675 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016676 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016677 return NULL;
16678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016679 ssize_t _children_capacity = 1;
16680 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016681 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016682 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016683 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016684 return NULL;
16685 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016686 D(fprintf(stderr, "%*c> _loop0_26[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016687 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016688 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016689 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016690 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016691 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016692 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016693 )
16694 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016695 _res = elem;
16696 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016697 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016698 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016699 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016700 return NULL;
16701 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016702 if (_n == _children_capacity) {
16703 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016704 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16705 if (!_new_children) {
16706 p->error_indicator = 1;
16707 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016708 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016709 return NULL;
16710 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016711 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016712 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016713 _children[_n++] = _res;
16714 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016715 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016716 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016717 D(fprintf(stderr, "%*c%s _loop0_26[%d-%d]: %s failed!\n", p->level, ' ',
16718 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016719 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016720 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16721 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016722 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016723 p->error_indicator = 1;
16724 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016725 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016726 return NULL;
16727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016728 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16729 PyMem_Free(_children);
16730 _PyPegen_insert_memo(p, _start_mark, _loop0_26_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016731 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016732 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016733}
16734
16735// _gather_25: NAME _loop0_26
16736static asdl_seq *
16737_gather_25_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 asdl_seq * _res = NULL;
16745 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016746 { // NAME _loop0_26
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016747 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016748 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016749 return NULL;
16750 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016751 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 -070016752 expr_ty elem;
16753 asdl_seq * seq;
16754 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016755 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016756 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016757 (seq = _loop0_26_rule(p)) // _loop0_26
Guido van Rossumc001c092020-04-30 12:12:19 -070016758 )
16759 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016760 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 +010016761 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016762 goto done;
16763 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016764 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016765 D(fprintf(stderr, "%*c%s _gather_25[%d-%d]: %s failed!\n", p->level, ' ',
16766 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_26"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016767 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016768 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016769 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016770 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016771 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016772}
16773
16774// _loop0_28: ',' NAME
16775static asdl_seq *
16776_loop0_28_rule(Parser *p)
16777{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016778 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016779 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016780 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016781 return NULL;
16782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016783 void *_res = NULL;
16784 int _mark = p->mark;
16785 int _start_mark = p->mark;
16786 void **_children = PyMem_Malloc(sizeof(void *));
16787 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016788 p->error_indicator = 1;
16789 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016790 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016791 return NULL;
16792 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016793 ssize_t _children_capacity = 1;
16794 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016795 { // ',' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016796 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016797 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016798 return NULL;
16799 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016800 D(fprintf(stderr, "%*c> _loop0_28[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016801 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016802 expr_ty elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070016803 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016804 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016805 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016806 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016807 )
16808 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016809 _res = elem;
16810 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016811 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016812 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016813 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016814 return NULL;
16815 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016816 if (_n == _children_capacity) {
16817 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016818 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16819 if (!_new_children) {
16820 p->error_indicator = 1;
16821 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016822 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016823 return NULL;
16824 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016825 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016826 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016827 _children[_n++] = _res;
16828 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016829 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016830 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016831 D(fprintf(stderr, "%*c%s _loop0_28[%d-%d]: %s failed!\n", p->level, ' ',
16832 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' NAME"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016833 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016834 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16835 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016836 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016837 p->error_indicator = 1;
16838 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016839 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016840 return NULL;
16841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016842 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16843 PyMem_Free(_children);
16844 _PyPegen_insert_memo(p, _start_mark, _loop0_28_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016845 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016846 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016847}
16848
16849// _gather_27: NAME _loop0_28
16850static asdl_seq *
16851_gather_27_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 asdl_seq * _res = NULL;
16859 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016860 { // NAME _loop0_28
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> _gather_27[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016866 expr_ty elem;
16867 asdl_seq * seq;
16868 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010016869 (elem = _PyPegen_name_token(p)) // NAME
Guido van Rossumc001c092020-04-30 12:12:19 -070016870 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016871 (seq = _loop0_28_rule(p)) // _loop0_28
Guido van Rossumc001c092020-04-30 12:12:19 -070016872 )
16873 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016874 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 +010016875 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070016876 goto done;
16877 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016878 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016879 D(fprintf(stderr, "%*c%s _gather_27[%d-%d]: %s failed!\n", p->level, ' ',
16880 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NAME _loop0_28"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016881 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016882 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016883 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016884 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016885 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016886}
16887
16888// _tmp_29: ',' expression
16889static void *
16890_tmp_29_rule(Parser *p)
16891{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016892 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016893 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016894 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016895 return NULL;
16896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016897 void * _res = NULL;
16898 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016899 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016900 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016901 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016902 return NULL;
16903 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016904 D(fprintf(stderr, "%*c> _tmp_29[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016905 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070016906 expr_ty z;
16907 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016908 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070016909 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010016910 (z = expression_rule(p)) // expression
Guido van Rossumc001c092020-04-30 12:12:19 -070016911 )
16912 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016913 D(fprintf(stderr, "%*c+ _tmp_29[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016914 _res = z;
16915 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070016916 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016917 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016918 return NULL;
16919 }
16920 goto done;
16921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016922 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016923 D(fprintf(stderr, "%*c%s _tmp_29[%d-%d]: %s failed!\n", p->level, ' ',
16924 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016925 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016926 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070016927 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016928 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016929 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070016930}
16931
16932// _loop0_30: ('.' | '...')
16933static asdl_seq *
16934_loop0_30_rule(Parser *p)
16935{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016936 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070016937 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016938 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016939 return NULL;
16940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016941 void *_res = NULL;
16942 int _mark = p->mark;
16943 int _start_mark = p->mark;
16944 void **_children = PyMem_Malloc(sizeof(void *));
16945 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016946 p->error_indicator = 1;
16947 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016948 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016949 return NULL;
16950 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016951 ssize_t _children_capacity = 1;
16952 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070016953 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016954 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016955 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030016956 return NULL;
16957 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016958 D(fprintf(stderr, "%*c> _loop0_30[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070016959 void *_tmp_137_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070016960 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070016961 (_tmp_137_var = _tmp_137_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070016962 )
16963 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070016964 _res = _tmp_137_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016965 if (_n == _children_capacity) {
16966 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016967 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
16968 if (!_new_children) {
16969 p->error_indicator = 1;
16970 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016971 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016972 return NULL;
16973 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016974 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070016975 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016976 _children[_n++] = _res;
16977 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070016978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016979 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016980 D(fprintf(stderr, "%*c%s _loop0_30[%d-%d]: %s failed!\n", p->level, ' ',
16981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070016982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016983 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
16984 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016985 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030016986 p->error_indicator = 1;
16987 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016988 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070016989 return NULL;
16990 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016991 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
16992 PyMem_Free(_children);
16993 _PyPegen_insert_memo(p, _start_mark, _loop0_30_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070016994 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010016995 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070016996}
16997
16998// _loop1_31: ('.' | '...')
16999static asdl_seq *
17000_loop1_31_rule(Parser *p)
17001{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017002 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070017003 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017004 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017005 return NULL;
17006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017007 void *_res = NULL;
17008 int _mark = p->mark;
17009 int _start_mark = p->mark;
17010 void **_children = PyMem_Malloc(sizeof(void *));
17011 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017012 p->error_indicator = 1;
17013 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017014 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017015 return NULL;
17016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017017 ssize_t _children_capacity = 1;
17018 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070017019 { // ('.' | '...')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017020 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017021 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017022 return NULL;
17023 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017024 D(fprintf(stderr, "%*c> _loop1_31[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070017025 void *_tmp_138_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070017026 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070017027 (_tmp_138_var = _tmp_138_rule(p)) // '.' | '...'
Guido van Rossumc001c092020-04-30 12:12:19 -070017028 )
17029 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070017030 _res = _tmp_138_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017031 if (_n == _children_capacity) {
17032 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017033 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17034 if (!_new_children) {
17035 p->error_indicator = 1;
17036 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017037 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017038 return NULL;
17039 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017040 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070017041 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017042 _children[_n++] = _res;
17043 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017044 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017045 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017046 D(fprintf(stderr, "%*c%s _loop1_31[%d-%d]: %s failed!\n", p->level, ' ',
17047 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('.' | '...')"));
Guido van Rossumc001c092020-04-30 12:12:19 -070017048 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017049 if (_n == 0 || p->error_indicator) {
17050 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017051 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017052 return NULL;
17053 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017054 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17055 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017056 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017057 p->error_indicator = 1;
17058 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017059 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070017060 return NULL;
17061 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017062 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17063 PyMem_Free(_children);
17064 _PyPegen_insert_memo(p, _start_mark, _loop1_31_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017065 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017066 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070017067}
17068
17069// _loop0_33: ',' import_from_as_name
17070static asdl_seq *
17071_loop0_33_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017072{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017073 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017074 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017075 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017076 return NULL;
17077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017078 void *_res = NULL;
17079 int _mark = p->mark;
17080 int _start_mark = p->mark;
17081 void **_children = PyMem_Malloc(sizeof(void *));
17082 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017083 p->error_indicator = 1;
17084 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017085 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017086 return NULL;
17087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017088 ssize_t _children_capacity = 1;
17089 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017090 { // ',' import_from_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017093 return NULL;
17094 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017095 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 +010017096 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017097 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017098 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017099 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017100 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017101 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017102 )
17103 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017104 _res = elem;
17105 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017106 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017107 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017108 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017109 return NULL;
17110 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017111 if (_n == _children_capacity) {
17112 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017113 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17114 if (!_new_children) {
17115 p->error_indicator = 1;
17116 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017117 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017118 return NULL;
17119 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017120 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017121 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017122 _children[_n++] = _res;
17123 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017125 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017126 D(fprintf(stderr, "%*c%s _loop0_33[%d-%d]: %s failed!\n", p->level, ' ',
17127 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' import_from_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017128 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017129 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17130 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017131 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017132 p->error_indicator = 1;
17133 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017134 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017135 return NULL;
17136 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017137 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17138 PyMem_Free(_children);
17139 _PyPegen_insert_memo(p, _start_mark, _loop0_33_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017140 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017141 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017142}
17143
Guido van Rossumc001c092020-04-30 12:12:19 -070017144// _gather_32: import_from_as_name _loop0_33
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017145static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017146_gather_32_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 asdl_seq * _res = NULL;
17154 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017155 { // import_from_as_name _loop0_33
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> _gather_32[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "import_from_as_name _loop0_33"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017161 alias_ty elem;
17162 asdl_seq * seq;
17163 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017164 (elem = import_from_as_name_rule(p)) // import_from_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017165 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017166 (seq = _loop0_33_rule(p)) // _loop0_33
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017167 )
17168 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017169 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 +010017170 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017171 goto done;
17172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017173 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017174 D(fprintf(stderr, "%*c%s _gather_32[%d-%d]: %s failed!\n", p->level, ' ',
17175 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "import_from_as_name _loop0_33"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017177 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017178 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017179 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017180 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017181}
17182
Guido van Rossumc001c092020-04-30 12:12:19 -070017183// _tmp_34: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017184static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070017185_tmp_34_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017186{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017187 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017189 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017190 return NULL;
17191 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017192 void * _res = NULL;
17193 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017194 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017195 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017196 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017197 return NULL;
17198 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017199 D(fprintf(stderr, "%*c> _tmp_34[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017200 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017201 expr_ty z;
17202 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017203 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017204 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017205 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017206 )
17207 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017208 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 +010017209 _res = z;
17210 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017211 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017212 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017213 return NULL;
17214 }
17215 goto done;
17216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017217 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017218 D(fprintf(stderr, "%*c%s _tmp_34[%d-%d]: %s failed!\n", p->level, ' ',
17219 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017220 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017221 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017222 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017223 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017224 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017225}
17226
Guido van Rossumc001c092020-04-30 12:12:19 -070017227// _loop0_36: ',' dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017228static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017229_loop0_36_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017230{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017231 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017232 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017234 return NULL;
17235 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017236 void *_res = NULL;
17237 int _mark = p->mark;
17238 int _start_mark = p->mark;
17239 void **_children = PyMem_Malloc(sizeof(void *));
17240 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017241 p->error_indicator = 1;
17242 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017244 return NULL;
17245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017246 ssize_t _children_capacity = 1;
17247 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017248 { // ',' dotted_as_name
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017249 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017250 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017251 return NULL;
17252 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017253 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 +010017254 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017255 alias_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017256 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017257 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017258 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017259 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017260 )
17261 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017262 _res = elem;
17263 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017264 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017265 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017266 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017267 return NULL;
17268 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017269 if (_n == _children_capacity) {
17270 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017271 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17272 if (!_new_children) {
17273 p->error_indicator = 1;
17274 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017275 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017276 return NULL;
17277 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017278 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017279 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017280 _children[_n++] = _res;
17281 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017283 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017284 D(fprintf(stderr, "%*c%s _loop0_36[%d-%d]: %s failed!\n", p->level, ' ',
17285 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_as_name"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017286 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017287 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17288 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017289 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017290 p->error_indicator = 1;
17291 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017292 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017293 return NULL;
17294 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017295 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17296 PyMem_Free(_children);
17297 _PyPegen_insert_memo(p, _start_mark, _loop0_36_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017298 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017299 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017300}
17301
Guido van Rossumc001c092020-04-30 12:12:19 -070017302// _gather_35: dotted_as_name _loop0_36
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017303static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017304_gather_35_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 asdl_seq * _res = NULL;
17312 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017313 { // dotted_as_name _loop0_36
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> _gather_35[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_as_name _loop0_36"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017319 alias_ty elem;
17320 asdl_seq * seq;
17321 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017322 (elem = dotted_as_name_rule(p)) // dotted_as_name
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017323 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017324 (seq = _loop0_36_rule(p)) // _loop0_36
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017325 )
17326 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017327 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 +010017328 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017329 goto done;
17330 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017331 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017332 D(fprintf(stderr, "%*c%s _gather_35[%d-%d]: %s failed!\n", p->level, ' ',
17333 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_as_name _loop0_36"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017334 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017335 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017336 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017337 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017338 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017339}
17340
Guido van Rossumc001c092020-04-30 12:12:19 -070017341// _tmp_37: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017342static void *
Guido van Rossumc001c092020-04-30 12:12:19 -070017343_tmp_37_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017344{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017345 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017346 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017347 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017348 return NULL;
17349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017350 void * _res = NULL;
17351 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017352 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017353 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017354 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017355 return NULL;
17356 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017357 D(fprintf(stderr, "%*c> _tmp_37[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017358 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017359 expr_ty z;
17360 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017361 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017362 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017363 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017364 )
17365 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017366 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 +010017367 _res = z;
17368 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017369 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017370 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017371 return NULL;
17372 }
17373 goto done;
17374 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017375 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017376 D(fprintf(stderr, "%*c%s _tmp_37[%d-%d]: %s failed!\n", p->level, ' ',
17377 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017379 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017380 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017381 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017382 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017383}
17384
Guido van Rossumc001c092020-04-30 12:12:19 -070017385// _loop0_39: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017386static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017387_loop0_39_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017388{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017389 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017390 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017391 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017392 return NULL;
17393 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017394 void *_res = NULL;
17395 int _mark = p->mark;
17396 int _start_mark = p->mark;
17397 void **_children = PyMem_Malloc(sizeof(void *));
17398 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017399 p->error_indicator = 1;
17400 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017402 return NULL;
17403 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017404 ssize_t _children_capacity = 1;
17405 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017406 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017407 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017408 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017409 return NULL;
17410 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017411 D(fprintf(stderr, "%*c> _loop0_39[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017412 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017413 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017414 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017415 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017416 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017417 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017418 )
17419 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017420 _res = elem;
17421 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017422 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017423 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017424 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017425 return NULL;
17426 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017427 if (_n == _children_capacity) {
17428 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017429 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17430 if (!_new_children) {
17431 p->error_indicator = 1;
17432 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017433 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017434 return NULL;
17435 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017436 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017437 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017438 _children[_n++] = _res;
17439 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017440 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017441 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017442 D(fprintf(stderr, "%*c%s _loop0_39[%d-%d]: %s failed!\n", p->level, ' ',
17443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017444 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017445 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17446 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017447 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017448 p->error_indicator = 1;
17449 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017450 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017451 return NULL;
17452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017453 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17454 PyMem_Free(_children);
17455 _PyPegen_insert_memo(p, _start_mark, _loop0_39_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017456 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017457 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017458}
17459
Guido van Rossumc001c092020-04-30 12:12:19 -070017460// _gather_38: with_item _loop0_39
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017461static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017462_gather_38_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 asdl_seq * _res = NULL;
17470 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017471 { // with_item _loop0_39
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017472 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017473 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017474 return NULL;
17475 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017476 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 +010017477 withitem_ty elem;
17478 asdl_seq * seq;
17479 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017480 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017481 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017482 (seq = _loop0_39_rule(p)) // _loop0_39
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017483 )
17484 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017485 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 +010017486 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017487 goto done;
17488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017489 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017490 D(fprintf(stderr, "%*c%s _gather_38[%d-%d]: %s failed!\n", p->level, ' ',
17491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_39"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017493 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017494 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017495 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017496 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017497}
17498
Guido van Rossumc001c092020-04-30 12:12:19 -070017499// _loop0_41: ',' with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017500static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017501_loop0_41_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017502{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017503 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017504 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017505 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017506 return NULL;
17507 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017508 void *_res = NULL;
17509 int _mark = p->mark;
17510 int _start_mark = p->mark;
17511 void **_children = PyMem_Malloc(sizeof(void *));
17512 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017513 p->error_indicator = 1;
17514 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017515 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017516 return NULL;
17517 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017518 ssize_t _children_capacity = 1;
17519 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017520 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017521 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017522 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017523 return NULL;
17524 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017525 D(fprintf(stderr, "%*c> _loop0_41[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017526 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017527 withitem_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017528 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017529 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017530 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017531 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017532 )
17533 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017534 _res = elem;
17535 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017536 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017537 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017539 return NULL;
17540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017541 if (_n == _children_capacity) {
17542 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017543 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17544 if (!_new_children) {
17545 p->error_indicator = 1;
17546 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017547 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017548 return NULL;
17549 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017550 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017551 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017552 _children[_n++] = _res;
17553 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017554 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017555 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017556 D(fprintf(stderr, "%*c%s _loop0_41[%d-%d]: %s failed!\n", p->level, ' ',
17557 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017558 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017559 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17560 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017561 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017562 p->error_indicator = 1;
17563 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017564 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017565 return NULL;
17566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017567 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17568 PyMem_Free(_children);
17569 _PyPegen_insert_memo(p, _start_mark, _loop0_41_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017570 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017571 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017572}
17573
Guido van Rossumc001c092020-04-30 12:12:19 -070017574// _gather_40: with_item _loop0_41
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017575static asdl_seq *
Guido van Rossumc001c092020-04-30 12:12:19 -070017576_gather_40_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017577{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017578 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017579 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017580 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017581 return NULL;
17582 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017583 asdl_seq * _res = NULL;
17584 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070017585 { // with_item _loop0_41
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017586 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017587 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017588 return NULL;
17589 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017590 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 +010017591 withitem_ty elem;
17592 asdl_seq * seq;
17593 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017594 (elem = with_item_rule(p)) // with_item
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017595 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017596 (seq = _loop0_41_rule(p)) // _loop0_41
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017597 )
17598 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017599 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 +010017600 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017601 goto done;
17602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017603 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017604 D(fprintf(stderr, "%*c%s _gather_40[%d-%d]: %s failed!\n", p->level, ' ',
17605 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_41"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017606 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017607 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017608 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017609 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017610 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017611}
17612
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017613// _loop0_43: ',' with_item
17614static asdl_seq *
17615_loop0_43_rule(Parser *p)
17616{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017617 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017618 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017619 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017620 return NULL;
17621 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017622 void *_res = NULL;
17623 int _mark = p->mark;
17624 int _start_mark = p->mark;
17625 void **_children = PyMem_Malloc(sizeof(void *));
17626 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017627 p->error_indicator = 1;
17628 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017629 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017630 return NULL;
17631 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017632 ssize_t _children_capacity = 1;
17633 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017634 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017635 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017636 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017637 return NULL;
17638 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017639 D(fprintf(stderr, "%*c> _loop0_43[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017640 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017641 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017642 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017643 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017644 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017645 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017646 )
17647 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017648 _res = elem;
17649 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017650 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017651 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017652 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017653 return NULL;
17654 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017655 if (_n == _children_capacity) {
17656 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017657 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17658 if (!_new_children) {
17659 p->error_indicator = 1;
17660 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017661 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017662 return NULL;
17663 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017664 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017665 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017666 _children[_n++] = _res;
17667 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017669 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017670 D(fprintf(stderr, "%*c%s _loop0_43[%d-%d]: %s failed!\n", p->level, ' ',
17671 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017672 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017673 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17674 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017675 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017676 p->error_indicator = 1;
17677 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017678 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017679 return NULL;
17680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017681 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17682 PyMem_Free(_children);
17683 _PyPegen_insert_memo(p, _start_mark, _loop0_43_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017684 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017685 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017686}
17687
17688// _gather_42: with_item _loop0_43
17689static asdl_seq *
17690_gather_42_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 asdl_seq * _res = NULL;
17698 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017699 { // with_item _loop0_43
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017700 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017701 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017702 return NULL;
17703 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017704 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 +030017705 withitem_ty elem;
17706 asdl_seq * seq;
17707 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017708 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017709 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017710 (seq = _loop0_43_rule(p)) // _loop0_43
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017711 )
17712 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017713 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 +010017714 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017715 goto done;
17716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017717 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017718 D(fprintf(stderr, "%*c%s _gather_42[%d-%d]: %s failed!\n", p->level, ' ',
17719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_43"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017720 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017721 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017722 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017723 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017724 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017725}
17726
17727// _loop0_45: ',' with_item
17728static asdl_seq *
17729_loop0_45_rule(Parser *p)
17730{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017731 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017732 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017733 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017734 return NULL;
17735 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017736 void *_res = NULL;
17737 int _mark = p->mark;
17738 int _start_mark = p->mark;
17739 void **_children = PyMem_Malloc(sizeof(void *));
17740 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017741 p->error_indicator = 1;
17742 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017743 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017744 return NULL;
17745 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017746 ssize_t _children_capacity = 1;
17747 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017748 { // ',' with_item
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017749 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017750 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017751 return NULL;
17752 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017753 D(fprintf(stderr, "%*c> _loop0_45[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' with_item"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017754 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017755 withitem_ty elem;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017756 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017757 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017758 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017759 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017760 )
17761 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017762 _res = elem;
17763 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017764 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017765 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017766 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017767 return NULL;
17768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017769 if (_n == _children_capacity) {
17770 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017771 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17772 if (!_new_children) {
17773 p->error_indicator = 1;
17774 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017775 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017776 return NULL;
17777 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017778 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017779 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017780 _children[_n++] = _res;
17781 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017783 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017784 D(fprintf(stderr, "%*c%s _loop0_45[%d-%d]: %s failed!\n", p->level, ' ',
17785 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' with_item"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017786 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017787 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17788 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017789 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017790 p->error_indicator = 1;
17791 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017792 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017793 return NULL;
17794 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017795 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17796 PyMem_Free(_children);
17797 _PyPegen_insert_memo(p, _start_mark, _loop0_45_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017798 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017799 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017800}
17801
17802// _gather_44: with_item _loop0_45
17803static asdl_seq *
17804_gather_44_rule(Parser *p)
17805{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017806 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017807 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017808 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017809 return NULL;
17810 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017811 asdl_seq * _res = NULL;
17812 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017813 { // with_item _loop0_45
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> _gather_44[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "with_item _loop0_45"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017819 withitem_ty elem;
17820 asdl_seq * seq;
17821 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010017822 (elem = with_item_rule(p)) // with_item
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017823 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017824 (seq = _loop0_45_rule(p)) // _loop0_45
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017825 )
17826 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017827 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 +010017828 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017829 goto done;
17830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017831 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017832 D(fprintf(stderr, "%*c%s _gather_44[%d-%d]: %s failed!\n", p->level, ' ',
17833 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "with_item _loop0_45"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017835 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017836 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017837 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017838 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017839}
17840
17841// _tmp_46: 'as' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017842static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017843_tmp_46_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017844{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017845 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017846 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017848 return NULL;
17849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017850 void * _res = NULL;
17851 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017852 { // 'as' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017854 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017855 return NULL;
17856 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017857 D(fprintf(stderr, "%*c> _tmp_46[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017858 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017859 expr_ty t;
17860 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017861 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017862 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010017863 (t = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017864 )
17865 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017866 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 +010017867 _res = t;
17868 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017869 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017871 return NULL;
17872 }
17873 goto done;
17874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017875 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017876 D(fprintf(stderr, "%*c%s _tmp_46[%d-%d]: %s failed!\n", p->level, ' ',
17877 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017878 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017879 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017880 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017881 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017882 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017883}
17884
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017885// _loop1_47: except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017886static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017887_loop1_47_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017888{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017889 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017890 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017891 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017892 return NULL;
17893 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017894 void *_res = NULL;
17895 int _mark = p->mark;
17896 int _start_mark = p->mark;
17897 void **_children = PyMem_Malloc(sizeof(void *));
17898 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017899 p->error_indicator = 1;
17900 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017901 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017902 return NULL;
17903 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017904 ssize_t _children_capacity = 1;
17905 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017906 { // except_block
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017907 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017908 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017909 return NULL;
17910 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017911 D(fprintf(stderr, "%*c> _loop1_47[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017912 excepthandler_ty except_block_var;
17913 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010017914 (except_block_var = except_block_rule(p)) // except_block
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017915 )
17916 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017917 _res = except_block_var;
17918 if (_n == _children_capacity) {
17919 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017920 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
17921 if (!_new_children) {
17922 p->error_indicator = 1;
17923 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017924 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017925 return NULL;
17926 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017927 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017928 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017929 _children[_n++] = _res;
17930 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017931 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017932 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017933 D(fprintf(stderr, "%*c%s _loop1_47[%d-%d]: %s failed!\n", p->level, ' ',
17934 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "except_block"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017935 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017936 if (_n == 0 || p->error_indicator) {
17937 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017938 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017939 return NULL;
17940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017941 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
17942 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017943 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030017944 p->error_indicator = 1;
17945 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017946 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017947 return NULL;
17948 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017949 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
17950 PyMem_Free(_children);
17951 _PyPegen_insert_memo(p, _start_mark, _loop1_47_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017952 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017953 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017954}
17955
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030017956// _tmp_48: 'as' NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017957static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030017958_tmp_48_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017959{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017960 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017961 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017962 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017963 return NULL;
17964 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017965 void * _res = NULL;
17966 int _mark = p->mark;
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030017967 { // 'as' NAME
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017968 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017969 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030017970 return NULL;
17971 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017972 D(fprintf(stderr, "%*c> _tmp_48[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' NAME"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017973 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017974 expr_ty z;
17975 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017976 (_keyword = _PyPegen_expect_token(p, 531)) // token='as'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017977 &&
Lysandros Nikolaouce21cfc2020-05-14 23:13:50 +030017978 (z = _PyPegen_name_token(p)) // NAME
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017979 )
17980 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017981 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 +010017982 _res = z;
17983 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017984 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017985 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017986 return NULL;
17987 }
17988 goto done;
17989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017990 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017991 D(fprintf(stderr, "%*c%s _tmp_48[%d-%d]: %s failed!\n", p->level, ' ',
17992 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' NAME"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017993 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017994 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017995 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070017996 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010017997 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010017998}
17999
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018000// _tmp_49: 'from' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018001static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018002_tmp_49_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018003{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018004 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018005 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018006 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018007 return NULL;
18008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018009 void * _res = NULL;
18010 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018011 { // 'from' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018012 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018013 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018014 return NULL;
18015 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018016 D(fprintf(stderr, "%*c> _tmp_49[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018017 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018018 expr_ty z;
18019 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018020 (_keyword = _PyPegen_expect_token(p, 514)) // token='from'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018021 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018022 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018023 )
18024 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018025 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 +010018026 _res = z;
18027 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018028 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018029 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018030 return NULL;
18031 }
18032 goto done;
18033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018034 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018035 D(fprintf(stderr, "%*c%s _tmp_49[%d-%d]: %s failed!\n", p->level, ' ',
18036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'from' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018037 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018038 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018039 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018040 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018041 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018042}
18043
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018044// _tmp_50: '->' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018045static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018046_tmp_50_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018047{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018048 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018049 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018050 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018051 return NULL;
18052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018053 void * _res = NULL;
18054 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018055 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018056 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018057 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018058 return NULL;
18059 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018060 D(fprintf(stderr, "%*c> _tmp_50[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018061 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070018062 expr_ty z;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018063 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018064 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018065 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018066 (z = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018067 )
18068 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018069 D(fprintf(stderr, "%*c+ _tmp_50[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018070 _res = z;
18071 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018072 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018073 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018074 return NULL;
18075 }
18076 goto done;
18077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018078 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018079 D(fprintf(stderr, "%*c%s _tmp_50[%d-%d]: %s failed!\n", p->level, ' ',
18080 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018081 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018082 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018083 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018084 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018085 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018086}
18087
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018088// _tmp_51: '->' expression
Guido van Rossumc001c092020-04-30 12:12:19 -070018089static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018090_tmp_51_rule(Parser *p)
18091{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018092 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018093 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018094 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018095 return NULL;
18096 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018097 void * _res = NULL;
18098 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018099 { // '->' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018100 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018101 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018102 return NULL;
18103 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018104 D(fprintf(stderr, "%*c> _tmp_51[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018105 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018106 expr_ty z;
18107 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018108 (_literal = _PyPegen_expect_token(p, 51)) // token='->'
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018109 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018110 (z = expression_rule(p)) // expression
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018111 )
18112 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018113 D(fprintf(stderr, "%*c+ _tmp_51[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'->' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018114 _res = z;
18115 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018116 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018117 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018118 return NULL;
18119 }
18120 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_51[%d-%d]: %s failed!\n", p->level, ' ',
18124 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'->' expression"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018125 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018126 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018127 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018128 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018129 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018130}
18131
18132// _tmp_52: NEWLINE INDENT
18133static void *
18134_tmp_52_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018135{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018136 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018138 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018139 return NULL;
18140 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018141 void * _res = NULL;
18142 int _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018143 { // NEWLINE INDENT
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018144 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018145 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018146 return NULL;
18147 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018148 D(fprintf(stderr, "%*c> _tmp_52[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE INDENT"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010018149 Token * indent_var;
18150 Token * newline_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018151 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010018152 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Guido van Rossumc001c092020-04-30 12:12:19 -070018153 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010018154 (indent_var = _PyPegen_expect_token(p, INDENT)) // token='INDENT'
Guido van Rossumc001c092020-04-30 12:12:19 -070018155 )
18156 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018157 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 +010018158 _res = _PyPegen_dummy_name(p, newline_var, indent_var);
Guido van Rossumc001c092020-04-30 12:12:19 -070018159 goto done;
18160 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018161 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018162 D(fprintf(stderr, "%*c%s _tmp_52[%d-%d]: %s failed!\n", p->level, ' ',
18163 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE INDENT"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018164 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018165 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070018166 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018167 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018168 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070018169}
18170
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018171// _loop0_53: param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018172static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018173_loop0_53_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018174{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018175 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018176 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018177 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018178 return NULL;
18179 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018180 void *_res = NULL;
18181 int _mark = p->mark;
18182 int _start_mark = p->mark;
18183 void **_children = PyMem_Malloc(sizeof(void *));
18184 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018185 p->error_indicator = 1;
18186 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018188 return NULL;
18189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018190 ssize_t _children_capacity = 1;
18191 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018192 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018194 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018195 return NULL;
18196 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018197 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 -070018198 arg_ty param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018199 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018200 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018201 )
18202 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018203 _res = param_no_default_var;
18204 if (_n == _children_capacity) {
18205 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018206 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18207 if (!_new_children) {
18208 p->error_indicator = 1;
18209 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018210 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018211 return NULL;
18212 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018213 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018215 _children[_n++] = _res;
18216 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018217 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018218 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018219 D(fprintf(stderr, "%*c%s _loop0_53[%d-%d]: %s failed!\n", p->level, ' ',
18220 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018221 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018222 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18223 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018224 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018225 p->error_indicator = 1;
18226 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018228 return NULL;
18229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018230 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18231 PyMem_Free(_children);
18232 _PyPegen_insert_memo(p, _start_mark, _loop0_53_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018233 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018234 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018235}
18236
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018237// _loop0_54: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018238static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018239_loop0_54_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018240{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018241 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018242 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018243 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018244 return NULL;
18245 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018246 void *_res = NULL;
18247 int _mark = p->mark;
18248 int _start_mark = p->mark;
18249 void **_children = PyMem_Malloc(sizeof(void *));
18250 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018251 p->error_indicator = 1;
18252 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018253 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018254 return NULL;
18255 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018256 ssize_t _children_capacity = 1;
18257 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018258 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018259 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018260 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018261 return NULL;
18262 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018263 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 -070018264 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018265 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018266 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018267 )
18268 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018269 _res = param_with_default_var;
18270 if (_n == _children_capacity) {
18271 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018272 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18273 if (!_new_children) {
18274 p->error_indicator = 1;
18275 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018276 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018277 return NULL;
18278 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018279 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018280 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018281 _children[_n++] = _res;
18282 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018284 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018285 D(fprintf(stderr, "%*c%s _loop0_54[%d-%d]: %s failed!\n", p->level, ' ',
18286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018288 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18289 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018290 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018291 p->error_indicator = 1;
18292 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018293 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018294 return NULL;
18295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018296 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18297 PyMem_Free(_children);
18298 _PyPegen_insert_memo(p, _start_mark, _loop0_54_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018299 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018300 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018301}
18302
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018303// _loop0_55: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018304static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018305_loop0_55_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018307 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018309 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018310 return NULL;
18311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018312 void *_res = NULL;
18313 int _mark = p->mark;
18314 int _start_mark = p->mark;
18315 void **_children = PyMem_Malloc(sizeof(void *));
18316 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018317 p->error_indicator = 1;
18318 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018319 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018320 return NULL;
18321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018322 ssize_t _children_capacity = 1;
18323 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018324 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018327 return NULL;
18328 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018329 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 -070018330 NameDefaultPair* param_with_default_var;
18331 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018332 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018333 )
18334 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018335 _res = param_with_default_var;
18336 if (_n == _children_capacity) {
18337 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018338 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18339 if (!_new_children) {
18340 p->error_indicator = 1;
18341 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018342 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018343 return NULL;
18344 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018345 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018347 _children[_n++] = _res;
18348 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018350 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018351 D(fprintf(stderr, "%*c%s _loop0_55[%d-%d]: %s failed!\n", p->level, ' ',
18352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018354 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18355 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018356 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018357 p->error_indicator = 1;
18358 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018359 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018360 return NULL;
18361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018362 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18363 PyMem_Free(_children);
18364 _PyPegen_insert_memo(p, _start_mark, _loop0_55_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018365 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018366 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018367}
18368
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018369// _loop1_56: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018370static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018371_loop1_56_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018373 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018375 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018376 return NULL;
18377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018378 void *_res = NULL;
18379 int _mark = p->mark;
18380 int _start_mark = p->mark;
18381 void **_children = PyMem_Malloc(sizeof(void *));
18382 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018383 p->error_indicator = 1;
18384 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018385 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018386 return NULL;
18387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018388 ssize_t _children_capacity = 1;
18389 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018390 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018392 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018393 return NULL;
18394 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018395 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 -070018396 arg_ty param_no_default_var;
18397 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018398 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018399 )
18400 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018401 _res = param_no_default_var;
18402 if (_n == _children_capacity) {
18403 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018404 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18405 if (!_new_children) {
18406 p->error_indicator = 1;
18407 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018408 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018409 return NULL;
18410 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018411 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018413 _children[_n++] = _res;
18414 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018416 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018417 D(fprintf(stderr, "%*c%s _loop1_56[%d-%d]: %s failed!\n", p->level, ' ',
18418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018420 if (_n == 0 || p->error_indicator) {
18421 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018422 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018423 return NULL;
18424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018425 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18426 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018427 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018428 p->error_indicator = 1;
18429 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018431 return NULL;
18432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018433 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18434 PyMem_Free(_children);
18435 _PyPegen_insert_memo(p, _start_mark, _loop1_56_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018436 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018437 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018438}
18439
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018440// _loop0_57: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018441static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018442_loop0_57_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018443{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018444 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018447 return NULL;
18448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018449 void *_res = NULL;
18450 int _mark = p->mark;
18451 int _start_mark = p->mark;
18452 void **_children = PyMem_Malloc(sizeof(void *));
18453 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018454 p->error_indicator = 1;
18455 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018456 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018457 return NULL;
18458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018459 ssize_t _children_capacity = 1;
18460 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018461 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018462 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018463 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018464 return NULL;
18465 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018466 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 -070018467 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018468 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018469 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018470 )
18471 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018472 _res = param_with_default_var;
18473 if (_n == _children_capacity) {
18474 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018475 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18476 if (!_new_children) {
18477 p->error_indicator = 1;
18478 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018480 return NULL;
18481 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018482 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018484 _children[_n++] = _res;
18485 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018487 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018488 D(fprintf(stderr, "%*c%s _loop0_57[%d-%d]: %s failed!\n", p->level, ' ',
18489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018491 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18492 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018493 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018494 p->error_indicator = 1;
18495 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018497 return NULL;
18498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018499 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18500 PyMem_Free(_children);
18501 _PyPegen_insert_memo(p, _start_mark, _loop0_57_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018502 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018503 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018504}
18505
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018506// _loop1_58: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018507static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018508_loop1_58_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018509{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018510 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018513 return NULL;
18514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018515 void *_res = NULL;
18516 int _mark = p->mark;
18517 int _start_mark = p->mark;
18518 void **_children = PyMem_Malloc(sizeof(void *));
18519 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018520 p->error_indicator = 1;
18521 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018523 return NULL;
18524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018525 ssize_t _children_capacity = 1;
18526 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070018527 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018530 return NULL;
18531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018532 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 -070018533 NameDefaultPair* param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018534 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018535 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018536 )
18537 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018538 _res = param_with_default_var;
18539 if (_n == _children_capacity) {
18540 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018541 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18542 if (!_new_children) {
18543 p->error_indicator = 1;
18544 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018545 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018546 return NULL;
18547 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018548 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010018549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018550 _children[_n++] = _res;
18551 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018554 D(fprintf(stderr, "%*c%s _loop1_58[%d-%d]: %s failed!\n", p->level, ' ',
18555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018557 if (_n == 0 || p->error_indicator) {
18558 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018559 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018560 return NULL;
18561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018562 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18563 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018564 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018565 p->error_indicator = 1;
18566 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018567 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018568 return NULL;
18569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018570 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18571 PyMem_Free(_children);
18572 _PyPegen_insert_memo(p, _start_mark, _loop1_58_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018573 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018574 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018575}
18576
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018577// _loop1_59: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018578static asdl_seq *
18579_loop1_59_rule(Parser *p)
18580{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018581 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018583 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018584 return NULL;
18585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018586 void *_res = NULL;
18587 int _mark = p->mark;
18588 int _start_mark = p->mark;
18589 void **_children = PyMem_Malloc(sizeof(void *));
18590 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018591 p->error_indicator = 1;
18592 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018593 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018594 return NULL;
18595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018596 ssize_t _children_capacity = 1;
18597 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018598 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018601 return NULL;
18602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018603 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 +030018604 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018605 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018606 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018607 )
18608 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018609 _res = param_no_default_var;
18610 if (_n == _children_capacity) {
18611 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018612 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18613 if (!_new_children) {
18614 p->error_indicator = 1;
18615 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018616 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018617 return NULL;
18618 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018619 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018621 _children[_n++] = _res;
18622 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018624 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018625 D(fprintf(stderr, "%*c%s _loop1_59[%d-%d]: %s failed!\n", p->level, ' ',
18626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018628 if (_n == 0 || p->error_indicator) {
18629 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018630 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018631 return NULL;
18632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018633 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18634 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018635 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018636 p->error_indicator = 1;
18637 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018638 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018639 return NULL;
18640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018641 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18642 PyMem_Free(_children);
18643 _PyPegen_insert_memo(p, _start_mark, _loop1_59_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018644 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018645 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018646}
18647
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018648// _loop1_60: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018649static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018650_loop1_60_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070018651{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018652 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018653 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018654 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018655 return NULL;
18656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018657 void *_res = NULL;
18658 int _mark = p->mark;
18659 int _start_mark = p->mark;
18660 void **_children = PyMem_Malloc(sizeof(void *));
18661 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018662 p->error_indicator = 1;
18663 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018664 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018665 return NULL;
18666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018667 ssize_t _children_capacity = 1;
18668 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018669 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018672 return NULL;
18673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018674 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 +030018675 arg_ty param_no_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018676 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018677 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018678 )
18679 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018680 _res = param_no_default_var;
18681 if (_n == _children_capacity) {
18682 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018683 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18684 if (!_new_children) {
18685 p->error_indicator = 1;
18686 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018687 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018688 return NULL;
18689 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018690 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018692 _children[_n++] = _res;
18693 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018695 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018696 D(fprintf(stderr, "%*c%s _loop1_60[%d-%d]: %s failed!\n", p->level, ' ',
18697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018699 if (_n == 0 || p->error_indicator) {
18700 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018701 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018702 return NULL;
18703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018704 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18705 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018706 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018707 p->error_indicator = 1;
18708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018709 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018710 return NULL;
18711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018712 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18713 PyMem_Free(_children);
18714 _PyPegen_insert_memo(p, _start_mark, _loop1_60_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018715 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018716 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018717}
18718
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018719// _loop0_61: param_no_default
18720static asdl_seq *
18721_loop0_61_rule(Parser *p)
18722{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018723 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018724 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018725 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018726 return NULL;
18727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018728 void *_res = NULL;
18729 int _mark = p->mark;
18730 int _start_mark = p->mark;
18731 void **_children = PyMem_Malloc(sizeof(void *));
18732 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018733 p->error_indicator = 1;
18734 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018735 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018736 return NULL;
18737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018738 ssize_t _children_capacity = 1;
18739 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018740 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018743 return NULL;
18744 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018745 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 +030018746 arg_ty param_no_default_var;
18747 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018748 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018749 )
18750 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018751 _res = param_no_default_var;
18752 if (_n == _children_capacity) {
18753 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018754 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18755 if (!_new_children) {
18756 p->error_indicator = 1;
18757 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018758 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018759 return NULL;
18760 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018761 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018763 _children[_n++] = _res;
18764 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018766 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018767 D(fprintf(stderr, "%*c%s _loop0_61[%d-%d]: %s failed!\n", p->level, ' ',
18768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018770 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18771 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018772 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018773 p->error_indicator = 1;
18774 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018775 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018776 return NULL;
18777 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018778 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18779 PyMem_Free(_children);
18780 _PyPegen_insert_memo(p, _start_mark, _loop0_61_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018781 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018782 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018783}
18784
18785// _loop1_62: param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018786static asdl_seq *
18787_loop1_62_rule(Parser *p)
18788{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018789 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070018790 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018791 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018792 return NULL;
18793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018794 void *_res = NULL;
18795 int _mark = p->mark;
18796 int _start_mark = p->mark;
18797 void **_children = PyMem_Malloc(sizeof(void *));
18798 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018799 p->error_indicator = 1;
18800 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018801 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018802 return NULL;
18803 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018804 ssize_t _children_capacity = 1;
18805 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018806 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018807 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018808 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018809 return NULL;
18810 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018811 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 +030018812 NameDefaultPair* param_with_default_var;
Guido van Rossumc001c092020-04-30 12:12:19 -070018813 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018814 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070018815 )
18816 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018817 _res = param_with_default_var;
18818 if (_n == _children_capacity) {
18819 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018820 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18821 if (!_new_children) {
18822 p->error_indicator = 1;
18823 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018824 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018825 return NULL;
18826 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018827 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070018828 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018829 _children[_n++] = _res;
18830 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070018831 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018832 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018833 D(fprintf(stderr, "%*c%s _loop1_62[%d-%d]: %s failed!\n", p->level, ' ',
18834 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070018835 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018836 if (_n == 0 || p->error_indicator) {
18837 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018838 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018839 return NULL;
18840 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018841 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18842 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018843 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018844 p->error_indicator = 1;
18845 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018846 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070018847 return NULL;
18848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018849 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18850 PyMem_Free(_children);
18851 _PyPegen_insert_memo(p, _start_mark, _loop1_62_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018852 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018853 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070018854}
18855
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018856// _loop0_63: param_no_default
18857static asdl_seq *
18858_loop0_63_rule(Parser *p)
18859{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018860 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018861 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018862 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018863 return NULL;
18864 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018865 void *_res = NULL;
18866 int _mark = p->mark;
18867 int _start_mark = p->mark;
18868 void **_children = PyMem_Malloc(sizeof(void *));
18869 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018870 p->error_indicator = 1;
18871 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018872 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018873 return NULL;
18874 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018875 ssize_t _children_capacity = 1;
18876 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018877 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018878 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018879 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018880 return NULL;
18881 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018882 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 +030018883 arg_ty param_no_default_var;
18884 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018885 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018886 )
18887 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018888 _res = param_no_default_var;
18889 if (_n == _children_capacity) {
18890 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018891 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18892 if (!_new_children) {
18893 p->error_indicator = 1;
18894 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018895 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018896 return NULL;
18897 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018898 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018899 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018900 _children[_n++] = _res;
18901 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018902 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018903 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018904 D(fprintf(stderr, "%*c%s _loop0_63[%d-%d]: %s failed!\n", p->level, ' ',
18905 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018906 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018907 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18908 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018909 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018910 p->error_indicator = 1;
18911 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018912 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018913 return NULL;
18914 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018915 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18916 PyMem_Free(_children);
18917 _PyPegen_insert_memo(p, _start_mark, _loop0_63_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018918 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018919 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018920}
18921
18922// _loop1_64: param_with_default
18923static asdl_seq *
18924_loop1_64_rule(Parser *p)
18925{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018926 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018927 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018928 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018929 return NULL;
18930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018931 void *_res = NULL;
18932 int _mark = p->mark;
18933 int _start_mark = p->mark;
18934 void **_children = PyMem_Malloc(sizeof(void *));
18935 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018936 p->error_indicator = 1;
18937 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018938 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018939 return NULL;
18940 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018941 ssize_t _children_capacity = 1;
18942 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018943 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018945 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030018946 return NULL;
18947 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018948 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 +030018949 NameDefaultPair* param_with_default_var;
18950 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010018951 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018952 )
18953 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018954 _res = param_with_default_var;
18955 if (_n == _children_capacity) {
18956 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018957 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
18958 if (!_new_children) {
18959 p->error_indicator = 1;
18960 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018961 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018962 return NULL;
18963 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018964 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018965 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018966 _children[_n++] = _res;
18967 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018968 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018969 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018970 D(fprintf(stderr, "%*c%s _loop1_64[%d-%d]: %s failed!\n", p->level, ' ',
18971 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018972 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018973 if (_n == 0 || p->error_indicator) {
18974 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018975 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018976 return NULL;
18977 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018978 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
18979 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018980 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030018981 p->error_indicator = 1;
18982 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018983 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018984 return NULL;
18985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018986 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
18987 PyMem_Free(_children);
18988 _PyPegen_insert_memo(p, _start_mark, _loop1_64_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018989 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010018990 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018991}
18992
18993// _loop0_65: param_maybe_default
18994static asdl_seq *
18995_loop0_65_rule(Parser *p)
18996{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018997 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030018998 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070018999 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019000 return NULL;
19001 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019002 void *_res = NULL;
19003 int _mark = p->mark;
19004 int _start_mark = p->mark;
19005 void **_children = PyMem_Malloc(sizeof(void *));
19006 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019007 p->error_indicator = 1;
19008 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019009 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019010 return NULL;
19011 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019012 ssize_t _children_capacity = 1;
19013 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019014 { // param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019016 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019017 return NULL;
19018 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019019 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 +030019020 NameDefaultPair* param_maybe_default_var;
19021 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019022 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019023 )
19024 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019025 _res = param_maybe_default_var;
19026 if (_n == _children_capacity) {
19027 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019028 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19029 if (!_new_children) {
19030 p->error_indicator = 1;
19031 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019032 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019033 return NULL;
19034 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019035 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019036 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019037 _children[_n++] = _res;
19038 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019039 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019040 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019041 D(fprintf(stderr, "%*c%s _loop0_65[%d-%d]: %s failed!\n", p->level, ' ',
19042 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019043 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019044 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19045 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019046 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019047 p->error_indicator = 1;
19048 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019049 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019050 return NULL;
19051 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019052 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19053 PyMem_Free(_children);
19054 _PyPegen_insert_memo(p, _start_mark, _loop0_65_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019055 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019056 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019057}
19058
19059// _loop1_66: param_maybe_default
19060static asdl_seq *
19061_loop1_66_rule(Parser *p)
19062{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019063 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019064 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019065 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019066 return NULL;
19067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019068 void *_res = NULL;
19069 int _mark = p->mark;
19070 int _start_mark = p->mark;
19071 void **_children = PyMem_Malloc(sizeof(void *));
19072 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019073 p->error_indicator = 1;
19074 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019075 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019076 return NULL;
19077 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019078 ssize_t _children_capacity = 1;
19079 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019080 { // param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019081 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019082 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019083 return NULL;
19084 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019085 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 +030019086 NameDefaultPair* param_maybe_default_var;
19087 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019088 (param_maybe_default_var = param_maybe_default_rule(p)) // param_maybe_default
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019089 )
19090 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019091 _res = param_maybe_default_var;
19092 if (_n == _children_capacity) {
19093 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019094 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19095 if (!_new_children) {
19096 p->error_indicator = 1;
19097 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019098 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019099 return NULL;
19100 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019101 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019102 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019103 _children[_n++] = _res;
19104 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019105 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019106 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019107 D(fprintf(stderr, "%*c%s _loop1_66[%d-%d]: %s failed!\n", p->level, ' ',
19108 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_maybe_default"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019110 if (_n == 0 || p->error_indicator) {
19111 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019112 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019113 return NULL;
19114 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019115 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19116 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019117 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019118 p->error_indicator = 1;
19119 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019120 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019121 return NULL;
19122 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019123 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19124 PyMem_Free(_children);
19125 _PyPegen_insert_memo(p, _start_mark, _loop1_66_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019126 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019127 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019128}
19129
19130// _loop1_67: ('@' named_expression NEWLINE)
19131static asdl_seq *
19132_loop1_67_rule(Parser *p)
19133{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019134 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019135 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019136 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019137 return NULL;
19138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019139 void *_res = NULL;
19140 int _mark = p->mark;
19141 int _start_mark = p->mark;
19142 void **_children = PyMem_Malloc(sizeof(void *));
19143 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019144 p->error_indicator = 1;
19145 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019146 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019147 return NULL;
19148 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019149 ssize_t _children_capacity = 1;
19150 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019151 { // ('@' named_expression NEWLINE)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019152 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019153 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019154 return NULL;
19155 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019156 D(fprintf(stderr, "%*c> _loop1_67[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019157 void *_tmp_139_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019158 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019159 (_tmp_139_var = _tmp_139_rule(p)) // '@' named_expression NEWLINE
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019160 )
19161 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019162 _res = _tmp_139_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019163 if (_n == _children_capacity) {
19164 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019165 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19166 if (!_new_children) {
19167 p->error_indicator = 1;
19168 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019169 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019170 return NULL;
19171 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019172 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019174 _children[_n++] = _res;
19175 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019176 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019177 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019178 D(fprintf(stderr, "%*c%s _loop1_67[%d-%d]: %s failed!\n", p->level, ' ',
19179 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('@' named_expression NEWLINE)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019180 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019181 if (_n == 0 || p->error_indicator) {
19182 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019183 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019184 return NULL;
19185 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019186 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19187 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019188 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019189 p->error_indicator = 1;
19190 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019191 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019192 return NULL;
19193 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019194 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19195 PyMem_Free(_children);
19196 _PyPegen_insert_memo(p, _start_mark, _loop1_67_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019197 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019198 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019199}
19200
19201// _tmp_68: '(' arguments? ')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019202static void *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019203_tmp_68_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019204{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019205 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019206 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019207 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019208 return NULL;
19209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019210 void * _res = NULL;
19211 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019212 { // '(' arguments? ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019213 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019214 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019215 return NULL;
19216 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019217 D(fprintf(stderr, "%*c> _tmp_68[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019218 Token * _literal;
19219 Token * _literal_1;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019220 void *z;
19221 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019222 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019223 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019224 (z = arguments_rule(p), 1) // arguments?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019225 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019226 (_literal_1 = _PyPegen_expect_token(p, 8)) // token=')'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019227 )
19228 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019229 D(fprintf(stderr, "%*c+ _tmp_68[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019230 _res = z;
19231 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019232 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019233 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019234 return NULL;
19235 }
19236 goto done;
19237 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019238 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019239 D(fprintf(stderr, "%*c%s _tmp_68[%d-%d]: %s failed!\n", p->level, ' ',
19240 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'(' arguments? ')'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019241 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019242 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019243 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019244 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019245 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019246}
19247
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019248// _loop0_70: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019249static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019250_loop0_70_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019251{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019252 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019253 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019254 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019255 return NULL;
19256 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019257 void *_res = NULL;
19258 int _mark = p->mark;
19259 int _start_mark = p->mark;
19260 void **_children = PyMem_Malloc(sizeof(void *));
19261 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019262 p->error_indicator = 1;
19263 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019265 return NULL;
19266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019267 ssize_t _children_capacity = 1;
19268 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019269 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019270 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019271 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019272 return NULL;
19273 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019274 D(fprintf(stderr, "%*c> _loop0_70[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019275 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019276 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019277 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019278 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019279 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019280 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019281 )
19282 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019283 _res = elem;
19284 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019285 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019286 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019287 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019288 return NULL;
19289 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019290 if (_n == _children_capacity) {
19291 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019292 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19293 if (!_new_children) {
19294 p->error_indicator = 1;
19295 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019296 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019297 return NULL;
19298 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019299 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019300 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019301 _children[_n++] = _res;
19302 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019304 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019305 D(fprintf(stderr, "%*c%s _loop0_70[%d-%d]: %s failed!\n", p->level, ' ',
19306 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019307 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019308 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19309 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019310 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019311 p->error_indicator = 1;
19312 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019313 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019314 return NULL;
19315 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019316 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19317 PyMem_Free(_children);
19318 _PyPegen_insert_memo(p, _start_mark, _loop0_70_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019319 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019320 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019321}
19322
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019323// _gather_69: star_expression _loop0_70
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019324static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019325_gather_69_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 asdl_seq * _res = NULL;
19333 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019334 { // star_expression _loop0_70
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019335 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019336 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019337 return NULL;
19338 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019339 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 +010019340 expr_ty elem;
19341 asdl_seq * seq;
19342 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019343 (elem = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019344 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019345 (seq = _loop0_70_rule(p)) // _loop0_70
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019346 )
19347 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019348 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 +010019349 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019350 goto done;
19351 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019352 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019353 D(fprintf(stderr, "%*c%s _gather_69[%d-%d]: %s failed!\n", p->level, ' ',
19354 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expression _loop0_70"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019355 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019356 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019357 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019358 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019359 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019360}
19361
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019362// _loop1_71: (',' star_expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019363static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019364_loop1_71_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019365{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019366 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019367 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019368 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019369 return NULL;
19370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019371 void *_res = NULL;
19372 int _mark = p->mark;
19373 int _start_mark = p->mark;
19374 void **_children = PyMem_Malloc(sizeof(void *));
19375 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019376 p->error_indicator = 1;
19377 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019378 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019379 return NULL;
19380 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019381 ssize_t _children_capacity = 1;
19382 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019383 { // (',' star_expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019384 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019385 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019386 return NULL;
19387 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019388 D(fprintf(stderr, "%*c> _loop1_71[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019389 void *_tmp_140_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019390 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019391 (_tmp_140_var = _tmp_140_rule(p)) // ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019392 )
19393 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019394 _res = _tmp_140_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019395 if (_n == _children_capacity) {
19396 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019397 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19398 if (!_new_children) {
19399 p->error_indicator = 1;
19400 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019401 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019402 return NULL;
19403 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019404 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019405 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019406 _children[_n++] = _res;
19407 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019408 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019409 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019410 D(fprintf(stderr, "%*c%s _loop1_71[%d-%d]: %s failed!\n", p->level, ' ',
19411 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019413 if (_n == 0 || p->error_indicator) {
19414 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019415 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019416 return NULL;
19417 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019418 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19419 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019420 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019421 p->error_indicator = 1;
19422 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019423 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019424 return NULL;
19425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019426 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19427 PyMem_Free(_children);
19428 _PyPegen_insert_memo(p, _start_mark, _loop1_71_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019429 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019430 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019431}
19432
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019433// _loop0_73: ',' star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019434static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019435_loop0_73_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019436{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019437 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019438 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019439 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019440 return NULL;
19441 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019442 void *_res = NULL;
19443 int _mark = p->mark;
19444 int _start_mark = p->mark;
19445 void **_children = PyMem_Malloc(sizeof(void *));
19446 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019447 p->error_indicator = 1;
19448 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019450 return NULL;
19451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019452 ssize_t _children_capacity = 1;
19453 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019454 { // ',' star_named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019455 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019456 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019457 return NULL;
19458 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019459 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 +010019460 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019461 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019462 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019463 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019464 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019465 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019466 )
19467 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019468 _res = elem;
19469 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019470 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019471 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019472 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019473 return NULL;
19474 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019475 if (_n == _children_capacity) {
19476 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019477 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19478 if (!_new_children) {
19479 p->error_indicator = 1;
19480 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019481 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019482 return NULL;
19483 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019484 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019485 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019486 _children[_n++] = _res;
19487 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019488 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019489 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019490 D(fprintf(stderr, "%*c%s _loop0_73[%d-%d]: %s failed!\n", p->level, ' ',
19491 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019492 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019493 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19494 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019495 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019496 p->error_indicator = 1;
19497 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019498 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019499 return NULL;
19500 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019501 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19502 PyMem_Free(_children);
19503 _PyPegen_insert_memo(p, _start_mark, _loop0_73_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019504 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019505 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019506}
19507
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019508// _gather_72: star_named_expression _loop0_73
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019509static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019510_gather_72_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 asdl_seq * _res = NULL;
19518 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019519 { // star_named_expression _loop0_73
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019522 return NULL;
19523 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019524 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 +010019525 expr_ty elem;
19526 asdl_seq * seq;
19527 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010019528 (elem = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019529 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010019530 (seq = _loop0_73_rule(p)) // _loop0_73
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019531 )
19532 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019533 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 +010019534 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019535 goto done;
19536 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019537 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019538 D(fprintf(stderr, "%*c%s _gather_72[%d-%d]: %s failed!\n", p->level, ' ',
19539 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression _loop0_73"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019540 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019541 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019542 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019543 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019544 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019545}
19546
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019547// _loop1_74: (',' expression)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019548static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030019549_loop1_74_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019550{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019551 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019552 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019553 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019554 return NULL;
19555 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019556 void *_res = NULL;
19557 int _mark = p->mark;
19558 int _start_mark = p->mark;
19559 void **_children = PyMem_Malloc(sizeof(void *));
19560 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019561 p->error_indicator = 1;
19562 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019563 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019564 return NULL;
19565 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019566 ssize_t _children_capacity = 1;
19567 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019568 { // (',' expression)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019569 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019570 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019571 return NULL;
19572 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019573 D(fprintf(stderr, "%*c> _loop1_74[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' expression)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019574 void *_tmp_141_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019575 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019576 (_tmp_141_var = _tmp_141_rule(p)) // ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019577 )
19578 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070019579 _res = _tmp_141_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019580 if (_n == _children_capacity) {
19581 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019582 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19583 if (!_new_children) {
19584 p->error_indicator = 1;
19585 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019586 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019587 return NULL;
19588 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019589 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019591 _children[_n++] = _res;
19592 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019593 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019594 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019595 D(fprintf(stderr, "%*c%s _loop1_74[%d-%d]: %s failed!\n", p->level, ' ',
19596 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' expression)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019597 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019598 if (_n == 0 || p->error_indicator) {
19599 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019600 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019601 return NULL;
19602 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019603 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19604 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019605 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019606 p->error_indicator = 1;
19607 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019608 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019609 return NULL;
19610 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019611 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19612 PyMem_Free(_children);
19613 _PyPegen_insert_memo(p, _start_mark, _loop1_74_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019614 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019615 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019616}
19617
Guido van Rossum3941d972020-05-01 09:42:03 -070019618// _loop0_75: lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019619static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070019620_loop0_75_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019621{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019622 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019623 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019624 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019625 return NULL;
19626 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019627 void *_res = NULL;
19628 int _mark = p->mark;
19629 int _start_mark = p->mark;
19630 void **_children = PyMem_Malloc(sizeof(void *));
19631 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019632 p->error_indicator = 1;
19633 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019634 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019635 return NULL;
19636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019637 ssize_t _children_capacity = 1;
19638 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019639 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019641 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019642 return NULL;
19643 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019644 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 -070019645 arg_ty lambda_param_no_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019646 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019647 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019648 )
19649 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019650 _res = lambda_param_no_default_var;
19651 if (_n == _children_capacity) {
19652 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019653 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19654 if (!_new_children) {
19655 p->error_indicator = 1;
19656 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019657 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019658 return NULL;
19659 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019660 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019661 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019662 _children[_n++] = _res;
19663 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019664 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019665 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019666 D(fprintf(stderr, "%*c%s _loop0_75[%d-%d]: %s failed!\n", p->level, ' ',
19667 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019668 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019669 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19670 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019671 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019672 p->error_indicator = 1;
19673 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019674 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019675 return NULL;
19676 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019677 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19678 PyMem_Free(_children);
19679 _PyPegen_insert_memo(p, _start_mark, _loop0_75_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019680 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019681 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019682}
19683
Guido van Rossum3941d972020-05-01 09:42:03 -070019684// _loop0_76: lambda_param_with_default
19685static asdl_seq *
19686_loop0_76_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019687{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019688 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019689 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019690 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019691 return NULL;
19692 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019693 void *_res = NULL;
19694 int _mark = p->mark;
19695 int _start_mark = p->mark;
19696 void **_children = PyMem_Malloc(sizeof(void *));
19697 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019698 p->error_indicator = 1;
19699 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019700 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019701 return NULL;
19702 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019703 ssize_t _children_capacity = 1;
19704 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019705 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019707 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019708 return NULL;
19709 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019710 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 -070019711 NameDefaultPair* lambda_param_with_default_var;
19712 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019713 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019714 )
19715 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019716 _res = lambda_param_with_default_var;
19717 if (_n == _children_capacity) {
19718 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019719 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19720 if (!_new_children) {
19721 p->error_indicator = 1;
19722 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019723 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019724 return NULL;
19725 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019726 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019728 _children[_n++] = _res;
19729 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019730 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019731 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019732 D(fprintf(stderr, "%*c%s _loop0_76[%d-%d]: %s failed!\n", p->level, ' ',
19733 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019735 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19736 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019737 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019738 p->error_indicator = 1;
19739 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019740 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019741 return NULL;
19742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019743 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19744 PyMem_Free(_children);
19745 _PyPegen_insert_memo(p, _start_mark, _loop0_76_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019746 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019747 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010019748}
19749
Guido van Rossum3941d972020-05-01 09:42:03 -070019750// _loop0_77: lambda_param_with_default
19751static asdl_seq *
19752_loop0_77_rule(Parser *p)
19753{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019754 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019755 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019756 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019757 return NULL;
19758 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019759 void *_res = NULL;
19760 int _mark = p->mark;
19761 int _start_mark = p->mark;
19762 void **_children = PyMem_Malloc(sizeof(void *));
19763 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019764 p->error_indicator = 1;
19765 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019766 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019767 return NULL;
19768 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019769 ssize_t _children_capacity = 1;
19770 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019771 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019772 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019773 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019774 return NULL;
19775 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019776 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 -070019777 NameDefaultPair* lambda_param_with_default_var;
19778 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019779 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019780 )
19781 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019782 _res = lambda_param_with_default_var;
19783 if (_n == _children_capacity) {
19784 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019785 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19786 if (!_new_children) {
19787 p->error_indicator = 1;
19788 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019789 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019790 return NULL;
19791 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019792 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019793 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019794 _children[_n++] = _res;
19795 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019796 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019797 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019798 D(fprintf(stderr, "%*c%s _loop0_77[%d-%d]: %s failed!\n", p->level, ' ',
19799 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019800 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019801 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19802 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019803 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019804 p->error_indicator = 1;
19805 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019806 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019807 return NULL;
19808 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019809 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19810 PyMem_Free(_children);
19811 _PyPegen_insert_memo(p, _start_mark, _loop0_77_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019812 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019813 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019814}
19815
19816// _loop1_78: lambda_param_no_default
19817static asdl_seq *
19818_loop1_78_rule(Parser *p)
19819{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019820 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019821 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019822 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019823 return NULL;
19824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019825 void *_res = NULL;
19826 int _mark = p->mark;
19827 int _start_mark = p->mark;
19828 void **_children = PyMem_Malloc(sizeof(void *));
19829 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019830 p->error_indicator = 1;
19831 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019832 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019833 return NULL;
19834 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019835 ssize_t _children_capacity = 1;
19836 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019837 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019838 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019839 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019840 return NULL;
19841 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019842 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 -070019843 arg_ty lambda_param_no_default_var;
19844 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019845 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019846 )
19847 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019848 _res = lambda_param_no_default_var;
19849 if (_n == _children_capacity) {
19850 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019851 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19852 if (!_new_children) {
19853 p->error_indicator = 1;
19854 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019855 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019856 return NULL;
19857 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019858 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019859 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019860 _children[_n++] = _res;
19861 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019862 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019863 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019864 D(fprintf(stderr, "%*c%s _loop1_78[%d-%d]: %s failed!\n", p->level, ' ',
19865 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019866 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019867 if (_n == 0 || p->error_indicator) {
19868 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019869 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019870 return NULL;
19871 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019872 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19873 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019874 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019875 p->error_indicator = 1;
19876 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019877 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019878 return NULL;
19879 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019880 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19881 PyMem_Free(_children);
19882 _PyPegen_insert_memo(p, _start_mark, _loop1_78_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019883 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019884 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019885}
19886
19887// _loop0_79: lambda_param_with_default
19888static asdl_seq *
19889_loop0_79_rule(Parser *p)
19890{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019891 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019892 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019893 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019894 return NULL;
19895 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019896 void *_res = NULL;
19897 int _mark = p->mark;
19898 int _start_mark = p->mark;
19899 void **_children = PyMem_Malloc(sizeof(void *));
19900 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019901 p->error_indicator = 1;
19902 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019903 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019904 return NULL;
19905 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019906 ssize_t _children_capacity = 1;
19907 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019908 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019909 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019910 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019911 return NULL;
19912 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019913 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 -070019914 NameDefaultPair* lambda_param_with_default_var;
19915 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019916 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019917 )
19918 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019919 _res = lambda_param_with_default_var;
19920 if (_n == _children_capacity) {
19921 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019922 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19923 if (!_new_children) {
19924 p->error_indicator = 1;
19925 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019926 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019927 return NULL;
19928 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019929 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019930 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019931 _children[_n++] = _res;
19932 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019933 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019934 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019935 D(fprintf(stderr, "%*c%s _loop0_79[%d-%d]: %s failed!\n", p->level, ' ',
19936 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070019937 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019938 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
19939 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019940 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019941 p->error_indicator = 1;
19942 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019943 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019944 return NULL;
19945 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019946 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
19947 PyMem_Free(_children);
19948 _PyPegen_insert_memo(p, _start_mark, _loop0_79_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019949 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019950 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070019951}
19952
19953// _loop1_80: lambda_param_with_default
19954static asdl_seq *
19955_loop1_80_rule(Parser *p)
19956{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019957 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070019958 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019959 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019960 return NULL;
19961 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019962 void *_res = NULL;
19963 int _mark = p->mark;
19964 int _start_mark = p->mark;
19965 void **_children = PyMem_Malloc(sizeof(void *));
19966 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019967 p->error_indicator = 1;
19968 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019969 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019970 return NULL;
19971 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019972 ssize_t _children_capacity = 1;
19973 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070019974 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019975 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019976 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030019977 return NULL;
19978 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019979 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 -070019980 NameDefaultPair* lambda_param_with_default_var;
19981 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010019982 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070019983 )
19984 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019985 _res = lambda_param_with_default_var;
19986 if (_n == _children_capacity) {
19987 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019988 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
19989 if (!_new_children) {
19990 p->error_indicator = 1;
19991 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070019992 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070019993 return NULL;
19994 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030019995 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070019996 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010019997 _children[_n++] = _res;
19998 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070019999 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020000 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020001 D(fprintf(stderr, "%*c%s _loop1_80[%d-%d]: %s failed!\n", p->level, ' ',
20002 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020003 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020004 if (_n == 0 || p->error_indicator) {
20005 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020006 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020007 return NULL;
20008 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020009 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20010 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020011 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020012 p->error_indicator = 1;
20013 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020014 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020015 return NULL;
20016 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020017 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20018 PyMem_Free(_children);
20019 _PyPegen_insert_memo(p, _start_mark, _loop1_80_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020020 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020021 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020022}
20023
20024// _loop1_81: lambda_param_no_default
20025static asdl_seq *
20026_loop1_81_rule(Parser *p)
20027{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020028 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020029 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020030 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020031 return NULL;
20032 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020033 void *_res = NULL;
20034 int _mark = p->mark;
20035 int _start_mark = p->mark;
20036 void **_children = PyMem_Malloc(sizeof(void *));
20037 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020038 p->error_indicator = 1;
20039 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020040 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020041 return NULL;
20042 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020043 ssize_t _children_capacity = 1;
20044 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020045 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020046 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020047 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020048 return NULL;
20049 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020050 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 -070020051 arg_ty lambda_param_no_default_var;
20052 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020053 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020054 )
20055 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020056 _res = lambda_param_no_default_var;
20057 if (_n == _children_capacity) {
20058 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020059 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20060 if (!_new_children) {
20061 p->error_indicator = 1;
20062 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020063 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020064 return NULL;
20065 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020066 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020067 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020068 _children[_n++] = _res;
20069 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020070 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020071 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020072 D(fprintf(stderr, "%*c%s _loop1_81[%d-%d]: %s failed!\n", p->level, ' ',
20073 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020074 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020075 if (_n == 0 || p->error_indicator) {
20076 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020077 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020078 return NULL;
20079 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020080 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20081 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020082 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020083 p->error_indicator = 1;
20084 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020085 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020086 return NULL;
20087 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020088 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20089 PyMem_Free(_children);
20090 _PyPegen_insert_memo(p, _start_mark, _loop1_81_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020091 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020092 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020093}
20094
20095// _loop1_82: lambda_param_no_default
20096static asdl_seq *
20097_loop1_82_rule(Parser *p)
20098{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020099 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020100 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020101 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020102 return NULL;
20103 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020104 void *_res = NULL;
20105 int _mark = p->mark;
20106 int _start_mark = p->mark;
20107 void **_children = PyMem_Malloc(sizeof(void *));
20108 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020109 p->error_indicator = 1;
20110 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020111 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020112 return NULL;
20113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020114 ssize_t _children_capacity = 1;
20115 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020116 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020117 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020118 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020119 return NULL;
20120 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020121 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 -070020122 arg_ty lambda_param_no_default_var;
20123 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020124 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020125 )
20126 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020127 _res = lambda_param_no_default_var;
20128 if (_n == _children_capacity) {
20129 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020130 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20131 if (!_new_children) {
20132 p->error_indicator = 1;
20133 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020134 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020135 return NULL;
20136 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020137 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020138 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020139 _children[_n++] = _res;
20140 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020141 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020142 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020143 D(fprintf(stderr, "%*c%s _loop1_82[%d-%d]: %s failed!\n", p->level, ' ',
20144 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020145 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020146 if (_n == 0 || p->error_indicator) {
20147 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020148 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020149 return NULL;
20150 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020151 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20152 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020153 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020154 p->error_indicator = 1;
20155 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020156 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020157 return NULL;
20158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020159 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20160 PyMem_Free(_children);
20161 _PyPegen_insert_memo(p, _start_mark, _loop1_82_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020162 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020163 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020164}
20165
20166// _loop0_83: lambda_param_no_default
20167static asdl_seq *
20168_loop0_83_rule(Parser *p)
20169{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020170 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020171 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020172 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020173 return NULL;
20174 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020175 void *_res = NULL;
20176 int _mark = p->mark;
20177 int _start_mark = p->mark;
20178 void **_children = PyMem_Malloc(sizeof(void *));
20179 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020180 p->error_indicator = 1;
20181 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020182 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020183 return NULL;
20184 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020185 ssize_t _children_capacity = 1;
20186 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020187 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020188 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020189 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020190 return NULL;
20191 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020192 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 -070020193 arg_ty lambda_param_no_default_var;
20194 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020195 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020196 )
20197 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020198 _res = lambda_param_no_default_var;
20199 if (_n == _children_capacity) {
20200 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020201 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20202 if (!_new_children) {
20203 p->error_indicator = 1;
20204 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020205 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020206 return NULL;
20207 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020208 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020209 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020210 _children[_n++] = _res;
20211 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020212 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020213 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020214 D(fprintf(stderr, "%*c%s _loop0_83[%d-%d]: %s failed!\n", p->level, ' ',
20215 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020216 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020217 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20218 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020219 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020220 p->error_indicator = 1;
20221 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020222 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020223 return NULL;
20224 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020225 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20226 PyMem_Free(_children);
20227 _PyPegen_insert_memo(p, _start_mark, _loop0_83_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020228 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020229 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020230}
20231
20232// _loop1_84: lambda_param_with_default
20233static asdl_seq *
20234_loop1_84_rule(Parser *p)
20235{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020236 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020237 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020238 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020239 return NULL;
20240 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020241 void *_res = NULL;
20242 int _mark = p->mark;
20243 int _start_mark = p->mark;
20244 void **_children = PyMem_Malloc(sizeof(void *));
20245 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020246 p->error_indicator = 1;
20247 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020248 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020249 return NULL;
20250 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020251 ssize_t _children_capacity = 1;
20252 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020253 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020254 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020255 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020256 return NULL;
20257 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020258 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 -070020259 NameDefaultPair* lambda_param_with_default_var;
20260 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020261 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020262 )
20263 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020264 _res = lambda_param_with_default_var;
20265 if (_n == _children_capacity) {
20266 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020267 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20268 if (!_new_children) {
20269 p->error_indicator = 1;
20270 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020271 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020272 return NULL;
20273 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020274 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020275 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020276 _children[_n++] = _res;
20277 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020278 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020279 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020280 D(fprintf(stderr, "%*c%s _loop1_84[%d-%d]: %s failed!\n", p->level, ' ',
20281 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020282 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020283 if (_n == 0 || p->error_indicator) {
20284 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020285 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020286 return NULL;
20287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020288 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20289 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020290 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020291 p->error_indicator = 1;
20292 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020293 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020294 return NULL;
20295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020296 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20297 PyMem_Free(_children);
20298 _PyPegen_insert_memo(p, _start_mark, _loop1_84_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020299 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020300 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020301}
20302
20303// _loop0_85: lambda_param_no_default
20304static asdl_seq *
20305_loop0_85_rule(Parser *p)
20306{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020307 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070020308 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020309 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020310 return NULL;
20311 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020312 void *_res = NULL;
20313 int _mark = p->mark;
20314 int _start_mark = p->mark;
20315 void **_children = PyMem_Malloc(sizeof(void *));
20316 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020317 p->error_indicator = 1;
20318 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020319 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020320 return NULL;
20321 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020322 ssize_t _children_capacity = 1;
20323 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020324 { // lambda_param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020327 return NULL;
20328 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020329 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 -070020330 arg_ty lambda_param_no_default_var;
20331 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020332 (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default
Guido van Rossum3941d972020-05-01 09:42:03 -070020333 )
20334 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020335 _res = lambda_param_no_default_var;
20336 if (_n == _children_capacity) {
20337 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020338 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20339 if (!_new_children) {
20340 p->error_indicator = 1;
20341 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020342 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020343 return NULL;
20344 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020345 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070020346 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020347 _children[_n++] = _res;
20348 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020349 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020350 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020351 D(fprintf(stderr, "%*c%s _loop0_85[%d-%d]: %s failed!\n", p->level, ' ',
20352 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default"));
Guido van Rossum3941d972020-05-01 09:42:03 -070020353 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020354 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20355 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020356 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020357 p->error_indicator = 1;
20358 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020359 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020360 return NULL;
20361 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020362 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20363 PyMem_Free(_children);
20364 _PyPegen_insert_memo(p, _start_mark, _loop0_85_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020365 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020366 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070020367}
20368
20369// _loop1_86: lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020370static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030020371_loop1_86_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020372{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020373 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020374 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020375 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020376 return NULL;
20377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020378 void *_res = NULL;
20379 int _mark = p->mark;
20380 int _start_mark = p->mark;
20381 void **_children = PyMem_Malloc(sizeof(void *));
20382 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020383 p->error_indicator = 1;
20384 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020385 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020386 return NULL;
20387 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020388 ssize_t _children_capacity = 1;
20389 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020390 { // lambda_param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020391 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020392 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020393 return NULL;
20394 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020395 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 -070020396 NameDefaultPair* lambda_param_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020397 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020398 (lambda_param_with_default_var = lambda_param_with_default_rule(p)) // lambda_param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020399 )
20400 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020401 _res = lambda_param_with_default_var;
20402 if (_n == _children_capacity) {
20403 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020404 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20405 if (!_new_children) {
20406 p->error_indicator = 1;
20407 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020408 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020409 return NULL;
20410 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020411 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020412 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020413 _children[_n++] = _res;
20414 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020415 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020416 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020417 D(fprintf(stderr, "%*c%s _loop1_86[%d-%d]: %s failed!\n", p->level, ' ',
20418 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020419 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020420 if (_n == 0 || p->error_indicator) {
20421 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020422 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020423 return NULL;
20424 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020425 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20426 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020427 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020428 p->error_indicator = 1;
20429 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020430 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020431 return NULL;
20432 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020433 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20434 PyMem_Free(_children);
20435 _PyPegen_insert_memo(p, _start_mark, _loop1_86_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020436 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020437 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020438}
20439
Guido van Rossum3941d972020-05-01 09:42:03 -070020440// _loop0_87: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020441static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020442_loop0_87_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020443{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020444 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020445 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020446 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020447 return NULL;
20448 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020449 void *_res = NULL;
20450 int _mark = p->mark;
20451 int _start_mark = p->mark;
20452 void **_children = PyMem_Malloc(sizeof(void *));
20453 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020454 p->error_indicator = 1;
20455 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020456 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020457 return NULL;
20458 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020459 ssize_t _children_capacity = 1;
20460 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020461 { // lambda_param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020462 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020463 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020464 return NULL;
20465 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020466 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 -070020467 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020468 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020469 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020470 )
20471 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020472 _res = lambda_param_maybe_default_var;
20473 if (_n == _children_capacity) {
20474 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020475 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20476 if (!_new_children) {
20477 p->error_indicator = 1;
20478 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020480 return NULL;
20481 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020482 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020483 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020484 _children[_n++] = _res;
20485 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020486 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020487 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020488 D(fprintf(stderr, "%*c%s _loop0_87[%d-%d]: %s failed!\n", p->level, ' ',
20489 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020490 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020491 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20492 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020493 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020494 p->error_indicator = 1;
20495 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020496 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020497 return NULL;
20498 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020499 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20500 PyMem_Free(_children);
20501 _PyPegen_insert_memo(p, _start_mark, _loop0_87_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020502 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020503 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020504}
20505
Guido van Rossum3941d972020-05-01 09:42:03 -070020506// _loop1_88: lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020507static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020508_loop1_88_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020509{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020510 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020511 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020512 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020513 return NULL;
20514 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020515 void *_res = NULL;
20516 int _mark = p->mark;
20517 int _start_mark = p->mark;
20518 void **_children = PyMem_Malloc(sizeof(void *));
20519 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020520 p->error_indicator = 1;
20521 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020522 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020523 return NULL;
20524 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020525 ssize_t _children_capacity = 1;
20526 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070020527 { // lambda_param_maybe_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020528 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020529 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020530 return NULL;
20531 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020532 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 -070020533 NameDefaultPair* lambda_param_maybe_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020534 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020535 (lambda_param_maybe_default_var = lambda_param_maybe_default_rule(p)) // lambda_param_maybe_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020536 )
20537 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020538 _res = lambda_param_maybe_default_var;
20539 if (_n == _children_capacity) {
20540 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020541 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20542 if (!_new_children) {
20543 p->error_indicator = 1;
20544 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020545 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020546 return NULL;
20547 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020548 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020549 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020550 _children[_n++] = _res;
20551 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020552 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020553 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020554 D(fprintf(stderr, "%*c%s _loop1_88[%d-%d]: %s failed!\n", p->level, ' ',
20555 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_maybe_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020556 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020557 if (_n == 0 || p->error_indicator) {
20558 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020559 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070020560 return NULL;
20561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020562 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20563 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020564 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020565 p->error_indicator = 1;
20566 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020567 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020568 return NULL;
20569 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020570 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20571 PyMem_Free(_children);
20572 _PyPegen_insert_memo(p, _start_mark, _loop1_88_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020573 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020574 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020575}
20576
Guido van Rossum3941d972020-05-01 09:42:03 -070020577// _loop1_89: ('or' conjunction)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020578static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020579_loop1_89_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020580{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020581 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020584 return NULL;
20585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020586 void *_res = NULL;
20587 int _mark = p->mark;
20588 int _start_mark = p->mark;
20589 void **_children = PyMem_Malloc(sizeof(void *));
20590 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020591 p->error_indicator = 1;
20592 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020594 return NULL;
20595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020596 ssize_t _children_capacity = 1;
20597 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020598 { // ('or' conjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020601 return NULL;
20602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020603 D(fprintf(stderr, "%*c> _loop1_89[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070020604 void *_tmp_142_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020605 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070020606 (_tmp_142_var = _tmp_142_rule(p)) // 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020607 )
20608 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070020609 _res = _tmp_142_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020610 if (_n == _children_capacity) {
20611 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020612 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20613 if (!_new_children) {
20614 p->error_indicator = 1;
20615 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020616 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020617 return NULL;
20618 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020619 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020620 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020621 _children[_n++] = _res;
20622 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020623 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020624 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020625 D(fprintf(stderr, "%*c%s _loop1_89[%d-%d]: %s failed!\n", p->level, ' ',
20626 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('or' conjunction)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020628 if (_n == 0 || p->error_indicator) {
20629 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020630 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020631 return NULL;
20632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020633 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20634 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020635 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020636 p->error_indicator = 1;
20637 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020638 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020639 return NULL;
20640 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020641 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20642 PyMem_Free(_children);
20643 _PyPegen_insert_memo(p, _start_mark, _loop1_89_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020644 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020645 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020646}
20647
Guido van Rossum3941d972020-05-01 09:42:03 -070020648// _loop1_90: ('and' inversion)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020649static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020650_loop1_90_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020651{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020652 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020653 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020654 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020655 return NULL;
20656 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020657 void *_res = NULL;
20658 int _mark = p->mark;
20659 int _start_mark = p->mark;
20660 void **_children = PyMem_Malloc(sizeof(void *));
20661 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020662 p->error_indicator = 1;
20663 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020664 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020665 return NULL;
20666 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020667 ssize_t _children_capacity = 1;
20668 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020669 { // ('and' inversion)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020670 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020671 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020672 return NULL;
20673 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020674 D(fprintf(stderr, "%*c> _loop1_90[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070020675 void *_tmp_143_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020676 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070020677 (_tmp_143_var = _tmp_143_rule(p)) // 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020678 )
20679 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070020680 _res = _tmp_143_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020681 if (_n == _children_capacity) {
20682 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020683 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20684 if (!_new_children) {
20685 p->error_indicator = 1;
20686 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020687 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020688 return NULL;
20689 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020690 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020691 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020692 _children[_n++] = _res;
20693 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020694 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020695 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020696 D(fprintf(stderr, "%*c%s _loop1_90[%d-%d]: %s failed!\n", p->level, ' ',
20697 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('and' inversion)"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020698 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020699 if (_n == 0 || p->error_indicator) {
20700 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020701 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020702 return NULL;
20703 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020704 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20705 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020706 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020707 p->error_indicator = 1;
20708 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020709 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020710 return NULL;
20711 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020712 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20713 PyMem_Free(_children);
20714 _PyPegen_insert_memo(p, _start_mark, _loop1_90_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020715 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020716 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020717}
20718
Guido van Rossum3941d972020-05-01 09:42:03 -070020719// _loop1_91: compare_op_bitwise_or_pair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020720static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020721_loop1_91_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020722{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020723 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020724 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020725 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020726 return NULL;
20727 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020728 void *_res = NULL;
20729 int _mark = p->mark;
20730 int _start_mark = p->mark;
20731 void **_children = PyMem_Malloc(sizeof(void *));
20732 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020733 p->error_indicator = 1;
20734 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020735 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020736 return NULL;
20737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020738 ssize_t _children_capacity = 1;
20739 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020740 { // compare_op_bitwise_or_pair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020743 return NULL;
20744 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020745 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 +010020746 CmpopExprPair* compare_op_bitwise_or_pair_var;
20747 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010020748 (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 +010020749 )
20750 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020751 _res = compare_op_bitwise_or_pair_var;
20752 if (_n == _children_capacity) {
20753 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020754 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20755 if (!_new_children) {
20756 p->error_indicator = 1;
20757 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020758 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020759 return NULL;
20760 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020761 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020762 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020763 _children[_n++] = _res;
20764 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020765 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020766 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020767 D(fprintf(stderr, "%*c%s _loop1_91[%d-%d]: %s failed!\n", p->level, ' ',
20768 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "compare_op_bitwise_or_pair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020769 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020770 if (_n == 0 || p->error_indicator) {
20771 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020772 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020773 return NULL;
20774 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020775 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20776 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020777 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020778 p->error_indicator = 1;
20779 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020780 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020781 return NULL;
20782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020783 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20784 PyMem_Free(_children);
20785 _PyPegen_insert_memo(p, _start_mark, _loop1_91_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020786 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020787 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020788}
20789
Guido van Rossum3941d972020-05-01 09:42:03 -070020790// _tmp_92: '!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010020791static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070020792_tmp_92_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010020793{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020794 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010020795 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020796 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010020797 return NULL;
20798 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020799 void * _res = NULL;
20800 int _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020801 { // '!='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020802 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020803 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020804 return NULL;
20805 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020806 D(fprintf(stderr, "%*c> _tmp_92[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindob796b3f2020-05-01 12:32:26 +010020807 Token * tok;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020808 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020809 (tok = _PyPegen_expect_token(p, 28)) // token='!='
Pablo Galindo2b74c832020-04-27 18:02:07 +010020810 )
20811 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020812 D(fprintf(stderr, "%*c+ _tmp_92[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020813 _res = _PyPegen_check_barry_as_flufl ( p ) ? NULL : tok;
20814 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindo2b74c832020-04-27 18:02:07 +010020815 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020816 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010020817 return NULL;
20818 }
20819 goto done;
20820 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020821 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020822 D(fprintf(stderr, "%*c%s _tmp_92[%d-%d]: %s failed!\n", p->level, ' ',
20823 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!='"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010020824 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020825 _res = NULL;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020826 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020827 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020828 return _res;
Pablo Galindo2b74c832020-04-27 18:02:07 +010020829}
20830
Guido van Rossum3941d972020-05-01 09:42:03 -070020831// _loop0_94: ',' slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020832static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020833_loop0_94_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020834{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020835 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020836 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020837 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020838 return NULL;
20839 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020840 void *_res = NULL;
20841 int _mark = p->mark;
20842 int _start_mark = p->mark;
20843 void **_children = PyMem_Malloc(sizeof(void *));
20844 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020845 p->error_indicator = 1;
20846 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020847 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020848 return NULL;
20849 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020850 ssize_t _children_capacity = 1;
20851 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020852 { // ',' slice
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020853 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020854 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020855 return NULL;
20856 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020857 D(fprintf(stderr, "%*c> _loop0_94[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' slice"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020858 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020859 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020860 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020861 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020862 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010020863 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020864 )
20865 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020866 _res = elem;
20867 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020868 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020869 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020870 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020871 return NULL;
20872 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020873 if (_n == _children_capacity) {
20874 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020875 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
20876 if (!_new_children) {
20877 p->error_indicator = 1;
20878 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020879 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020880 return NULL;
20881 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020882 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020883 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020884 _children[_n++] = _res;
20885 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020886 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020887 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020888 D(fprintf(stderr, "%*c%s _loop0_94[%d-%d]: %s failed!\n", p->level, ' ',
20889 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' slice"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020890 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020891 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
20892 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020893 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030020894 p->error_indicator = 1;
20895 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020896 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020897 return NULL;
20898 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020899 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
20900 PyMem_Free(_children);
20901 _PyPegen_insert_memo(p, _start_mark, _loop0_94_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020902 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020903 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020904}
20905
Guido van Rossum3941d972020-05-01 09:42:03 -070020906// _gather_93: slice _loop0_94
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020907static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070020908_gather_93_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 asdl_seq * _res = NULL;
20916 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070020917 { // slice _loop0_94
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> _gather_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice _loop0_94"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020923 expr_ty elem;
20924 asdl_seq * seq;
20925 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010020926 (elem = slice_rule(p)) // slice
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020927 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010020928 (seq = _loop0_94_rule(p)) // _loop0_94
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020929 )
20930 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020931 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 +010020932 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020933 goto done;
20934 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020935 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020936 D(fprintf(stderr, "%*c%s _gather_93[%d-%d]: %s failed!\n", p->level, ' ',
20937 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice _loop0_94"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020938 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020939 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020940 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020941 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020942 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020943}
20944
Guido van Rossum3941d972020-05-01 09:42:03 -070020945// _tmp_95: ':' expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020946static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070020947_tmp_95_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020948{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020949 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020950 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020951 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020952 return NULL;
20953 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020954 void * _res = NULL;
20955 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020956 { // ':' expression?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020957 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020958 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030020959 return NULL;
20960 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020961 D(fprintf(stderr, "%*c> _tmp_95[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020962 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020963 void *d;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020964 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020965 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020966 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010020967 (d = expression_rule(p), 1) // expression?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020968 )
20969 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020970 D(fprintf(stderr, "%*c+ _tmp_95[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':' expression?"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020971 _res = d;
20972 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020973 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020974 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020975 return NULL;
20976 }
20977 goto done;
20978 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020979 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020980 D(fprintf(stderr, "%*c%s _tmp_95[%d-%d]: %s failed!\n", p->level, ' ',
20981 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':' expression?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020983 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020984 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020985 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020986 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020987}
20988
Guido van Rossum3941d972020-05-01 09:42:03 -070020989// _tmp_96: tuple | group | genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020990static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070020991_tmp_96_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020992{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020993 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020994 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070020995 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010020996 return NULL;
20997 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010020998 void * _res = NULL;
20999 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021000 { // tuple
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021001 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021002 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021003 return NULL;
21004 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021005 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021006 expr_ty tuple_var;
21007 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021008 (tuple_var = tuple_rule(p)) // tuple
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021009 )
21010 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021011 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021012 _res = tuple_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021013 goto done;
21014 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021015 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021016 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
21017 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021018 }
21019 { // group
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021020 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021021 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021022 return NULL;
21023 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021024 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021025 expr_ty group_var;
21026 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021027 (group_var = group_rule(p)) // group
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021028 )
21029 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021030 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "group"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021031 _res = group_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021032 goto done;
21033 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021034 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021035 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
21036 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "group"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021037 }
21038 { // genexp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021040 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021041 return NULL;
21042 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021043 D(fprintf(stderr, "%*c> _tmp_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021044 expr_ty genexp_var;
21045 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021046 (genexp_var = genexp_rule(p)) // genexp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021047 )
21048 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021049 D(fprintf(stderr, "%*c+ _tmp_96[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021050 _res = genexp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021051 goto done;
21052 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021053 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021054 D(fprintf(stderr, "%*c%s _tmp_96[%d-%d]: %s failed!\n", p->level, ' ',
21055 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021056 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021057 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021058 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021059 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021060 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021061}
21062
Guido van Rossum3941d972020-05-01 09:42:03 -070021063// _tmp_97: list | listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021064static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021065_tmp_97_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021066{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021067 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021068 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021069 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021070 return NULL;
21071 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021072 void * _res = NULL;
21073 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021074 { // list
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021075 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021076 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021077 return NULL;
21078 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021079 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021080 expr_ty list_var;
21081 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021082 (list_var = list_rule(p)) // list
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021083 )
21084 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021085 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021086 _res = list_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021087 goto done;
21088 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021089 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021090 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
21091 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021092 }
21093 { // listcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021094 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021095 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021096 return NULL;
21097 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021098 D(fprintf(stderr, "%*c> _tmp_97[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021099 expr_ty listcomp_var;
21100 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021101 (listcomp_var = listcomp_rule(p)) // listcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021102 )
21103 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021104 D(fprintf(stderr, "%*c+ _tmp_97[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "listcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021105 _res = listcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021106 goto done;
21107 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021108 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021109 D(fprintf(stderr, "%*c%s _tmp_97[%d-%d]: %s failed!\n", p->level, ' ',
21110 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "listcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021111 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021112 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021113 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021114 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021115 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021116}
21117
Guido van Rossum3941d972020-05-01 09:42:03 -070021118// _tmp_98: dict | set | dictcomp | setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021119static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021120_tmp_98_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021121{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021122 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021123 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021124 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021125 return NULL;
21126 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021127 void * _res = NULL;
21128 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021129 { // dict
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021130 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021131 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021132 return NULL;
21133 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021134 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021135 expr_ty dict_var;
21136 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021137 (dict_var = dict_rule(p)) // dict
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021138 )
21139 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021140 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dict"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021141 _res = dict_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021142 goto done;
21143 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021144 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021145 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21146 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dict"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021147 }
21148 { // set
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021149 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021150 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021151 return NULL;
21152 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021153 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021154 expr_ty set_var;
21155 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021156 (set_var = set_rule(p)) // set
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021157 )
21158 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021159 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "set"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021160 _res = set_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021161 goto done;
21162 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021163 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021164 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21165 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "set"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021166 }
21167 { // dictcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021168 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021169 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021170 return NULL;
21171 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021172 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021173 expr_ty dictcomp_var;
21174 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021175 (dictcomp_var = dictcomp_rule(p)) // dictcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021176 )
21177 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021178 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dictcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021179 _res = dictcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021180 goto done;
21181 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021182 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021183 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21184 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dictcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021185 }
21186 { // setcomp
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021187 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021188 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021189 return NULL;
21190 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021191 D(fprintf(stderr, "%*c> _tmp_98[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021192 expr_ty setcomp_var;
21193 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021194 (setcomp_var = setcomp_rule(p)) // setcomp
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021195 )
21196 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021197 D(fprintf(stderr, "%*c+ _tmp_98[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "setcomp"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021198 _res = setcomp_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021199 goto done;
21200 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021201 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021202 D(fprintf(stderr, "%*c%s _tmp_98[%d-%d]: %s failed!\n", p->level, ' ',
21203 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "setcomp"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021204 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021205 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021206 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021207 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021208 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021209}
21210
Guido van Rossum3941d972020-05-01 09:42:03 -070021211// _loop1_99: STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021212static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021213_loop1_99_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021214{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021215 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021216 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021217 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021218 return NULL;
21219 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021220 void *_res = NULL;
21221 int _mark = p->mark;
21222 int _start_mark = p->mark;
21223 void **_children = PyMem_Malloc(sizeof(void *));
21224 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021225 p->error_indicator = 1;
21226 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021227 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021228 return NULL;
21229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021230 ssize_t _children_capacity = 1;
21231 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021232 { // STRING
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021233 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021234 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021235 return NULL;
21236 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021237 D(fprintf(stderr, "%*c> _loop1_99[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021238 expr_ty string_var;
21239 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021240 (string_var = _PyPegen_string_token(p)) // STRING
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021241 )
21242 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021243 _res = string_var;
21244 if (_n == _children_capacity) {
21245 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021246 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21247 if (!_new_children) {
21248 p->error_indicator = 1;
21249 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021250 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021251 return NULL;
21252 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021253 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021254 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021255 _children[_n++] = _res;
21256 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021257 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021258 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021259 D(fprintf(stderr, "%*c%s _loop1_99[%d-%d]: %s failed!\n", p->level, ' ',
21260 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "STRING"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021262 if (_n == 0 || p->error_indicator) {
21263 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021264 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021265 return NULL;
21266 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021267 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21268 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021269 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021270 p->error_indicator = 1;
21271 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021272 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021273 return NULL;
21274 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021275 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21276 PyMem_Free(_children);
21277 _PyPegen_insert_memo(p, _start_mark, _loop1_99_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021278 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021279 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021280}
21281
Guido van Rossum3941d972020-05-01 09:42:03 -070021282// _tmp_100: star_named_expression ',' star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021283static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021284_tmp_100_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021285{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021286 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021287 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021288 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021289 return NULL;
21290 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021291 void * _res = NULL;
21292 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021293 { // star_named_expression ',' star_named_expressions?
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021294 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021295 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021296 return NULL;
21297 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021298 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 +010021299 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021300 expr_ty y;
21301 void *z;
21302 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021303 (y = star_named_expression_rule(p)) // star_named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021304 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021305 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021306 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021307 (z = star_named_expressions_rule(p), 1) // star_named_expressions?
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021308 )
21309 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021310 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 +010021311 _res = _PyPegen_seq_insert_in_front ( p , y , z );
21312 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021313 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021314 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021315 return NULL;
21316 }
21317 goto done;
21318 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021319 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021320 D(fprintf(stderr, "%*c%s _tmp_100[%d-%d]: %s failed!\n", p->level, ' ',
21321 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expression ',' star_named_expressions?"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021322 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021323 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021324 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021325 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021326 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021327}
21328
Guido van Rossum3941d972020-05-01 09:42:03 -070021329// _tmp_101: yield_expr | named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021330static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021331_tmp_101_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021332{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021333 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021334 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021335 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021336 return NULL;
21337 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021338 void * _res = NULL;
21339 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021340 { // yield_expr
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021341 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021342 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021343 return NULL;
21344 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021345 D(fprintf(stderr, "%*c> _tmp_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021346 expr_ty yield_expr_var;
21347 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021348 (yield_expr_var = yield_expr_rule(p)) // yield_expr
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021349 )
21350 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021351 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 +010021352 _res = yield_expr_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021353 goto done;
21354 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021355 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021356 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
21357 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021358 }
21359 { // named_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021360 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021361 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021362 return NULL;
21363 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021364 D(fprintf(stderr, "%*c> _tmp_101[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021365 expr_ty named_expression_var;
21366 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021367 (named_expression_var = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021368 )
21369 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021370 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 +010021371 _res = named_expression_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021372 goto done;
21373 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021374 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021375 D(fprintf(stderr, "%*c%s _tmp_101[%d-%d]: %s failed!\n", p->level, ' ',
21376 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "named_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021377 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021378 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021379 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021380 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021381 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021382}
21383
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021384// _loop0_103: ',' double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021385static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021386_loop0_103_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021387{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021388 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021389 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021390 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021391 return NULL;
21392 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021393 void *_res = NULL;
21394 int _mark = p->mark;
21395 int _start_mark = p->mark;
21396 void **_children = PyMem_Malloc(sizeof(void *));
21397 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021398 p->error_indicator = 1;
21399 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021400 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021401 return NULL;
21402 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021403 ssize_t _children_capacity = 1;
21404 ssize_t _n = 0;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021405 { // ',' double_starred_kvpair
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021406 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021407 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021408 return NULL;
21409 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021410 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 +010021411 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021412 KeyValuePair* elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021413 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021414 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021415 &&
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021416 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021417 )
21418 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021419 _res = elem;
21420 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021421 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021422 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021423 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021424 return NULL;
21425 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021426 if (_n == _children_capacity) {
21427 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021428 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21429 if (!_new_children) {
21430 p->error_indicator = 1;
21431 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021432 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021433 return NULL;
21434 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021435 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021436 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021437 _children[_n++] = _res;
21438 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021439 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021440 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021441 D(fprintf(stderr, "%*c%s _loop0_103[%d-%d]: %s failed!\n", p->level, ' ',
21442 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' double_starred_kvpair"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021443 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021444 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21445 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021446 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021447 p->error_indicator = 1;
21448 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021449 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021450 return NULL;
21451 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021452 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21453 PyMem_Free(_children);
21454 _PyPegen_insert_memo(p, _start_mark, _loop0_103_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021455 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021456 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021457}
21458
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021459// _gather_102: double_starred_kvpair _loop0_103
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021460static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021461_gather_102_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 asdl_seq * _res = NULL;
21469 int _mark = p->mark;
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021470 { // double_starred_kvpair _loop0_103
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021471 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021472 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021473 return NULL;
21474 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021475 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 +010021476 KeyValuePair* elem;
21477 asdl_seq * seq;
21478 if (
Miss Islington (bot)d00aaf32020-05-21 15:58:16 -070021479 (elem = double_starred_kvpair_rule(p)) // double_starred_kvpair
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021480 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021481 (seq = _loop0_103_rule(p)) // _loop0_103
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021482 )
21483 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021484 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 +010021485 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021486 goto done;
21487 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021488 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021489 D(fprintf(stderr, "%*c%s _gather_102[%d-%d]: %s failed!\n", p->level, ' ',
21490 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "double_starred_kvpair _loop0_103"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021491 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021492 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021493 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021494 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021495 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021496}
21497
Guido van Rossum3941d972020-05-01 09:42:03 -070021498// _loop1_104: for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021499static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021500_loop1_104_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021501{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021502 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021503 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021504 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021505 return NULL;
21506 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021507 void *_res = NULL;
21508 int _mark = p->mark;
21509 int _start_mark = p->mark;
21510 void **_children = PyMem_Malloc(sizeof(void *));
21511 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021512 p->error_indicator = 1;
21513 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021514 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021515 return NULL;
21516 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021517 ssize_t _children_capacity = 1;
21518 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021519 { // for_if_clause
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021520 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021521 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021522 return NULL;
21523 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021524 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 +030021525 comprehension_ty for_if_clause_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021526 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010021527 (for_if_clause_var = for_if_clause_rule(p)) // for_if_clause
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021528 )
21529 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021530 _res = for_if_clause_var;
21531 if (_n == _children_capacity) {
21532 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021533 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21534 if (!_new_children) {
21535 p->error_indicator = 1;
21536 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021537 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021538 return NULL;
21539 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021540 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021541 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021542 _children[_n++] = _res;
21543 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021544 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021545 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021546 D(fprintf(stderr, "%*c%s _loop1_104[%d-%d]: %s failed!\n", p->level, ' ',
21547 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "for_if_clause"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021548 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021549 if (_n == 0 || p->error_indicator) {
21550 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021551 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021552 return NULL;
21553 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021554 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21555 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021556 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021557 p->error_indicator = 1;
21558 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021560 return NULL;
21561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021562 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21563 PyMem_Free(_children);
21564 _PyPegen_insert_memo(p, _start_mark, _loop1_104_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021565 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021566 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010021567}
21568
Guido van Rossum3941d972020-05-01 09:42:03 -070021569// _loop0_105: ('if' disjunction)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021570static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021571_loop0_105_rule(Parser *p)
Pablo Galindo2b74c832020-04-27 18:02:07 +010021572{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021573 D(p->level++);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021574 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021575 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021576 return NULL;
21577 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021578 void *_res = NULL;
21579 int _mark = p->mark;
21580 int _start_mark = p->mark;
21581 void **_children = PyMem_Malloc(sizeof(void *));
21582 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021583 p->error_indicator = 1;
21584 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021585 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021586 return NULL;
21587 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021588 ssize_t _children_capacity = 1;
21589 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021590 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021591 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021592 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021593 return NULL;
21594 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021595 D(fprintf(stderr, "%*c> _loop0_105[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070021596 void *_tmp_144_var;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021597 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070021598 (_tmp_144_var = _tmp_144_rule(p)) // 'if' disjunction
Pablo Galindo2b74c832020-04-27 18:02:07 +010021599 )
21600 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070021601 _res = _tmp_144_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021602 if (_n == _children_capacity) {
21603 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021604 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21605 if (!_new_children) {
21606 p->error_indicator = 1;
21607 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021608 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021609 return NULL;
21610 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021611 _children = _new_children;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021612 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021613 _children[_n++] = _res;
21614 _mark = p->mark;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021615 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021616 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021617 D(fprintf(stderr, "%*c%s _loop0_105[%d-%d]: %s failed!\n", p->level, ' ',
21618 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Pablo Galindo2b74c832020-04-27 18:02:07 +010021619 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021620 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21621 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021622 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021623 p->error_indicator = 1;
21624 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021625 D(p->level--);
Pablo Galindo2b74c832020-04-27 18:02:07 +010021626 return NULL;
21627 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021628 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21629 PyMem_Free(_children);
21630 _PyPegen_insert_memo(p, _start_mark, _loop0_105_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021631 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021632 return _seq;
Pablo Galindo2b74c832020-04-27 18:02:07 +010021633}
21634
Guido van Rossum3941d972020-05-01 09:42:03 -070021635// _loop0_106: ('if' disjunction)
Guido van Rossumc001c092020-04-30 12:12:19 -070021636static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070021637_loop0_106_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070021638{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021639 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070021640 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021641 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070021642 return NULL;
21643 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021644 void *_res = NULL;
21645 int _mark = p->mark;
21646 int _start_mark = p->mark;
21647 void **_children = PyMem_Malloc(sizeof(void *));
21648 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021649 p->error_indicator = 1;
21650 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021651 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021652 return NULL;
21653 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021654 ssize_t _children_capacity = 1;
21655 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021656 { // ('if' disjunction)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021657 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021658 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021659 return NULL;
21660 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021661 D(fprintf(stderr, "%*c> _loop0_106[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070021662 void *_tmp_145_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021663 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070021664 (_tmp_145_var = _tmp_145_rule(p)) // 'if' disjunction
Guido van Rossumc001c092020-04-30 12:12:19 -070021665 )
21666 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070021667 _res = _tmp_145_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021668 if (_n == _children_capacity) {
21669 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021670 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21671 if (!_new_children) {
21672 p->error_indicator = 1;
21673 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021674 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021675 return NULL;
21676 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021677 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021679 _children[_n++] = _res;
21680 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021681 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021682 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021683 D(fprintf(stderr, "%*c%s _loop0_106[%d-%d]: %s failed!\n", p->level, ' ',
21684 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "('if' disjunction)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021685 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021686 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21687 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021688 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021689 p->error_indicator = 1;
21690 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021691 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021692 return NULL;
21693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021694 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21695 PyMem_Free(_children);
21696 _PyPegen_insert_memo(p, _start_mark, _loop0_106_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021697 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021698 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021699}
21700
Guido van Rossum3941d972020-05-01 09:42:03 -070021701// _tmp_107: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021702static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021703_tmp_107_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021704{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021705 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021706 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021707 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021708 return NULL;
21709 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021710 void * _res = NULL;
21711 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021712 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021713 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021714 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021715 return NULL;
21716 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021717 D(fprintf(stderr, "%*c> _tmp_107[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021718 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021719 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021720 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021721 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021722 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021723 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021724 )
21725 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021726 D(fprintf(stderr, "%*c+ _tmp_107[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021727 _res = c;
21728 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021729 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021730 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021731 return NULL;
21732 }
Guido van Rossumc001c092020-04-30 12:12:19 -070021733 goto done;
21734 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021735 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021736 D(fprintf(stderr, "%*c%s _tmp_107[%d-%d]: %s failed!\n", p->level, ' ',
21737 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Guido van Rossumc001c092020-04-30 12:12:19 -070021738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021739 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070021740 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021741 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021742 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070021743}
21744
Guido van Rossum3941d972020-05-01 09:42:03 -070021745// _tmp_108: ',' args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021746static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070021747_tmp_108_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021748{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021749 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021750 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021751 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021752 return NULL;
21753 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021754 void * _res = NULL;
21755 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021756 { // ',' args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021757 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021758 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021759 return NULL;
21760 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021761 D(fprintf(stderr, "%*c> _tmp_108[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021762 Token * _literal;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021763 expr_ty c;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021764 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021765 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021766 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021767 (c = args_rule(p)) // args
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021768 )
21769 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021770 D(fprintf(stderr, "%*c+ _tmp_108[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021771 _res = c;
21772 if (_res == NULL && PyErr_Occurred()) {
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021773 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021774 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021775 return NULL;
21776 }
21777 goto done;
21778 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021779 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021780 D(fprintf(stderr, "%*c%s _tmp_108[%d-%d]: %s failed!\n", p->level, ' ',
21781 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' args"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021782 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021783 _res = NULL;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021784 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021785 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021786 return _res;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030021787}
21788
Guido van Rossum3941d972020-05-01 09:42:03 -070021789// _loop0_110: ',' kwarg_or_starred
21790static asdl_seq *
21791_loop0_110_rule(Parser *p)
21792{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021793 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021794 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021795 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021796 return NULL;
21797 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021798 void *_res = NULL;
21799 int _mark = p->mark;
21800 int _start_mark = p->mark;
21801 void **_children = PyMem_Malloc(sizeof(void *));
21802 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021803 p->error_indicator = 1;
21804 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021805 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021806 return NULL;
21807 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021808 ssize_t _children_capacity = 1;
21809 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070021810 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021811 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021812 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021813 return NULL;
21814 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021815 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 +010021816 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070021817 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070021818 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021819 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070021820 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021821 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021822 )
21823 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021824 _res = elem;
21825 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070021826 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021827 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021828 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021829 return NULL;
21830 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021831 if (_n == _children_capacity) {
21832 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021833 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21834 if (!_new_children) {
21835 p->error_indicator = 1;
21836 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021837 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021838 return NULL;
21839 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021840 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070021841 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021842 _children[_n++] = _res;
21843 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021844 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021845 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021846 D(fprintf(stderr, "%*c%s _loop0_110[%d-%d]: %s failed!\n", p->level, ' ',
21847 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021848 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021849 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21850 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021851 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021852 p->error_indicator = 1;
21853 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021854 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021855 return NULL;
21856 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021857 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21858 PyMem_Free(_children);
21859 _PyPegen_insert_memo(p, _start_mark, _loop0_110_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021860 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021861 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070021862}
21863
21864// _gather_109: kwarg_or_starred _loop0_110
21865static asdl_seq *
21866_gather_109_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 asdl_seq * _res = NULL;
21874 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021875 { // kwarg_or_starred _loop0_110
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021876 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021877 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021878 return NULL;
21879 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021880 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 -070021881 KeywordOrStarred* elem;
21882 asdl_seq * seq;
21883 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021884 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021885 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021886 (seq = _loop0_110_rule(p)) // _loop0_110
Guido van Rossum3941d972020-05-01 09:42:03 -070021887 )
21888 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021889 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 +010021890 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070021891 goto done;
21892 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021893 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021894 D(fprintf(stderr, "%*c%s _gather_109[%d-%d]: %s failed!\n", p->level, ' ',
21895 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_110"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021896 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021897 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070021898 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021899 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021900 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070021901}
21902
21903// _loop0_112: ',' kwarg_or_double_starred
21904static asdl_seq *
21905_loop0_112_rule(Parser *p)
21906{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021907 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021908 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021909 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021910 return NULL;
21911 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021912 void *_res = NULL;
21913 int _mark = p->mark;
21914 int _start_mark = p->mark;
21915 void **_children = PyMem_Malloc(sizeof(void *));
21916 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021917 p->error_indicator = 1;
21918 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021919 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021920 return NULL;
21921 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021922 ssize_t _children_capacity = 1;
21923 ssize_t _n = 0;
Guido van Rossum3941d972020-05-01 09:42:03 -070021924 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021925 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021926 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021927 return NULL;
21928 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021929 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 +010021930 Token * _literal;
Guido van Rossum3941d972020-05-01 09:42:03 -070021931 KeywordOrStarred* elem;
Guido van Rossum3941d972020-05-01 09:42:03 -070021932 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021933 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossum3941d972020-05-01 09:42:03 -070021934 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010021935 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021936 )
21937 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021938 _res = elem;
21939 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossum3941d972020-05-01 09:42:03 -070021940 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021941 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021942 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021943 return NULL;
21944 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021945 if (_n == _children_capacity) {
21946 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021947 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
21948 if (!_new_children) {
21949 p->error_indicator = 1;
21950 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021951 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021952 return NULL;
21953 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021954 _children = _new_children;
Guido van Rossum3941d972020-05-01 09:42:03 -070021955 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021956 _children[_n++] = _res;
21957 _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021958 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021959 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021960 D(fprintf(stderr, "%*c%s _loop0_112[%d-%d]: %s failed!\n", p->level, ' ',
21961 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossum3941d972020-05-01 09:42:03 -070021962 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021963 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
21964 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021965 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030021966 p->error_indicator = 1;
21967 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021968 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021969 return NULL;
21970 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021971 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
21972 PyMem_Free(_children);
21973 _PyPegen_insert_memo(p, _start_mark, _loop0_112_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021974 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021975 return _seq;
Guido van Rossum3941d972020-05-01 09:42:03 -070021976}
21977
21978// _gather_111: kwarg_or_double_starred _loop0_112
21979static asdl_seq *
21980_gather_111_rule(Parser *p)
21981{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021982 D(p->level++);
Guido van Rossum3941d972020-05-01 09:42:03 -070021983 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021984 D(p->level--);
Guido van Rossum3941d972020-05-01 09:42:03 -070021985 return NULL;
21986 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010021987 asdl_seq * _res = NULL;
21988 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070021989 { // kwarg_or_double_starred _loop0_112
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021990 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021991 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030021992 return NULL;
21993 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070021994 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 -070021995 KeywordOrStarred* elem;
21996 asdl_seq * seq;
21997 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010021998 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossum3941d972020-05-01 09:42:03 -070021999 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022000 (seq = _loop0_112_rule(p)) // _loop0_112
Guido van Rossum3941d972020-05-01 09:42:03 -070022001 )
22002 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022003 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 +010022004 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossum3941d972020-05-01 09:42:03 -070022005 goto done;
22006 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022007 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022008 D(fprintf(stderr, "%*c%s _gather_111[%d-%d]: %s failed!\n", p->level, ' ',
22009 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_112"));
Guido van Rossum3941d972020-05-01 09:42:03 -070022010 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022011 _res = NULL;
Guido van Rossum3941d972020-05-01 09:42:03 -070022012 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022013 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022014 return _res;
Guido van Rossum3941d972020-05-01 09:42:03 -070022015}
22016
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022017// _loop0_114: ',' kwarg_or_starred
Pablo Galindo2b74c832020-04-27 18:02:07 +010022018static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022019_loop0_114_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022020{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022021 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022022 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022023 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022024 return NULL;
22025 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022026 void *_res = NULL;
22027 int _mark = p->mark;
22028 int _start_mark = p->mark;
22029 void **_children = PyMem_Malloc(sizeof(void *));
22030 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022031 p->error_indicator = 1;
22032 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022033 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022034 return NULL;
22035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022036 ssize_t _children_capacity = 1;
22037 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022038 { // ',' kwarg_or_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022039 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022040 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022041 return NULL;
22042 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022043 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 +010022044 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022045 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022046 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022047 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022048 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022049 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022050 )
22051 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022052 _res = elem;
22053 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022054 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022055 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022056 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022057 return NULL;
22058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022059 if (_n == _children_capacity) {
22060 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022061 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22062 if (!_new_children) {
22063 p->error_indicator = 1;
22064 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022065 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022066 return NULL;
22067 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022068 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022069 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022070 _children[_n++] = _res;
22071 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022072 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022073 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022074 D(fprintf(stderr, "%*c%s _loop0_114[%d-%d]: %s failed!\n", p->level, ' ',
22075 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022076 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022077 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22078 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022079 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022080 p->error_indicator = 1;
22081 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022082 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022083 return NULL;
22084 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022085 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22086 PyMem_Free(_children);
22087 _PyPegen_insert_memo(p, _start_mark, _loop0_114_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022088 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022089 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022090}
22091
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022092// _gather_113: kwarg_or_starred _loop0_114
Guido van Rossumc001c092020-04-30 12:12:19 -070022093static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022094_gather_113_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 asdl_seq * _res = NULL;
22102 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022103 { // kwarg_or_starred _loop0_114
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022104 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022105 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022106 return NULL;
22107 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022108 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 -070022109 KeywordOrStarred* elem;
22110 asdl_seq * seq;
22111 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022112 (elem = kwarg_or_starred_rule(p)) // kwarg_or_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022113 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022114 (seq = _loop0_114_rule(p)) // _loop0_114
Guido van Rossumc001c092020-04-30 12:12:19 -070022115 )
22116 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022117 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 +010022118 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022119 goto done;
22120 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022121 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022122 D(fprintf(stderr, "%*c%s _gather_113[%d-%d]: %s failed!\n", p->level, ' ',
22123 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_starred _loop0_114"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022124 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022125 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022126 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022127 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022128 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022129}
22130
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022131// _loop0_116: ',' kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022132static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022133_loop0_116_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022134{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022135 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022136 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022137 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022138 return NULL;
22139 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022140 void *_res = NULL;
22141 int _mark = p->mark;
22142 int _start_mark = p->mark;
22143 void **_children = PyMem_Malloc(sizeof(void *));
22144 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022145 p->error_indicator = 1;
22146 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022147 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022148 return NULL;
22149 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022150 ssize_t _children_capacity = 1;
22151 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070022152 { // ',' kwarg_or_double_starred
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022153 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022154 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022155 return NULL;
22156 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022157 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 +010022158 Token * _literal;
Guido van Rossumc001c092020-04-30 12:12:19 -070022159 KeywordOrStarred* elem;
Guido van Rossumc001c092020-04-30 12:12:19 -070022160 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022161 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Guido van Rossumc001c092020-04-30 12:12:19 -070022162 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022163 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022164 )
22165 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022166 _res = elem;
22167 if (_res == NULL && PyErr_Occurred()) {
Guido van Rossumc001c092020-04-30 12:12:19 -070022168 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022169 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022170 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022171 return NULL;
22172 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022173 if (_n == _children_capacity) {
22174 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022175 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22176 if (!_new_children) {
22177 p->error_indicator = 1;
22178 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022179 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022180 return NULL;
22181 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022182 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070022183 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022184 _children[_n++] = _res;
22185 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070022186 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022187 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022188 D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ',
22189 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' kwarg_or_double_starred"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022190 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022191 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22192 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022193 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022194 p->error_indicator = 1;
22195 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022196 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022197 return NULL;
22198 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022199 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22200 PyMem_Free(_children);
22201 _PyPegen_insert_memo(p, _start_mark, _loop0_116_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022202 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022203 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070022204}
22205
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022206// _gather_115: kwarg_or_double_starred _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022207static asdl_seq *
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022208_gather_115_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022209{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022210 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022211 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022212 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022213 return NULL;
22214 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022215 asdl_seq * _res = NULL;
22216 int _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022217 { // kwarg_or_double_starred _loop0_116
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022218 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022219 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022220 return NULL;
22221 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022222 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 -070022223 KeywordOrStarred* elem;
22224 asdl_seq * seq;
22225 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022226 (elem = kwarg_or_double_starred_rule(p)) // kwarg_or_double_starred
Guido van Rossumc001c092020-04-30 12:12:19 -070022227 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022228 (seq = _loop0_116_rule(p)) // _loop0_116
Guido van Rossumc001c092020-04-30 12:12:19 -070022229 )
22230 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022231 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 +010022232 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Guido van Rossumc001c092020-04-30 12:12:19 -070022233 goto done;
22234 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022235 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022236 D(fprintf(stderr, "%*c%s _gather_115[%d-%d]: %s failed!\n", p->level, ' ',
22237 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "kwarg_or_double_starred _loop0_116"));
Guido van Rossumc001c092020-04-30 12:12:19 -070022238 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022239 _res = NULL;
Guido van Rossumc001c092020-04-30 12:12:19 -070022240 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022241 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022242 return _res;
Guido van Rossumc001c092020-04-30 12:12:19 -070022243}
22244
Guido van Rossum3941d972020-05-01 09:42:03 -070022245// _loop0_117: (',' star_target)
Guido van Rossumc001c092020-04-30 12:12:19 -070022246static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022247_loop0_117_rule(Parser *p)
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022248{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022249 D(p->level++);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022250 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022251 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022252 return NULL;
22253 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022254 void *_res = NULL;
22255 int _mark = p->mark;
22256 int _start_mark = p->mark;
22257 void **_children = PyMem_Malloc(sizeof(void *));
22258 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022259 p->error_indicator = 1;
22260 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022261 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022262 return NULL;
22263 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022264 ssize_t _children_capacity = 1;
22265 ssize_t _n = 0;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022266 { // (',' star_target)
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022267 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022268 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022269 return NULL;
22270 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022271 D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)"));
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022272 void *_tmp_146_var;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022273 while (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022274 (_tmp_146_var = _tmp_146_rule(p)) // ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022275 )
22276 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022277 _res = _tmp_146_var;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022278 if (_n == _children_capacity) {
22279 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022280 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22281 if (!_new_children) {
22282 p->error_indicator = 1;
22283 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022284 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022285 return NULL;
22286 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022287 _children = _new_children;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022288 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022289 _children[_n++] = _res;
22290 _mark = p->mark;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022291 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022292 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022293 D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ',
22294 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' star_target)"));
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022295 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022296 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22297 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022298 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022299 p->error_indicator = 1;
22300 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022301 D(p->level--);
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022302 return NULL;
22303 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022304 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22305 PyMem_Free(_children);
22306 _PyPegen_insert_memo(p, _start_mark, _loop0_117_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022307 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022308 return _seq;
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022309}
22310
Guido van Rossum3941d972020-05-01 09:42:03 -070022311// _loop0_119: ',' star_target
Lysandros Nikolaou3e0a6f32020-05-01 06:27:52 +030022312static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022313_loop0_119_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070022314{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022315 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070022316 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022317 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022318 return NULL;
22319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022320 void *_res = NULL;
22321 int _mark = p->mark;
22322 int _start_mark = p->mark;
22323 void **_children = PyMem_Malloc(sizeof(void *));
22324 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022325 p->error_indicator = 1;
22326 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022327 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070022328 return NULL;
22329 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022330 ssize_t _children_capacity = 1;
22331 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022332 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022333 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022334 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022335 return NULL;
22336 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022337 D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022338 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022339 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022340 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022341 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022342 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022343 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022344 )
22345 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022346 _res = elem;
22347 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022348 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022349 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022350 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022351 return NULL;
22352 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022353 if (_n == _children_capacity) {
22354 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022355 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22356 if (!_new_children) {
22357 p->error_indicator = 1;
22358 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022359 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022360 return NULL;
22361 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022362 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022363 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022364 _children[_n++] = _res;
22365 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022366 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022367 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022368 D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ',
22369 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022370 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022371 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22372 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022373 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022374 p->error_indicator = 1;
22375 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022376 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022377 return NULL;
22378 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022379 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22380 PyMem_Free(_children);
22381 _PyPegen_insert_memo(p, _start_mark, _loop0_119_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022382 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022383 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022384}
22385
Guido van Rossum3941d972020-05-01 09:42:03 -070022386// _gather_118: star_target _loop0_119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022387static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022388_gather_118_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 asdl_seq * _res = NULL;
22396 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022397 { // star_target _loop0_119
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> _gather_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022403 expr_ty elem;
22404 asdl_seq * seq;
22405 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022406 (elem = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022407 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022408 (seq = _loop0_119_rule(p)) // _loop0_119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022409 )
22410 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022411 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 +010022412 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022413 goto done;
22414 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022415 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022416 D(fprintf(stderr, "%*c%s _gather_118[%d-%d]: %s failed!\n", p->level, ' ',
22417 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_target _loop0_119"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022418 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022419 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022420 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022421 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022422 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022423}
22424
Guido van Rossum3941d972020-05-01 09:42:03 -070022425// _tmp_120: !'*' star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022426static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022427_tmp_120_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022428{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022429 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022430 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022431 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022432 return NULL;
22433 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022434 void * _res = NULL;
22435 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022436 { // !'*' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022437 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022438 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022439 return NULL;
22440 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022441 D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022442 expr_ty star_target_var;
22443 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022444 _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 16) // token='*'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022445 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022446 (star_target_var = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022447 )
22448 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022449 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 +010022450 _res = star_target_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022451 goto done;
22452 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022453 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022454 D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ',
22455 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!'*' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022456 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022457 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022458 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022459 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022460 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022461}
22462
Guido van Rossum3941d972020-05-01 09:42:03 -070022463// _loop0_122: ',' del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022464static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022465_loop0_122_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022466{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022467 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022468 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022469 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022470 return NULL;
22471 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022472 void *_res = NULL;
22473 int _mark = p->mark;
22474 int _start_mark = p->mark;
22475 void **_children = PyMem_Malloc(sizeof(void *));
22476 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022477 p->error_indicator = 1;
22478 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022479 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022480 return NULL;
22481 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022482 ssize_t _children_capacity = 1;
22483 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022484 { // ',' del_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022485 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022486 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022487 return NULL;
22488 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022489 D(fprintf(stderr, "%*c> _loop0_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' del_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022490 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022491 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022492 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022493 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022494 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022495 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022496 )
22497 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022498 _res = elem;
22499 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022500 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022501 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022502 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022503 return NULL;
22504 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022505 if (_n == _children_capacity) {
22506 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022507 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22508 if (!_new_children) {
22509 p->error_indicator = 1;
22510 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022511 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022512 return NULL;
22513 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022514 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022515 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022516 _children[_n++] = _res;
22517 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022518 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022519 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022520 D(fprintf(stderr, "%*c%s _loop0_122[%d-%d]: %s failed!\n", p->level, ' ',
22521 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' del_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022522 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022523 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22524 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022525 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022526 p->error_indicator = 1;
22527 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022528 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022529 return NULL;
22530 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022531 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22532 PyMem_Free(_children);
22533 _PyPegen_insert_memo(p, _start_mark, _loop0_122_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022534 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022535 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022536}
22537
Guido van Rossum3941d972020-05-01 09:42:03 -070022538// _gather_121: del_target _loop0_122
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022539static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022540_gather_121_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 asdl_seq * _res = NULL;
22548 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022549 { // del_target _loop0_122
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022550 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022551 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022552 return NULL;
22553 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022554 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 +010022555 expr_ty elem;
22556 asdl_seq * seq;
22557 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022558 (elem = del_target_rule(p)) // del_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022559 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022560 (seq = _loop0_122_rule(p)) // _loop0_122
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022561 )
22562 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022563 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 +010022564 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022565 goto done;
22566 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022567 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022568 D(fprintf(stderr, "%*c%s _gather_121[%d-%d]: %s failed!\n", p->level, ' ',
22569 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_target _loop0_122"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022570 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022571 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022572 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022573 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022574 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022575}
22576
Guido van Rossum3941d972020-05-01 09:42:03 -070022577// _loop0_124: ',' target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022578static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022579_loop0_124_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022580{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022581 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022582 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022583 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022584 return NULL;
22585 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022586 void *_res = NULL;
22587 int _mark = p->mark;
22588 int _start_mark = p->mark;
22589 void **_children = PyMem_Malloc(sizeof(void *));
22590 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022591 p->error_indicator = 1;
22592 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022593 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022594 return NULL;
22595 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022596 ssize_t _children_capacity = 1;
22597 ssize_t _n = 0;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022598 { // ',' target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022599 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022600 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022601 return NULL;
22602 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022603 D(fprintf(stderr, "%*c> _loop0_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022604 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022605 expr_ty elem;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022606 while (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022607 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022608 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022609 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022610 )
22611 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022612 _res = elem;
22613 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022614 p->error_indicator = 1;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022615 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022616 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022617 return NULL;
22618 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022619 if (_n == _children_capacity) {
22620 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022621 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22622 if (!_new_children) {
22623 p->error_indicator = 1;
22624 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022625 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022626 return NULL;
22627 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022628 _children = _new_children;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022629 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022630 _children[_n++] = _res;
22631 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022632 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022633 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022634 D(fprintf(stderr, "%*c%s _loop0_124[%d-%d]: %s failed!\n", p->level, ' ',
22635 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022636 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022637 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22638 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022639 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022640 p->error_indicator = 1;
22641 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022642 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022643 return NULL;
22644 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022645 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22646 PyMem_Free(_children);
22647 _PyPegen_insert_memo(p, _start_mark, _loop0_124_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022648 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022649 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022650}
22651
Guido van Rossum3941d972020-05-01 09:42:03 -070022652// _gather_123: target _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022653static asdl_seq *
Guido van Rossum3941d972020-05-01 09:42:03 -070022654_gather_123_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 asdl_seq * _res = NULL;
22662 int _mark = p->mark;
Guido van Rossum3941d972020-05-01 09:42:03 -070022663 { // target _loop0_124
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> _gather_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022669 expr_ty elem;
22670 asdl_seq * seq;
22671 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022672 (elem = target_rule(p)) // target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022673 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022674 (seq = _loop0_124_rule(p)) // _loop0_124
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022675 )
22676 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022677 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 +010022678 _res = _PyPegen_seq_insert_in_front(p, elem, seq);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022679 goto done;
22680 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022681 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022682 D(fprintf(stderr, "%*c%s _gather_123[%d-%d]: %s failed!\n", p->level, ' ',
22683 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "target _loop0_124"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022684 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022685 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022686 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022687 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022688 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022689}
22690
Guido van Rossum3941d972020-05-01 09:42:03 -070022691// _tmp_125: args | expression for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022692static void *
Guido van Rossum3941d972020-05-01 09:42:03 -070022693_tmp_125_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022694{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022695 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022696 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022697 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022698 return NULL;
22699 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022700 void * _res = NULL;
22701 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022702 { // args
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022703 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022704 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022705 return NULL;
22706 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022707 D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022708 expr_ty args_var;
22709 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022710 (args_var = args_rule(p)) // args
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022711 )
22712 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022713 D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "args"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022714 _res = args_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022715 goto done;
22716 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022717 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022718 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
22719 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "args"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022720 }
22721 { // expression for_if_clauses
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022722 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022723 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022724 return NULL;
22725 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022726 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 +010022727 expr_ty expression_var;
22728 asdl_seq* for_if_clauses_var;
22729 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010022730 (expression_var = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022731 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022732 (for_if_clauses_var = for_if_clauses_rule(p)) // for_if_clauses
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022733 )
22734 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022735 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 +010022736 _res = _PyPegen_dummy_name(p, expression_var, for_if_clauses_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022737 goto done;
22738 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022739 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022740 D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ',
22741 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression for_if_clauses"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022742 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022743 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022744 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022745 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022746 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022747}
22748
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022749// _loop0_126: star_named_expressions
22750static asdl_seq *
22751_loop0_126_rule(Parser *p)
22752{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022753 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022754 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022755 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022756 return NULL;
22757 }
22758 void *_res = NULL;
22759 int _mark = p->mark;
22760 int _start_mark = p->mark;
22761 void **_children = PyMem_Malloc(sizeof(void *));
22762 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022763 p->error_indicator = 1;
22764 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022765 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022766 return NULL;
22767 }
22768 ssize_t _children_capacity = 1;
22769 ssize_t _n = 0;
22770 { // star_named_expressions
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022771 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022772 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022773 return NULL;
22774 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022775 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 +030022776 asdl_seq* star_named_expressions_var;
22777 while (
22778 (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions
22779 )
22780 {
22781 _res = star_named_expressions_var;
22782 if (_n == _children_capacity) {
22783 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022784 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22785 if (!_new_children) {
22786 p->error_indicator = 1;
22787 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022788 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022789 return NULL;
22790 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022791 _children = _new_children;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022792 }
22793 _children[_n++] = _res;
22794 _mark = p->mark;
22795 }
22796 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022797 D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ',
22798 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022799 }
22800 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22801 if (!_seq) {
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022802 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030022803 p->error_indicator = 1;
22804 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022805 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022806 return NULL;
22807 }
22808 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22809 PyMem_Free(_children);
22810 _PyPegen_insert_memo(p, _start_mark, _loop0_126_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022811 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022812 return _seq;
22813}
22814
22815// _tmp_127: '=' annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022816static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022817_tmp_127_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 Galindoc5fc1562020-04-22 23:29:27 +010022826 { // '=' annotated_rhs
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_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022832 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022833 expr_ty annotated_rhs_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022834 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022835 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022836 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010022837 (annotated_rhs_var = annotated_rhs_rule(p)) // annotated_rhs
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022838 )
22839 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022840 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 +010022841 _res = _PyPegen_dummy_name(p, _literal, annotated_rhs_var);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022842 goto done;
22843 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022844 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022845 D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ',
22846 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'=' annotated_rhs"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022847 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022848 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022849 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022850 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022851 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022852}
22853
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022854// _loop0_128: (star_targets '=')
22855static asdl_seq *
22856_loop0_128_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022857{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022858 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022859 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022860 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022861 return NULL;
22862 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022863 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022864 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022865 int _start_mark = p->mark;
22866 void **_children = PyMem_Malloc(sizeof(void *));
22867 if (!_children) {
22868 p->error_indicator = 1;
22869 PyErr_NoMemory();
22870 D(p->level--);
22871 return NULL;
22872 }
22873 ssize_t _children_capacity = 1;
22874 ssize_t _n = 0;
22875 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022876 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022877 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022878 return NULL;
22879 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022880 D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
22881 void *_tmp_147_var;
22882 while (
22883 (_tmp_147_var = _tmp_147_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022884 )
22885 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022886 _res = _tmp_147_var;
22887 if (_n == _children_capacity) {
22888 _children_capacity *= 2;
22889 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22890 if (!_new_children) {
22891 p->error_indicator = 1;
22892 PyErr_NoMemory();
22893 D(p->level--);
22894 return NULL;
22895 }
22896 _children = _new_children;
22897 }
22898 _children[_n++] = _res;
22899 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022900 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022901 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022902 D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ',
22903 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022904 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022905 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22906 if (!_seq) {
22907 PyMem_Free(_children);
22908 p->error_indicator = 1;
22909 PyErr_NoMemory();
22910 D(p->level--);
22911 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022912 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022913 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22914 PyMem_Free(_children);
22915 _PyPegen_insert_memo(p, _start_mark, _loop0_128_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022916 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022917 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022918}
22919
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022920// _loop0_129: (star_targets '=')
22921static asdl_seq *
22922_loop0_129_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022923{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022924 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022925 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022926 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022927 return NULL;
22928 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022929 void *_res = NULL;
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022930 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022931 int _start_mark = p->mark;
22932 void **_children = PyMem_Malloc(sizeof(void *));
22933 if (!_children) {
22934 p->error_indicator = 1;
22935 PyErr_NoMemory();
22936 D(p->level--);
22937 return NULL;
22938 }
22939 ssize_t _children_capacity = 1;
22940 ssize_t _n = 0;
22941 { // (star_targets '=')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022942 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022943 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030022944 return NULL;
22945 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022946 D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')"));
22947 void *_tmp_148_var;
22948 while (
22949 (_tmp_148_var = _tmp_148_rule(p)) // star_targets '='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022950 )
22951 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022952 _res = _tmp_148_var;
22953 if (_n == _children_capacity) {
22954 _children_capacity *= 2;
22955 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
22956 if (!_new_children) {
22957 p->error_indicator = 1;
22958 PyErr_NoMemory();
22959 D(p->level--);
22960 return NULL;
22961 }
22962 _children = _new_children;
22963 }
22964 _children[_n++] = _res;
22965 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022966 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022967 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022968 D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ',
22969 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022970 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022971 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
22972 if (!_seq) {
22973 PyMem_Free(_children);
22974 p->error_indicator = 1;
22975 PyErr_NoMemory();
22976 D(p->level--);
22977 return NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022978 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022979 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
22980 PyMem_Free(_children);
22981 _PyPegen_insert_memo(p, _start_mark, _loop0_129_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022982 D(p->level--);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022983 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022984}
22985
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022986// _tmp_130: yield_expr | star_expressions
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022987static void *
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030022988_tmp_130_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022989{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022990 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022991 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070022992 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010022993 return NULL;
22994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010022995 void * _res = NULL;
22996 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070022997 { // yield_expr
22998 if (p->error_indicator) {
22999 D(p->level--);
23000 return NULL;
23001 }
23002 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_expr"));
23003 expr_ty yield_expr_var;
23004 if (
23005 (yield_expr_var = yield_expr_rule(p)) // yield_expr
23006 )
23007 {
23008 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_expr"));
23009 _res = yield_expr_var;
23010 goto done;
23011 }
23012 p->mark = _mark;
23013 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
23014 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_expr"));
23015 }
23016 { // star_expressions
23017 if (p->error_indicator) {
23018 D(p->level--);
23019 return NULL;
23020 }
23021 D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_expressions"));
23022 expr_ty star_expressions_var;
23023 if (
23024 (star_expressions_var = star_expressions_rule(p)) // star_expressions
23025 )
23026 {
23027 D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_expressions"));
23028 _res = star_expressions_var;
23029 goto done;
23030 }
23031 p->mark = _mark;
23032 D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ',
23033 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions"));
23034 }
23035 _res = NULL;
23036 done:
23037 D(p->level--);
23038 return _res;
23039}
23040
23041// _tmp_131: '[' | '(' | '{'
23042static void *
23043_tmp_131_rule(Parser *p)
23044{
23045 D(p->level++);
23046 if (p->error_indicator) {
23047 D(p->level--);
23048 return NULL;
23049 }
23050 void * _res = NULL;
23051 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023052 { // '['
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023053 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023054 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023055 return NULL;
23056 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023057 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023058 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023059 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023060 (_literal = _PyPegen_expect_token(p, 9)) // token='['
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023061 )
23062 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023063 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023064 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023065 goto done;
23066 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023067 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023068 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023069 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023070 }
23071 { // '('
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023072 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023073 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023074 return NULL;
23075 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023076 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023077 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023078 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023079 (_literal = _PyPegen_expect_token(p, 7)) // token='('
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023080 )
23081 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023082 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023083 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023084 goto done;
23085 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023086 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023087 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023088 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023089 }
23090 { // '{'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023091 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023092 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023093 return NULL;
23094 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023095 D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023096 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023097 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023098 (_literal = _PyPegen_expect_token(p, 25)) // token='{'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023099 )
23100 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023101 D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023102 _res = _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023103 goto done;
23104 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023105 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023106 D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023107 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023108 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023109 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023110 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023111 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023112 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023113}
23114
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023115// _loop0_132: param_no_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023116static asdl_seq *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023117_loop0_132_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023118{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023119 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023120 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023121 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023122 return NULL;
23123 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023124 void *_res = NULL;
23125 int _mark = p->mark;
23126 int _start_mark = p->mark;
23127 void **_children = PyMem_Malloc(sizeof(void *));
23128 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023129 p->error_indicator = 1;
23130 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023131 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023132 return NULL;
23133 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023134 ssize_t _children_capacity = 1;
23135 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023136 { // param_no_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023137 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023138 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023139 return NULL;
23140 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023141 D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023142 arg_ty param_no_default_var;
23143 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023144 (param_no_default_var = param_no_default_rule(p)) // param_no_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023145 )
23146 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023147 _res = param_no_default_var;
23148 if (_n == _children_capacity) {
23149 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023150 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23151 if (!_new_children) {
23152 p->error_indicator = 1;
23153 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023154 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023155 return NULL;
23156 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023157 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023158 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023159 _children[_n++] = _res;
23160 _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023161 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023162 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023163 D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023164 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023165 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023166 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23167 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023168 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023169 p->error_indicator = 1;
23170 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023171 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023172 return NULL;
23173 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023174 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
23175 PyMem_Free(_children);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023176 _PyPegen_insert_memo(p, _start_mark, _loop0_132_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023177 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023178 return _seq;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023179}
23180
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023181// _tmp_133: slash_with_default | param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023182static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023183_tmp_133_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023184{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023185 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023186 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023187 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023188 return NULL;
23189 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023190 void * _res = NULL;
23191 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023192 { // slash_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023193 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023194 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023195 return NULL;
23196 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023197 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023198 SlashWithDefault* slash_with_default_var;
23199 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023200 (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023201 )
23202 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023203 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023204 _res = slash_with_default_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023205 goto done;
23206 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023207 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023208 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023209 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023210 }
Guido van Rossumc001c092020-04-30 12:12:19 -070023211 { // param_with_default+
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023212 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023213 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023214 return NULL;
23215 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023216 D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23217 asdl_seq * _loop1_149_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023218 if (
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023219 (_loop1_149_var = _loop1_149_rule(p)) // param_with_default+
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023220 )
23221 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023222 D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_with_default+"));
23223 _res = _loop1_149_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023224 goto done;
23225 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023226 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023227 D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023228 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default+"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023229 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023230 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023231 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023232 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023233 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023234}
23235
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023236// _tmp_134: ')' | ',' (')' | '**')
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023237static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023238_tmp_134_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023239{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023240 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023241 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023242 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023243 return NULL;
23244 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023245 void * _res = NULL;
23246 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023247 { // ')'
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)8df4f392020-06-08 02:22:06 -070023252 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023253 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023254 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023255 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023256 )
23257 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023258 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023259 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023260 goto done;
23261 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023262 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023263 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023264 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023265 }
23266 { // ',' (')' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023267 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023268 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023269 return NULL;
23270 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023271 D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023272 Token * _literal;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023273 void *_tmp_150_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023274 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023275 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023276 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023277 (_tmp_150_var = _tmp_150_rule(p)) // ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023278 )
23279 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023280 D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')"));
23281 _res = _PyPegen_dummy_name(p, _literal, _tmp_150_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023282 goto done;
23283 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023284 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023285 D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023286 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023287 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023288 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023289 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023290 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023291 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023292}
23293
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023294// _tmp_135: ':' | ',' (':' | '**')
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023295static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023296_tmp_135_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023297{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023298 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023299 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023300 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023301 return NULL;
23302 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023303 void * _res = NULL;
23304 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023305 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023306 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023307 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023308 return NULL;
23309 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023310 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023311 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023312 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023313 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023314 )
23315 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023316 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023317 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023318 goto done;
23319 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023320 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023321 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023322 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023323 }
23324 { // ',' (':' | '**')
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023325 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023326 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023327 return NULL;
23328 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023329 D(fprintf(stderr, "%*c> _tmp_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023330 Token * _literal;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023331 void *_tmp_151_var;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023332 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023333 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023334 &&
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023335 (_tmp_151_var = _tmp_151_rule(p)) // ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023336 )
23337 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023338 D(fprintf(stderr, "%*c+ _tmp_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')"));
23339 _res = _PyPegen_dummy_name(p, _literal, _tmp_151_var);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023340 goto done;
23341 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023342 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023343 D(fprintf(stderr, "%*c%s _tmp_135[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023344 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023345 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023346 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023347 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023348 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023349 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023350}
23351
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023352// _tmp_136: star_targets '='
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023353static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023354_tmp_136_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023355{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023356 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023357 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023358 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023359 return NULL;
23360 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023361 void * _res = NULL;
23362 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023363 { // star_targets '='
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023364 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023365 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023366 return NULL;
23367 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023368 D(fprintf(stderr, "%*c> _tmp_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023369 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023370 expr_ty z;
23371 if (
Pablo Galindo470aac42020-05-06 23:14:43 +010023372 (z = star_targets_rule(p)) // star_targets
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023373 &&
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023374 (_literal = _PyPegen_expect_token(p, 22)) // token='='
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023375 )
23376 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023377 D(fprintf(stderr, "%*c+ _tmp_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023378 _res = z;
23379 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023380 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023381 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023382 return NULL;
23383 }
23384 goto done;
23385 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023386 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023387 D(fprintf(stderr, "%*c%s _tmp_136[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023388 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023389 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023390 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023391 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023392 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023393 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023394}
23395
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023396// _tmp_137: '.' | '...'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023397static void *
23398_tmp_137_rule(Parser *p)
23399{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023400 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023401 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023402 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023403 return NULL;
23404 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023405 void * _res = NULL;
23406 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023407 { // '.'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023408 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023409 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023410 return NULL;
23411 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023412 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023413 Token * _literal;
23414 if (
23415 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23416 )
23417 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023418 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023419 _res = _literal;
23420 goto done;
23421 }
23422 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023423 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
23424 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023425 }
23426 { // '...'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023427 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023428 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023429 return NULL;
23430 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023431 D(fprintf(stderr, "%*c> _tmp_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023432 Token * _literal;
23433 if (
23434 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23435 )
23436 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023437 D(fprintf(stderr, "%*c+ _tmp_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023438 _res = _literal;
23439 goto done;
23440 }
23441 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023442 D(fprintf(stderr, "%*c%s _tmp_137[%d-%d]: %s failed!\n", p->level, ' ',
23443 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023444 }
23445 _res = NULL;
23446 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023447 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023448 return _res;
23449}
23450
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023451// _tmp_138: '.' | '...'
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023452static void *
23453_tmp_138_rule(Parser *p)
23454{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023455 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023456 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023457 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023458 return NULL;
23459 }
23460 void * _res = NULL;
23461 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023462 { // '.'
23463 if (p->error_indicator) {
23464 D(p->level--);
23465 return NULL;
23466 }
23467 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'"));
23468 Token * _literal;
23469 if (
23470 (_literal = _PyPegen_expect_token(p, 23)) // token='.'
23471 )
23472 {
23473 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'"));
23474 _res = _literal;
23475 goto done;
23476 }
23477 p->mark = _mark;
23478 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23479 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'"));
23480 }
23481 { // '...'
23482 if (p->error_indicator) {
23483 D(p->level--);
23484 return NULL;
23485 }
23486 D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'"));
23487 Token * _literal;
23488 if (
23489 (_literal = _PyPegen_expect_token(p, 52)) // token='...'
23490 )
23491 {
23492 D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'"));
23493 _res = _literal;
23494 goto done;
23495 }
23496 p->mark = _mark;
23497 D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ',
23498 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'"));
23499 }
23500 _res = NULL;
23501 done:
23502 D(p->level--);
23503 return _res;
23504}
23505
23506// _tmp_139: '@' named_expression NEWLINE
23507static void *
23508_tmp_139_rule(Parser *p)
23509{
23510 D(p->level++);
23511 if (p->error_indicator) {
23512 D(p->level--);
23513 return NULL;
23514 }
23515 void * _res = NULL;
23516 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023517 { // '@' named_expression NEWLINE
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023518 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023519 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023520 return NULL;
23521 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023522 D(fprintf(stderr, "%*c> _tmp_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023523 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023524 expr_ty f;
Pablo Galindob796b3f2020-05-01 12:32:26 +010023525 Token * newline_var;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023526 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023527 (_literal = _PyPegen_expect_token(p, 49)) // token='@'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023528 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023529 (f = named_expression_rule(p)) // named_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023530 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023531 (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023532 )
23533 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023534 D(fprintf(stderr, "%*c+ _tmp_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023535 _res = f;
23536 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023537 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023538 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023539 return NULL;
23540 }
23541 goto done;
23542 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023543 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023544 D(fprintf(stderr, "%*c%s _tmp_139[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023545 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023546 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023547 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023548 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023549 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023550 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023551}
23552
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023553// _tmp_140: ',' star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023554static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023555_tmp_140_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023556{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023557 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023558 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023559 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023560 return NULL;
23561 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023562 void * _res = NULL;
23563 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023564 { // ',' star_expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023565 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023566 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023567 return NULL;
23568 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023569 D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023570 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023571 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023572 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023573 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023574 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023575 (c = star_expression_rule(p)) // star_expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023576 )
23577 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023578 D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023579 _res = c;
23580 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023581 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023582 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023583 return NULL;
23584 }
23585 goto done;
23586 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023587 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023588 D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023589 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023590 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023591 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023592 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023593 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023594 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023595}
23596
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023597// _tmp_141: ',' expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023598static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023599_tmp_141_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023600{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023601 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023602 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023603 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023604 return NULL;
23605 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023606 void * _res = NULL;
23607 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023608 { // ',' expression
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023609 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023610 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023611 return NULL;
23612 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023613 D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023614 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023615 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023616 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023617 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023618 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023619 (c = expression_rule(p)) // expression
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023620 )
23621 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023622 D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' expression"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023623 _res = c;
23624 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023625 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023626 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023627 return NULL;
23628 }
23629 goto done;
23630 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023631 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023632 D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023633 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' expression"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023634 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023635 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023636 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023637 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023638 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023639}
23640
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023641// _tmp_142: 'or' conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023642static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023643_tmp_142_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023644{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023645 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023646 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023647 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023648 return NULL;
23649 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023650 void * _res = NULL;
23651 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023652 { // 'or' conjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023653 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023654 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023655 return NULL;
23656 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023657 D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023658 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023659 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023660 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023661 (_keyword = _PyPegen_expect_token(p, 532)) // token='or'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023662 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023663 (c = conjunction_rule(p)) // conjunction
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023664 )
23665 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023666 D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023667 _res = c;
23668 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023669 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023670 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023671 return NULL;
23672 }
23673 goto done;
23674 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023675 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023676 D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023677 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023678 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023679 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023680 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023681 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023682 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023683}
23684
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023685// _tmp_143: 'and' inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023686static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023687_tmp_143_rule(Parser *p)
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023688{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023689 D(p->level++);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023690 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023691 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023692 return NULL;
23693 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023694 void * _res = NULL;
23695 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023696 { // 'and' inversion
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023697 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023698 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023699 return NULL;
23700 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023701 D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023702 Token * _keyword;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023703 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023704 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023705 (_keyword = _PyPegen_expect_token(p, 533)) // token='and'
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023706 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023707 (c = inversion_rule(p)) // inversion
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023708 )
23709 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023710 D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023711 _res = c;
23712 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023713 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023714 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023715 return NULL;
23716 }
23717 goto done;
23718 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023719 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023720 D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023721 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023722 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023723 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023724 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023725 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023726 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023727}
23728
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023729// _tmp_144: 'if' disjunction
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023730static void *
23731_tmp_144_rule(Parser *p)
23732{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023733 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023734 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023735 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030023736 return NULL;
23737 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023738 void * _res = NULL;
23739 int _mark = p->mark;
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023740 { // 'if' disjunction
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023741 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023742 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023743 return NULL;
23744 }
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023745 D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023746 Token * _keyword;
23747 expr_ty z;
23748 if (
23749 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
23750 &&
23751 (z = disjunction_rule(p)) // disjunction
23752 )
23753 {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023754 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 +030023755 _res = z;
23756 if (_res == NULL && PyErr_Occurred()) {
23757 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023758 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023759 return NULL;
23760 }
23761 goto done;
23762 }
23763 p->mark = _mark;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023764 D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ',
23765 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023766 }
23767 _res = NULL;
23768 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023769 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023770 return _res;
23771}
23772
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023773// _tmp_145: 'if' disjunction
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023774static void *
23775_tmp_145_rule(Parser *p)
23776{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023777 D(p->level++);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023778 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023779 D(p->level--);
Lysandros Nikolaoua15c9b32020-05-13 22:36:27 +030023780 return NULL;
23781 }
23782 void * _res = NULL;
23783 int _mark = p->mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023784 { // 'if' disjunction
23785 if (p->error_indicator) {
23786 D(p->level--);
23787 return NULL;
23788 }
23789 D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
23790 Token * _keyword;
23791 expr_ty z;
23792 if (
23793 (_keyword = _PyPegen_expect_token(p, 510)) // token='if'
23794 &&
23795 (z = disjunction_rule(p)) // disjunction
23796 )
23797 {
23798 D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction"));
23799 _res = z;
23800 if (_res == NULL && PyErr_Occurred()) {
23801 p->error_indicator = 1;
23802 D(p->level--);
23803 return NULL;
23804 }
23805 goto done;
23806 }
23807 p->mark = _mark;
23808 D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ',
23809 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction"));
23810 }
23811 _res = NULL;
23812 done:
23813 D(p->level--);
23814 return _res;
23815}
23816
23817// _tmp_146: ',' star_target
23818static void *
23819_tmp_146_rule(Parser *p)
23820{
23821 D(p->level++);
23822 if (p->error_indicator) {
23823 D(p->level--);
23824 return NULL;
23825 }
23826 void * _res = NULL;
23827 int _mark = p->mark;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023828 { // ',' star_target
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023829 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023830 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023831 return NULL;
23832 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023833 D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023834 Token * _literal;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023835 expr_ty c;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023836 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023837 (_literal = _PyPegen_expect_token(p, 12)) // token=','
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023838 &&
Pablo Galindo470aac42020-05-06 23:14:43 +010023839 (c = star_target_rule(p)) // star_target
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023840 )
23841 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023842 D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023843 _res = c;
23844 if (_res == NULL && PyErr_Occurred()) {
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023845 p->error_indicator = 1;
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023846 D(p->level--);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023847 return NULL;
23848 }
23849 goto done;
23850 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023851 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023852 D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023853 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target"));
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023854 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023855 _res = NULL;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023856 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023857 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023858 return _res;
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023859}
23860
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023861// _tmp_147: star_targets '='
23862static void *
23863_tmp_147_rule(Parser *p)
23864{
23865 D(p->level++);
23866 if (p->error_indicator) {
23867 D(p->level--);
23868 return NULL;
23869 }
23870 void * _res = NULL;
23871 int _mark = p->mark;
23872 { // star_targets '='
23873 if (p->error_indicator) {
23874 D(p->level--);
23875 return NULL;
23876 }
23877 D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
23878 Token * _literal;
23879 expr_ty star_targets_var;
23880 if (
23881 (star_targets_var = star_targets_rule(p)) // star_targets
23882 &&
23883 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23884 )
23885 {
23886 D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
23887 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
23888 goto done;
23889 }
23890 p->mark = _mark;
23891 D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ',
23892 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
23893 }
23894 _res = NULL;
23895 done:
23896 D(p->level--);
23897 return _res;
23898}
23899
23900// _tmp_148: star_targets '='
23901static void *
23902_tmp_148_rule(Parser *p)
23903{
23904 D(p->level++);
23905 if (p->error_indicator) {
23906 D(p->level--);
23907 return NULL;
23908 }
23909 void * _res = NULL;
23910 int _mark = p->mark;
23911 { // star_targets '='
23912 if (p->error_indicator) {
23913 D(p->level--);
23914 return NULL;
23915 }
23916 D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
23917 Token * _literal;
23918 expr_ty star_targets_var;
23919 if (
23920 (star_targets_var = star_targets_rule(p)) // star_targets
23921 &&
23922 (_literal = _PyPegen_expect_token(p, 22)) // token='='
23923 )
23924 {
23925 D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='"));
23926 _res = _PyPegen_dummy_name(p, star_targets_var, _literal);
23927 goto done;
23928 }
23929 p->mark = _mark;
23930 D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ',
23931 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='"));
23932 }
23933 _res = NULL;
23934 done:
23935 D(p->level--);
23936 return _res;
23937}
23938
23939// _loop1_149: param_with_default
Pablo Galindoc5fc1562020-04-22 23:29:27 +010023940static asdl_seq *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023941_loop1_149_rule(Parser *p)
Guido van Rossumc001c092020-04-30 12:12:19 -070023942{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023943 D(p->level++);
Guido van Rossumc001c092020-04-30 12:12:19 -070023944 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023945 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023946 return NULL;
23947 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023948 void *_res = NULL;
23949 int _mark = p->mark;
23950 int _start_mark = p->mark;
23951 void **_children = PyMem_Malloc(sizeof(void *));
23952 if (!_children) {
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023953 p->error_indicator = 1;
23954 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023955 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023956 return NULL;
23957 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023958 ssize_t _children_capacity = 1;
23959 ssize_t _n = 0;
Guido van Rossumc001c092020-04-30 12:12:19 -070023960 { // param_with_default
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023961 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023962 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030023963 return NULL;
23964 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023965 D(fprintf(stderr, "%*c> _loop1_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023966 NameDefaultPair* param_with_default_var;
23967 while (
Pablo Galindo470aac42020-05-06 23:14:43 +010023968 (param_with_default_var = param_with_default_rule(p)) // param_with_default
Guido van Rossumc001c092020-04-30 12:12:19 -070023969 )
23970 {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023971 _res = param_with_default_var;
23972 if (_n == _children_capacity) {
23973 _children_capacity *= 2;
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023974 void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *));
23975 if (!_new_children) {
23976 p->error_indicator = 1;
23977 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023978 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023979 return NULL;
23980 }
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023981 _children = _new_children;
Guido van Rossumc001c092020-04-30 12:12:19 -070023982 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023983 _children[_n++] = _res;
23984 _mark = p->mark;
Guido van Rossumc001c092020-04-30 12:12:19 -070023985 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023986 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070023987 D(fprintf(stderr, "%*c%s _loop1_149[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023988 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_with_default"));
Guido van Rossumc001c092020-04-30 12:12:19 -070023989 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023990 if (_n == 0 || p->error_indicator) {
23991 PyMem_Free(_children);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070023992 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070023993 return NULL;
23994 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023995 asdl_seq *_seq = _Py_asdl_seq_new(_n, p->arena);
23996 if (!_seq) {
Pablo Galindoac7a92c2020-05-10 05:34:50 +010023997 PyMem_Free(_children);
Lysandros Nikolaou2c8cd062020-05-17 06:19:23 +030023998 p->error_indicator = 1;
23999 PyErr_NoMemory();
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024000 D(p->level--);
Guido van Rossumc001c092020-04-30 12:12:19 -070024001 return NULL;
24002 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024003 for (int i = 0; i < _n; i++) asdl_seq_SET(_seq, i, _children[i]);
24004 PyMem_Free(_children);
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024005 _PyPegen_insert_memo(p, _start_mark, _loop1_149_type, _seq);
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024006 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024007 return _seq;
Guido van Rossumc001c092020-04-30 12:12:19 -070024008}
24009
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024010// _tmp_150: ')' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024011static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024012_tmp_150_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024013{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024014 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024015 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024016 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024017 return NULL;
24018 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024019 void * _res = NULL;
24020 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024021 { // ')'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024022 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024023 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024024 return NULL;
24025 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024026 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024027 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024028 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024029 (_literal = _PyPegen_expect_token(p, 8)) // token=')'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024030 )
24031 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024032 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024033 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024034 goto done;
24035 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024036 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024037 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024038 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024039 }
24040 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024041 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024042 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024043 return NULL;
24044 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024045 D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024046 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024047 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024048 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024049 )
24050 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024051 D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024052 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024053 goto done;
24054 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024055 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024056 D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024057 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024058 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024059 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024060 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024061 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024062 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024063}
24064
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024065// _tmp_151: ':' | '**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024066static void *
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024067_tmp_151_rule(Parser *p)
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024068{
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024069 D(p->level++);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024070 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024071 D(p->level--);
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024072 return NULL;
24073 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024074 void * _res = NULL;
24075 int _mark = p->mark;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024076 { // ':'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024077 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024078 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024079 return NULL;
24080 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024081 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024082 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024083 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024084 (_literal = _PyPegen_expect_token(p, 11)) // token=':'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024085 )
24086 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024087 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024088 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024089 goto done;
24090 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024091 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024092 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024093 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024094 }
24095 { // '**'
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024096 if (p->error_indicator) {
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024097 D(p->level--);
Lysandros Nikolaou7b7a21b2020-05-18 20:32:03 +030024098 return NULL;
24099 }
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024100 D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024101 Token * _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024102 if (
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024103 (_literal = _PyPegen_expect_token(p, 35)) // token='**'
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024104 )
24105 {
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024106 D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'"));
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024107 _res = _literal;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024108 goto done;
24109 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024110 p->mark = _mark;
Miss Islington (bot)8df4f392020-06-08 02:22:06 -070024111 D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ',
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024112 p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'"));
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024113 }
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024114 _res = NULL;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024115 done:
Miss Islington (bot)82da2c32020-05-25 10:58:03 -070024116 D(p->level--);
Pablo Galindoac7a92c2020-05-10 05:34:50 +010024117 return _res;
Lysandros Nikolaoue10e7c72020-05-04 13:58:31 +030024118}
24119
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024120void *
24121_PyPegen_parse(Parser *p)
24122{
24123 // Initialize keywords
24124 p->keywords = reserved_keywords;
24125 p->n_keyword_lists = n_keyword_lists;
24126
24127 // Run parser
24128 void *result = NULL;
24129 if (p->start_rule == Py_file_input) {
24130 result = file_rule(p);
24131 } else if (p->start_rule == Py_single_input) {
24132 result = interactive_rule(p);
24133 } else if (p->start_rule == Py_eval_input) {
24134 result = eval_rule(p);
Guido van Rossumc001c092020-04-30 12:12:19 -070024135 } else if (p->start_rule == Py_func_type_input) {
24136 result = func_type_rule(p);
Pablo Galindoc5fc1562020-04-22 23:29:27 +010024137 } else if (p->start_rule == Py_fstring_input) {
24138 result = fstring_rule(p);
24139 }
24140
24141 return result;
24142}
24143
24144// The end