From 4dbba6be6609eef0a08b9a79b455fe3264645f96 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sun, 9 Feb 2025 11:04:38 +0500 Subject: [PATCH 01/16] gh-129515: Clarify syntax error messages for conditional expressions --- Grammar/python.gram | 6 + Lib/test/test_ast/test_ast.py | 46 ++ Parser/parser.c | 1423 ++++++++++++++++++--------------- 3 files changed, 844 insertions(+), 631 deletions(-) diff --git a/Grammar/python.gram b/Grammar/python.gram index b47028460b94f4..3b611983ddd3d3 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -114,6 +114,9 @@ simple_stmt[stmt_ty] (memo): | assignment | &"type" type_alias | e=star_expressions { _PyAST_Expr(e, EXTRA) } + | simple_stmt_without_expressions + +simple_stmt_without_expressions[stmt_ty]: | &'return' return_stmt | &('import' | 'from') import_stmt | &'raise' raise_stmt @@ -1184,6 +1187,9 @@ invalid_expression: _PyPegen_check_legacy_stmt(p, a) ? NULL : p->tokens[p->mark-1]->level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } + | a=disjunction 'if' b=disjunction 'else' c=simple_stmt_without_expressions { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (c, "statement given where 'orelse' expression required")} + | a=simple_stmt_without_expressions 'if' b=disjunction 'else' c=expression { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} + | a=simple_stmt_without_expressions 'if' b=disjunction 'else' c=simple_stmt_without_expressions { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} | a='lambda' [lambda_params] b=':' &FSTRING_MIDDLE { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "f-string: lambda expressions are not allowed without parentheses") } diff --git a/Lib/test/test_ast/test_ast.py b/Lib/test/test_ast/test_ast.py index a438c8e81e4fd1..39392c05bee570 100644 --- a/Lib/test/test_ast/test_ast.py +++ b/Lib/test/test_ast/test_ast.py @@ -1966,6 +1966,52 @@ def test_ifexp(self): for args in (s, l, l), (l, s, l), (l, l, s): self.expr(ast.IfExp(*args), "must have Load context") + def test_ifexp_orelse_stmt(self): + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else pass") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else return") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else raise Exception('a')") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("a = 1; x = 1 if 1 else del a") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else yield 2") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else assert False") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else break") + with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): + ast.parse("x = 1 if 1 else continue") + + def test_ifexp_body_stmt_orelse_expression(self): + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = pass if 1 else 1") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = return if 1 else 1") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = raise if 1 else 1") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = break if 1 else 1") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = continue if 1 else 1") + + # this is not covered by 'invalid_expression' rule + with self.assertRaisesRegex(SyntaxError, "cannot delete conditional expression"): + ast.parse("a = 1; x = del a if 1 else 1") + + def test_ifexp_body_stmt_orelse_stmt(self): + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = pass if 1 else pass") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = return if 1 else pass") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = raise if 1 else pass") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = break if 1 else pass") + with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): + ast.parse("x = continue if 1 else pass") + def test_dict(self): d = ast.Dict([], [ast.Name("x", ast.Load())]) self.expr(d, "same number of keys as values") diff --git a/Parser/parser.c b/Parser/parser.c index 9ff58ab7e7bfd5..2d58c19c5d0083 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -21,54 +21,54 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { - {"if", 668}, - {"as", 666}, - {"in", 679}, + {"if", 674}, + {"as", 672}, + {"in", 685}, {"or", 581}, {"is", 589}, {NULL, -1}, }, (KeywordToken[]) { - {"del", 613}, - {"def", 683}, - {"for", 678}, - {"try", 642}, + {"del", 619}, + {"def", 689}, + {"for", 684}, + {"try", 648}, {"and", 582}, - {"not", 687}, + {"not", 693}, {NULL, -1}, }, (KeywordToken[]) { - {"from", 621}, + {"from", 627}, {"pass", 504}, - {"with", 633}, - {"elif", 670}, - {"else", 671}, - {"None", 611}, - {"True", 610}, + {"with", 639}, + {"elif", 676}, + {"else", 677}, + {"None", 617}, + {"True", 616}, {NULL, -1}, }, (KeywordToken[]) { {"raise", 525}, {"yield", 580}, {"break", 508}, - {"async", 682}, - {"class", 685}, - {"while", 673}, - {"False", 612}, + {"async", 688}, + {"class", 691}, + {"while", 679}, + {"False", 618}, {"await", 590}, {NULL, -1}, }, (KeywordToken[]) { {"return", 522}, - {"import", 622}, + {"import", 628}, {"assert", 529}, {"global", 526}, - {"except", 663}, - {"lambda", 609}, + {"except", 669}, + {"lambda", 615}, {NULL, -1}, }, (KeywordToken[]) { - {"finally", 659}, + {"finally", 665}, {NULL, -1}, }, (KeywordToken[]) { @@ -93,419 +93,420 @@ static char *soft_keywords[] = { #define statement_newline_type 1006 #define simple_stmts_type 1007 #define simple_stmt_type 1008 -#define compound_stmt_type 1009 -#define assignment_type 1010 -#define annotated_rhs_type 1011 -#define augassign_type 1012 -#define return_stmt_type 1013 -#define raise_stmt_type 1014 -#define global_stmt_type 1015 -#define nonlocal_stmt_type 1016 -#define del_stmt_type 1017 -#define yield_stmt_type 1018 -#define assert_stmt_type 1019 -#define import_stmt_type 1020 -#define import_name_type 1021 -#define import_from_type 1022 -#define import_from_targets_type 1023 -#define import_from_as_names_type 1024 -#define import_from_as_name_type 1025 -#define dotted_as_names_type 1026 -#define dotted_as_name_type 1027 -#define dotted_name_type 1028 // Left-recursive -#define block_type 1029 -#define decorators_type 1030 -#define class_def_type 1031 -#define class_def_raw_type 1032 -#define function_def_type 1033 -#define function_def_raw_type 1034 -#define params_type 1035 -#define parameters_type 1036 -#define slash_no_default_type 1037 -#define slash_with_default_type 1038 -#define star_etc_type 1039 -#define kwds_type 1040 -#define param_no_default_type 1041 -#define param_no_default_star_annotation_type 1042 -#define param_with_default_type 1043 -#define param_maybe_default_type 1044 -#define param_type 1045 -#define param_star_annotation_type 1046 -#define annotation_type 1047 -#define star_annotation_type 1048 -#define default_type 1049 -#define if_stmt_type 1050 -#define elif_stmt_type 1051 -#define else_block_type 1052 -#define while_stmt_type 1053 -#define for_stmt_type 1054 -#define with_stmt_type 1055 -#define with_item_type 1056 -#define try_stmt_type 1057 -#define except_block_type 1058 -#define except_star_block_type 1059 -#define finally_block_type 1060 -#define match_stmt_type 1061 -#define subject_expr_type 1062 -#define case_block_type 1063 -#define guard_type 1064 -#define patterns_type 1065 -#define pattern_type 1066 -#define as_pattern_type 1067 -#define or_pattern_type 1068 -#define closed_pattern_type 1069 -#define literal_pattern_type 1070 -#define literal_expr_type 1071 -#define complex_number_type 1072 -#define signed_number_type 1073 -#define signed_real_number_type 1074 -#define real_number_type 1075 -#define imaginary_number_type 1076 -#define capture_pattern_type 1077 -#define pattern_capture_target_type 1078 -#define wildcard_pattern_type 1079 -#define value_pattern_type 1080 -#define attr_type 1081 // Left-recursive -#define name_or_attr_type 1082 // Left-recursive -#define group_pattern_type 1083 -#define sequence_pattern_type 1084 -#define open_sequence_pattern_type 1085 -#define maybe_sequence_pattern_type 1086 -#define maybe_star_pattern_type 1087 -#define star_pattern_type 1088 -#define mapping_pattern_type 1089 -#define items_pattern_type 1090 -#define key_value_pattern_type 1091 -#define double_star_pattern_type 1092 -#define class_pattern_type 1093 -#define positional_patterns_type 1094 -#define keyword_patterns_type 1095 -#define keyword_pattern_type 1096 -#define type_alias_type 1097 -#define type_params_type 1098 -#define type_param_seq_type 1099 -#define type_param_type 1100 -#define type_param_bound_type 1101 -#define type_param_default_type 1102 -#define type_param_starred_default_type 1103 -#define expressions_type 1104 -#define expression_type 1105 -#define yield_expr_type 1106 -#define star_expressions_type 1107 -#define star_expression_type 1108 -#define star_named_expressions_type 1109 -#define star_named_expression_type 1110 -#define assignment_expression_type 1111 -#define named_expression_type 1112 -#define disjunction_type 1113 -#define conjunction_type 1114 -#define inversion_type 1115 -#define comparison_type 1116 -#define compare_op_bitwise_or_pair_type 1117 -#define eq_bitwise_or_type 1118 -#define noteq_bitwise_or_type 1119 -#define lte_bitwise_or_type 1120 -#define lt_bitwise_or_type 1121 -#define gte_bitwise_or_type 1122 -#define gt_bitwise_or_type 1123 -#define notin_bitwise_or_type 1124 -#define in_bitwise_or_type 1125 -#define isnot_bitwise_or_type 1126 -#define is_bitwise_or_type 1127 -#define bitwise_or_type 1128 // Left-recursive -#define bitwise_xor_type 1129 // Left-recursive -#define bitwise_and_type 1130 // Left-recursive -#define shift_expr_type 1131 // Left-recursive -#define sum_type 1132 // Left-recursive -#define term_type 1133 // Left-recursive -#define factor_type 1134 -#define power_type 1135 -#define await_primary_type 1136 -#define primary_type 1137 // Left-recursive -#define slices_type 1138 -#define slice_type 1139 -#define atom_type 1140 -#define group_type 1141 -#define lambdef_type 1142 -#define lambda_params_type 1143 -#define lambda_parameters_type 1144 -#define lambda_slash_no_default_type 1145 -#define lambda_slash_with_default_type 1146 -#define lambda_star_etc_type 1147 -#define lambda_kwds_type 1148 -#define lambda_param_no_default_type 1149 -#define lambda_param_with_default_type 1150 -#define lambda_param_maybe_default_type 1151 -#define lambda_param_type 1152 -#define fstring_middle_type 1153 -#define fstring_replacement_field_type 1154 -#define fstring_conversion_type 1155 -#define fstring_full_format_spec_type 1156 -#define fstring_format_spec_type 1157 -#define fstring_type 1158 -#define string_type 1159 -#define strings_type 1160 -#define list_type 1161 -#define tuple_type 1162 -#define set_type 1163 -#define dict_type 1164 -#define double_starred_kvpairs_type 1165 -#define double_starred_kvpair_type 1166 -#define kvpair_type 1167 -#define for_if_clauses_type 1168 -#define for_if_clause_type 1169 -#define listcomp_type 1170 -#define setcomp_type 1171 -#define genexp_type 1172 -#define dictcomp_type 1173 -#define arguments_type 1174 -#define args_type 1175 -#define kwargs_type 1176 -#define starred_expression_type 1177 -#define kwarg_or_starred_type 1178 -#define kwarg_or_double_starred_type 1179 -#define star_targets_type 1180 -#define star_targets_list_seq_type 1181 -#define star_targets_tuple_seq_type 1182 -#define star_target_type 1183 -#define target_with_star_atom_type 1184 -#define star_atom_type 1185 -#define single_target_type 1186 -#define single_subscript_attribute_target_type 1187 -#define t_primary_type 1188 // Left-recursive -#define t_lookahead_type 1189 -#define del_targets_type 1190 -#define del_target_type 1191 -#define del_t_atom_type 1192 -#define type_expressions_type 1193 -#define func_type_comment_type 1194 -#define invalid_arguments_type 1195 -#define invalid_kwarg_type 1196 -#define expression_without_invalid_type 1197 -#define invalid_legacy_expression_type 1198 -#define invalid_type_param_type 1199 -#define invalid_expression_type 1200 -#define invalid_named_expression_type 1201 -#define invalid_assignment_type 1202 -#define invalid_ann_assign_target_type 1203 -#define invalid_del_stmt_type 1204 -#define invalid_block_type 1205 -#define invalid_comprehension_type 1206 -#define invalid_dict_comprehension_type 1207 -#define invalid_parameters_type 1208 -#define invalid_default_type 1209 -#define invalid_star_etc_type 1210 -#define invalid_kwds_type 1211 -#define invalid_parameters_helper_type 1212 -#define invalid_lambda_parameters_type 1213 -#define invalid_lambda_parameters_helper_type 1214 -#define invalid_lambda_star_etc_type 1215 -#define invalid_lambda_kwds_type 1216 -#define invalid_double_type_comments_type 1217 -#define invalid_with_item_type 1218 -#define invalid_for_if_clause_type 1219 -#define invalid_for_target_type 1220 -#define invalid_group_type 1221 -#define invalid_import_type 1222 -#define invalid_import_from_targets_type 1223 -#define invalid_with_stmt_type 1224 -#define invalid_with_stmt_indent_type 1225 -#define invalid_try_stmt_type 1226 -#define invalid_except_stmt_type 1227 -#define invalid_except_star_stmt_type 1228 -#define invalid_finally_stmt_type 1229 -#define invalid_except_stmt_indent_type 1230 -#define invalid_except_star_stmt_indent_type 1231 -#define invalid_match_stmt_type 1232 -#define invalid_case_block_type 1233 -#define invalid_as_pattern_type 1234 -#define invalid_class_pattern_type 1235 -#define invalid_class_argument_pattern_type 1236 -#define invalid_if_stmt_type 1237 -#define invalid_elif_stmt_type 1238 -#define invalid_else_stmt_type 1239 -#define invalid_while_stmt_type 1240 -#define invalid_for_stmt_type 1241 -#define invalid_def_raw_type 1242 -#define invalid_class_def_raw_type 1243 -#define invalid_double_starred_kvpairs_type 1244 -#define invalid_kvpair_type 1245 -#define invalid_starred_expression_unpacking_type 1246 -#define invalid_starred_expression_type 1247 -#define invalid_replacement_field_type 1248 -#define invalid_conversion_character_type 1249 -#define invalid_arithmetic_type 1250 -#define invalid_factor_type 1251 -#define invalid_type_params_type 1252 -#define _loop0_1_type 1253 -#define _loop1_2_type 1254 -#define _loop0_3_type 1255 -#define _gather_4_type 1256 -#define _tmp_5_type 1257 -#define _tmp_6_type 1258 -#define _tmp_7_type 1259 -#define _tmp_8_type 1260 -#define _tmp_9_type 1261 -#define _tmp_10_type 1262 -#define _tmp_11_type 1263 -#define _loop1_12_type 1264 -#define _tmp_13_type 1265 -#define _loop0_14_type 1266 -#define _gather_15_type 1267 -#define _tmp_16_type 1268 -#define _tmp_17_type 1269 -#define _loop0_18_type 1270 -#define _loop1_19_type 1271 -#define _loop0_20_type 1272 -#define _gather_21_type 1273 -#define _tmp_22_type 1274 -#define _loop0_23_type 1275 -#define _gather_24_type 1276 -#define _loop1_25_type 1277 -#define _tmp_26_type 1278 -#define _tmp_27_type 1279 -#define _loop0_28_type 1280 -#define _loop0_29_type 1281 -#define _loop1_30_type 1282 -#define _loop1_31_type 1283 -#define _loop0_32_type 1284 -#define _loop1_33_type 1285 -#define _loop0_34_type 1286 -#define _gather_35_type 1287 -#define _tmp_36_type 1288 -#define _loop1_37_type 1289 -#define _loop1_38_type 1290 -#define _loop1_39_type 1291 -#define _loop0_40_type 1292 -#define _gather_41_type 1293 -#define _tmp_42_type 1294 -#define _tmp_43_type 1295 -#define _loop0_44_type 1296 -#define _gather_45_type 1297 -#define _loop0_46_type 1298 -#define _gather_47_type 1299 -#define _tmp_48_type 1300 -#define _loop0_49_type 1301 -#define _gather_50_type 1302 -#define _loop0_51_type 1303 -#define _gather_52_type 1304 -#define _loop0_53_type 1305 -#define _gather_54_type 1306 -#define _loop1_55_type 1307 -#define _loop1_56_type 1308 -#define _loop0_57_type 1309 -#define _gather_58_type 1310 -#define _loop1_59_type 1311 -#define _loop1_60_type 1312 -#define _loop1_61_type 1313 -#define _tmp_62_type 1314 -#define _loop0_63_type 1315 -#define _gather_64_type 1316 -#define _tmp_65_type 1317 -#define _tmp_66_type 1318 -#define _tmp_67_type 1319 -#define _tmp_68_type 1320 -#define _tmp_69_type 1321 -#define _tmp_70_type 1322 -#define _loop0_71_type 1323 -#define _loop0_72_type 1324 -#define _loop1_73_type 1325 -#define _loop1_74_type 1326 -#define _loop0_75_type 1327 -#define _loop1_76_type 1328 -#define _loop0_77_type 1329 -#define _loop0_78_type 1330 -#define _loop1_79_type 1331 -#define _tmp_80_type 1332 -#define _loop0_81_type 1333 -#define _gather_82_type 1334 -#define _loop1_83_type 1335 -#define _loop0_84_type 1336 -#define _tmp_85_type 1337 -#define _loop0_86_type 1338 -#define _gather_87_type 1339 -#define _tmp_88_type 1340 -#define _loop0_89_type 1341 -#define _gather_90_type 1342 -#define _loop0_91_type 1343 -#define _gather_92_type 1344 -#define _loop0_93_type 1345 -#define _loop0_94_type 1346 -#define _gather_95_type 1347 -#define _loop1_96_type 1348 -#define _tmp_97_type 1349 -#define _loop0_98_type 1350 -#define _gather_99_type 1351 -#define _loop0_100_type 1352 -#define _gather_101_type 1353 -#define _tmp_102_type 1354 -#define _tmp_103_type 1355 -#define _loop0_104_type 1356 -#define _gather_105_type 1357 -#define _tmp_106_type 1358 -#define _tmp_107_type 1359 -#define _tmp_108_type 1360 -#define _tmp_109_type 1361 -#define _tmp_110_type 1362 -#define _tmp_111_type 1363 -#define _tmp_112_type 1364 -#define _tmp_113_type 1365 -#define _tmp_114_type 1366 -#define _loop0_115_type 1367 -#define _loop0_116_type 1368 -#define _tmp_117_type 1369 -#define _tmp_118_type 1370 -#define _tmp_119_type 1371 -#define _tmp_120_type 1372 -#define _tmp_121_type 1373 -#define _tmp_122_type 1374 -#define _tmp_123_type 1375 -#define _tmp_124_type 1376 -#define _tmp_125_type 1377 -#define _loop0_126_type 1378 -#define _gather_127_type 1379 -#define _tmp_128_type 1380 -#define _tmp_129_type 1381 -#define _tmp_130_type 1382 -#define _tmp_131_type 1383 -#define _loop0_132_type 1384 -#define _gather_133_type 1385 -#define _loop0_134_type 1386 -#define _gather_135_type 1387 -#define _loop0_136_type 1388 -#define _gather_137_type 1389 -#define _tmp_138_type 1390 -#define _loop0_139_type 1391 -#define _tmp_140_type 1392 -#define _tmp_141_type 1393 -#define _tmp_142_type 1394 -#define _tmp_143_type 1395 -#define _tmp_144_type 1396 -#define _tmp_145_type 1397 -#define _tmp_146_type 1398 -#define _tmp_147_type 1399 -#define _tmp_148_type 1400 -#define _tmp_149_type 1401 -#define _tmp_150_type 1402 -#define _tmp_151_type 1403 -#define _tmp_152_type 1404 -#define _tmp_153_type 1405 -#define _tmp_154_type 1406 -#define _tmp_155_type 1407 -#define _tmp_156_type 1408 -#define _tmp_157_type 1409 -#define _tmp_158_type 1410 -#define _tmp_159_type 1411 -#define _tmp_160_type 1412 -#define _tmp_161_type 1413 -#define _tmp_162_type 1414 -#define _tmp_163_type 1415 -#define _tmp_164_type 1416 -#define _loop0_165_type 1417 -#define _tmp_166_type 1418 -#define _tmp_167_type 1419 -#define _tmp_168_type 1420 -#define _tmp_169_type 1421 +#define simple_stmt_without_expressions_type 1009 +#define compound_stmt_type 1010 +#define assignment_type 1011 +#define annotated_rhs_type 1012 +#define augassign_type 1013 +#define return_stmt_type 1014 +#define raise_stmt_type 1015 +#define global_stmt_type 1016 +#define nonlocal_stmt_type 1017 +#define del_stmt_type 1018 +#define yield_stmt_type 1019 +#define assert_stmt_type 1020 +#define import_stmt_type 1021 +#define import_name_type 1022 +#define import_from_type 1023 +#define import_from_targets_type 1024 +#define import_from_as_names_type 1025 +#define import_from_as_name_type 1026 +#define dotted_as_names_type 1027 +#define dotted_as_name_type 1028 +#define dotted_name_type 1029 // Left-recursive +#define block_type 1030 +#define decorators_type 1031 +#define class_def_type 1032 +#define class_def_raw_type 1033 +#define function_def_type 1034 +#define function_def_raw_type 1035 +#define params_type 1036 +#define parameters_type 1037 +#define slash_no_default_type 1038 +#define slash_with_default_type 1039 +#define star_etc_type 1040 +#define kwds_type 1041 +#define param_no_default_type 1042 +#define param_no_default_star_annotation_type 1043 +#define param_with_default_type 1044 +#define param_maybe_default_type 1045 +#define param_type 1046 +#define param_star_annotation_type 1047 +#define annotation_type 1048 +#define star_annotation_type 1049 +#define default_type 1050 +#define if_stmt_type 1051 +#define elif_stmt_type 1052 +#define else_block_type 1053 +#define while_stmt_type 1054 +#define for_stmt_type 1055 +#define with_stmt_type 1056 +#define with_item_type 1057 +#define try_stmt_type 1058 +#define except_block_type 1059 +#define except_star_block_type 1060 +#define finally_block_type 1061 +#define match_stmt_type 1062 +#define subject_expr_type 1063 +#define case_block_type 1064 +#define guard_type 1065 +#define patterns_type 1066 +#define pattern_type 1067 +#define as_pattern_type 1068 +#define or_pattern_type 1069 +#define closed_pattern_type 1070 +#define literal_pattern_type 1071 +#define literal_expr_type 1072 +#define complex_number_type 1073 +#define signed_number_type 1074 +#define signed_real_number_type 1075 +#define real_number_type 1076 +#define imaginary_number_type 1077 +#define capture_pattern_type 1078 +#define pattern_capture_target_type 1079 +#define wildcard_pattern_type 1080 +#define value_pattern_type 1081 +#define attr_type 1082 // Left-recursive +#define name_or_attr_type 1083 // Left-recursive +#define group_pattern_type 1084 +#define sequence_pattern_type 1085 +#define open_sequence_pattern_type 1086 +#define maybe_sequence_pattern_type 1087 +#define maybe_star_pattern_type 1088 +#define star_pattern_type 1089 +#define mapping_pattern_type 1090 +#define items_pattern_type 1091 +#define key_value_pattern_type 1092 +#define double_star_pattern_type 1093 +#define class_pattern_type 1094 +#define positional_patterns_type 1095 +#define keyword_patterns_type 1096 +#define keyword_pattern_type 1097 +#define type_alias_type 1098 +#define type_params_type 1099 +#define type_param_seq_type 1100 +#define type_param_type 1101 +#define type_param_bound_type 1102 +#define type_param_default_type 1103 +#define type_param_starred_default_type 1104 +#define expressions_type 1105 +#define expression_type 1106 +#define yield_expr_type 1107 +#define star_expressions_type 1108 +#define star_expression_type 1109 +#define star_named_expressions_type 1110 +#define star_named_expression_type 1111 +#define assignment_expression_type 1112 +#define named_expression_type 1113 +#define disjunction_type 1114 +#define conjunction_type 1115 +#define inversion_type 1116 +#define comparison_type 1117 +#define compare_op_bitwise_or_pair_type 1118 +#define eq_bitwise_or_type 1119 +#define noteq_bitwise_or_type 1120 +#define lte_bitwise_or_type 1121 +#define lt_bitwise_or_type 1122 +#define gte_bitwise_or_type 1123 +#define gt_bitwise_or_type 1124 +#define notin_bitwise_or_type 1125 +#define in_bitwise_or_type 1126 +#define isnot_bitwise_or_type 1127 +#define is_bitwise_or_type 1128 +#define bitwise_or_type 1129 // Left-recursive +#define bitwise_xor_type 1130 // Left-recursive +#define bitwise_and_type 1131 // Left-recursive +#define shift_expr_type 1132 // Left-recursive +#define sum_type 1133 // Left-recursive +#define term_type 1134 // Left-recursive +#define factor_type 1135 +#define power_type 1136 +#define await_primary_type 1137 +#define primary_type 1138 // Left-recursive +#define slices_type 1139 +#define slice_type 1140 +#define atom_type 1141 +#define group_type 1142 +#define lambdef_type 1143 +#define lambda_params_type 1144 +#define lambda_parameters_type 1145 +#define lambda_slash_no_default_type 1146 +#define lambda_slash_with_default_type 1147 +#define lambda_star_etc_type 1148 +#define lambda_kwds_type 1149 +#define lambda_param_no_default_type 1150 +#define lambda_param_with_default_type 1151 +#define lambda_param_maybe_default_type 1152 +#define lambda_param_type 1153 +#define fstring_middle_type 1154 +#define fstring_replacement_field_type 1155 +#define fstring_conversion_type 1156 +#define fstring_full_format_spec_type 1157 +#define fstring_format_spec_type 1158 +#define fstring_type 1159 +#define string_type 1160 +#define strings_type 1161 +#define list_type 1162 +#define tuple_type 1163 +#define set_type 1164 +#define dict_type 1165 +#define double_starred_kvpairs_type 1166 +#define double_starred_kvpair_type 1167 +#define kvpair_type 1168 +#define for_if_clauses_type 1169 +#define for_if_clause_type 1170 +#define listcomp_type 1171 +#define setcomp_type 1172 +#define genexp_type 1173 +#define dictcomp_type 1174 +#define arguments_type 1175 +#define args_type 1176 +#define kwargs_type 1177 +#define starred_expression_type 1178 +#define kwarg_or_starred_type 1179 +#define kwarg_or_double_starred_type 1180 +#define star_targets_type 1181 +#define star_targets_list_seq_type 1182 +#define star_targets_tuple_seq_type 1183 +#define star_target_type 1184 +#define target_with_star_atom_type 1185 +#define star_atom_type 1186 +#define single_target_type 1187 +#define single_subscript_attribute_target_type 1188 +#define t_primary_type 1189 // Left-recursive +#define t_lookahead_type 1190 +#define del_targets_type 1191 +#define del_target_type 1192 +#define del_t_atom_type 1193 +#define type_expressions_type 1194 +#define func_type_comment_type 1195 +#define invalid_arguments_type 1196 +#define invalid_kwarg_type 1197 +#define expression_without_invalid_type 1198 +#define invalid_legacy_expression_type 1199 +#define invalid_type_param_type 1200 +#define invalid_expression_type 1201 +#define invalid_named_expression_type 1202 +#define invalid_assignment_type 1203 +#define invalid_ann_assign_target_type 1204 +#define invalid_del_stmt_type 1205 +#define invalid_block_type 1206 +#define invalid_comprehension_type 1207 +#define invalid_dict_comprehension_type 1208 +#define invalid_parameters_type 1209 +#define invalid_default_type 1210 +#define invalid_star_etc_type 1211 +#define invalid_kwds_type 1212 +#define invalid_parameters_helper_type 1213 +#define invalid_lambda_parameters_type 1214 +#define invalid_lambda_parameters_helper_type 1215 +#define invalid_lambda_star_etc_type 1216 +#define invalid_lambda_kwds_type 1217 +#define invalid_double_type_comments_type 1218 +#define invalid_with_item_type 1219 +#define invalid_for_if_clause_type 1220 +#define invalid_for_target_type 1221 +#define invalid_group_type 1222 +#define invalid_import_type 1223 +#define invalid_import_from_targets_type 1224 +#define invalid_with_stmt_type 1225 +#define invalid_with_stmt_indent_type 1226 +#define invalid_try_stmt_type 1227 +#define invalid_except_stmt_type 1228 +#define invalid_except_star_stmt_type 1229 +#define invalid_finally_stmt_type 1230 +#define invalid_except_stmt_indent_type 1231 +#define invalid_except_star_stmt_indent_type 1232 +#define invalid_match_stmt_type 1233 +#define invalid_case_block_type 1234 +#define invalid_as_pattern_type 1235 +#define invalid_class_pattern_type 1236 +#define invalid_class_argument_pattern_type 1237 +#define invalid_if_stmt_type 1238 +#define invalid_elif_stmt_type 1239 +#define invalid_else_stmt_type 1240 +#define invalid_while_stmt_type 1241 +#define invalid_for_stmt_type 1242 +#define invalid_def_raw_type 1243 +#define invalid_class_def_raw_type 1244 +#define invalid_double_starred_kvpairs_type 1245 +#define invalid_kvpair_type 1246 +#define invalid_starred_expression_unpacking_type 1247 +#define invalid_starred_expression_type 1248 +#define invalid_replacement_field_type 1249 +#define invalid_conversion_character_type 1250 +#define invalid_arithmetic_type 1251 +#define invalid_factor_type 1252 +#define invalid_type_params_type 1253 +#define _loop0_1_type 1254 +#define _loop1_2_type 1255 +#define _loop0_3_type 1256 +#define _gather_4_type 1257 +#define _tmp_5_type 1258 +#define _tmp_6_type 1259 +#define _tmp_7_type 1260 +#define _tmp_8_type 1261 +#define _tmp_9_type 1262 +#define _tmp_10_type 1263 +#define _tmp_11_type 1264 +#define _loop1_12_type 1265 +#define _tmp_13_type 1266 +#define _loop0_14_type 1267 +#define _gather_15_type 1268 +#define _tmp_16_type 1269 +#define _tmp_17_type 1270 +#define _loop0_18_type 1271 +#define _loop1_19_type 1272 +#define _loop0_20_type 1273 +#define _gather_21_type 1274 +#define _tmp_22_type 1275 +#define _loop0_23_type 1276 +#define _gather_24_type 1277 +#define _loop1_25_type 1278 +#define _tmp_26_type 1279 +#define _tmp_27_type 1280 +#define _loop0_28_type 1281 +#define _loop0_29_type 1282 +#define _loop1_30_type 1283 +#define _loop1_31_type 1284 +#define _loop0_32_type 1285 +#define _loop1_33_type 1286 +#define _loop0_34_type 1287 +#define _gather_35_type 1288 +#define _tmp_36_type 1289 +#define _loop1_37_type 1290 +#define _loop1_38_type 1291 +#define _loop1_39_type 1292 +#define _loop0_40_type 1293 +#define _gather_41_type 1294 +#define _tmp_42_type 1295 +#define _tmp_43_type 1296 +#define _loop0_44_type 1297 +#define _gather_45_type 1298 +#define _loop0_46_type 1299 +#define _gather_47_type 1300 +#define _tmp_48_type 1301 +#define _loop0_49_type 1302 +#define _gather_50_type 1303 +#define _loop0_51_type 1304 +#define _gather_52_type 1305 +#define _loop0_53_type 1306 +#define _gather_54_type 1307 +#define _loop1_55_type 1308 +#define _loop1_56_type 1309 +#define _loop0_57_type 1310 +#define _gather_58_type 1311 +#define _loop1_59_type 1312 +#define _loop1_60_type 1313 +#define _loop1_61_type 1314 +#define _tmp_62_type 1315 +#define _loop0_63_type 1316 +#define _gather_64_type 1317 +#define _tmp_65_type 1318 +#define _tmp_66_type 1319 +#define _tmp_67_type 1320 +#define _tmp_68_type 1321 +#define _tmp_69_type 1322 +#define _tmp_70_type 1323 +#define _loop0_71_type 1324 +#define _loop0_72_type 1325 +#define _loop1_73_type 1326 +#define _loop1_74_type 1327 +#define _loop0_75_type 1328 +#define _loop1_76_type 1329 +#define _loop0_77_type 1330 +#define _loop0_78_type 1331 +#define _loop1_79_type 1332 +#define _tmp_80_type 1333 +#define _loop0_81_type 1334 +#define _gather_82_type 1335 +#define _loop1_83_type 1336 +#define _loop0_84_type 1337 +#define _tmp_85_type 1338 +#define _loop0_86_type 1339 +#define _gather_87_type 1340 +#define _tmp_88_type 1341 +#define _loop0_89_type 1342 +#define _gather_90_type 1343 +#define _loop0_91_type 1344 +#define _gather_92_type 1345 +#define _loop0_93_type 1346 +#define _loop0_94_type 1347 +#define _gather_95_type 1348 +#define _loop1_96_type 1349 +#define _tmp_97_type 1350 +#define _loop0_98_type 1351 +#define _gather_99_type 1352 +#define _loop0_100_type 1353 +#define _gather_101_type 1354 +#define _tmp_102_type 1355 +#define _tmp_103_type 1356 +#define _loop0_104_type 1357 +#define _gather_105_type 1358 +#define _tmp_106_type 1359 +#define _tmp_107_type 1360 +#define _tmp_108_type 1361 +#define _tmp_109_type 1362 +#define _tmp_110_type 1363 +#define _tmp_111_type 1364 +#define _tmp_112_type 1365 +#define _tmp_113_type 1366 +#define _tmp_114_type 1367 +#define _loop0_115_type 1368 +#define _loop0_116_type 1369 +#define _tmp_117_type 1370 +#define _tmp_118_type 1371 +#define _tmp_119_type 1372 +#define _tmp_120_type 1373 +#define _tmp_121_type 1374 +#define _tmp_122_type 1375 +#define _tmp_123_type 1376 +#define _tmp_124_type 1377 +#define _tmp_125_type 1378 +#define _loop0_126_type 1379 +#define _gather_127_type 1380 +#define _tmp_128_type 1381 +#define _tmp_129_type 1382 +#define _tmp_130_type 1383 +#define _tmp_131_type 1384 +#define _loop0_132_type 1385 +#define _gather_133_type 1386 +#define _loop0_134_type 1387 +#define _gather_135_type 1388 +#define _loop0_136_type 1389 +#define _gather_137_type 1390 +#define _tmp_138_type 1391 +#define _loop0_139_type 1392 +#define _tmp_140_type 1393 +#define _tmp_141_type 1394 +#define _tmp_142_type 1395 +#define _tmp_143_type 1396 +#define _tmp_144_type 1397 +#define _tmp_145_type 1398 +#define _tmp_146_type 1399 +#define _tmp_147_type 1400 +#define _tmp_148_type 1401 +#define _tmp_149_type 1402 +#define _tmp_150_type 1403 +#define _tmp_151_type 1404 +#define _tmp_152_type 1405 +#define _tmp_153_type 1406 +#define _tmp_154_type 1407 +#define _tmp_155_type 1408 +#define _tmp_156_type 1409 +#define _tmp_157_type 1410 +#define _tmp_158_type 1411 +#define _tmp_159_type 1412 +#define _tmp_160_type 1413 +#define _tmp_161_type 1414 +#define _tmp_162_type 1415 +#define _tmp_163_type 1416 +#define _tmp_164_type 1417 +#define _loop0_165_type 1418 +#define _tmp_166_type 1419 +#define _tmp_167_type 1420 +#define _tmp_168_type 1421 +#define _tmp_169_type 1422 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -516,6 +517,7 @@ static asdl_stmt_seq* statement_rule(Parser *p); static asdl_stmt_seq* statement_newline_rule(Parser *p); static asdl_stmt_seq* simple_stmts_rule(Parser *p); static stmt_ty simple_stmt_rule(Parser *p); +static stmt_ty simple_stmt_without_expressions_rule(Parser *p); static stmt_ty compound_stmt_rule(Parser *p); static stmt_ty assignment_rule(Parser *p); static expr_ty annotated_rhs_rule(Parser *p); @@ -1454,17 +1456,7 @@ simple_stmts_rule(Parser *p) // | assignment // | &"type" type_alias // | star_expressions -// | &'return' return_stmt -// | &('import' | 'from') import_stmt -// | &'raise' raise_stmt -// | 'pass' -// | &'del' del_stmt -// | &'yield' yield_stmt -// | &'assert' assert_stmt -// | 'break' -// | 'continue' -// | &'global' global_stmt -// | &'nonlocal' nonlocal_stmt +// | simple_stmt_without_expressions static stmt_ty simple_stmt_rule(Parser *p) { @@ -1563,12 +1555,71 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } + { // simple_stmt_without_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions")); + stmt_ty simple_stmt_without_expressions_var; + if ( + (simple_stmt_without_expressions_var = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + ) + { + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions")); + _res = simple_stmt_without_expressions_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt_without_expressions")); + } + _res = NULL; + done: + _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res); + p->level--; + return _res; +} + +// simple_stmt_without_expressions: +// | &'return' return_stmt +// | &('import' | 'from') import_stmt +// | &'raise' raise_stmt +// | 'pass' +// | &'del' del_stmt +// | &'yield' yield_stmt +// | &'assert' assert_stmt +// | 'break' +// | 'continue' +// | &'global' global_stmt +// | &'nonlocal' nonlocal_stmt +static stmt_ty +simple_stmt_without_expressions_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + stmt_ty _res = NULL; + int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro { // &'return' return_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); stmt_ty return_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 522) // token='return' @@ -1576,12 +1627,12 @@ simple_stmt_rule(Parser *p) (return_stmt_var = return_stmt_rule(p)) // return_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); _res = return_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt")); } { // &('import' | 'from') import_stmt @@ -1589,7 +1640,7 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); stmt_ty import_stmt_var; if ( _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_5_rule, p) @@ -1597,12 +1648,12 @@ simple_stmt_rule(Parser *p) (import_stmt_var = import_stmt_rule(p)) // import_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); _res = import_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt")); } { // &'raise' raise_stmt @@ -1610,7 +1661,7 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); stmt_ty raise_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 525) // token='raise' @@ -1618,12 +1669,12 @@ simple_stmt_rule(Parser *p) (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); _res = raise_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt")); } { // 'pass' @@ -1631,13 +1682,13 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 504)) // token='pass' ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -1656,7 +1707,7 @@ simple_stmt_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'")); } { // &'del' del_stmt @@ -1664,20 +1715,20 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); stmt_ty del_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 613) // token='del' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 619) // token='del' && (del_stmt_var = del_stmt_rule(p)) // del_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); _res = del_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt")); } { // &'yield' yield_stmt @@ -1685,7 +1736,7 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); stmt_ty yield_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 580) // token='yield' @@ -1693,12 +1744,12 @@ simple_stmt_rule(Parser *p) (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); _res = yield_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt")); } { // &'assert' assert_stmt @@ -1706,7 +1757,7 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); stmt_ty assert_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 529) // token='assert' @@ -1714,12 +1765,12 @@ simple_stmt_rule(Parser *p) (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); _res = assert_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt")); } { // 'break' @@ -1727,13 +1778,13 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 508)) // token='break' ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -1752,7 +1803,7 @@ simple_stmt_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'")); } { // 'continue' @@ -1760,13 +1811,13 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 509)) // token='continue' ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'")); Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); if (_token == NULL) { p->level--; @@ -1785,7 +1836,7 @@ simple_stmt_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'")); } { // &'global' global_stmt @@ -1793,7 +1844,7 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); stmt_ty global_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526) // token='global' @@ -1801,12 +1852,12 @@ simple_stmt_rule(Parser *p) (global_stmt_var = global_stmt_rule(p)) // global_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); _res = global_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt")); } { // &'nonlocal' nonlocal_stmt @@ -1814,7 +1865,7 @@ simple_stmt_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); + D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); stmt_ty nonlocal_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 527) // token='nonlocal' @@ -1822,17 +1873,16 @@ simple_stmt_rule(Parser *p) (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); _res = nonlocal_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt")); } _res = NULL; done: - _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res); p->level--; return _res; } @@ -1887,7 +1937,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); stmt_ty if_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 668) // token='if' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 674) // token='if' && (if_stmt_var = if_stmt_rule(p)) // if_stmt ) @@ -1971,7 +2021,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); stmt_ty try_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 642) // token='try' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 648) // token='try' && (try_stmt_var = try_stmt_rule(p)) // try_stmt ) @@ -1992,7 +2042,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 673) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 679) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -2977,7 +3027,7 @@ del_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 613)) // token='del' + (_keyword = _PyPegen_expect_token(p, 619)) // token='del' && (a = del_targets_rule(p)) // del_targets && @@ -3266,7 +3316,7 @@ import_name_rule(Parser *p) Token * _keyword; asdl_alias_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 622)) // token='import' + (_keyword = _PyPegen_expect_token(p, 628)) // token='import' && (a = dotted_as_names_rule(p)) // dotted_as_names ) @@ -3335,13 +3385,13 @@ import_from_rule(Parser *p) expr_ty b; asdl_alias_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='from' + (_keyword = _PyPegen_expect_token(p, 627)) // token='from' && (a = _loop0_18_rule(p)) // (('.' | '...'))* && (b = dotted_name_rule(p)) // dotted_name && - (_keyword_1 = _PyPegen_expect_token(p, 622)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 628)) // token='import' && (c = import_from_targets_rule(p)) // import_from_targets ) @@ -3379,11 +3429,11 @@ import_from_rule(Parser *p) asdl_seq * a; asdl_alias_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='from' + (_keyword = _PyPegen_expect_token(p, 627)) // token='from' && (a = _loop1_19_rule(p)) // (('.' | '...'))+ && - (_keyword_1 = _PyPegen_expect_token(p, 622)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 628)) // token='import' && (b = import_from_targets_rule(p)) // import_from_targets ) @@ -4132,7 +4182,7 @@ class_def_raw_rule(Parser *p) asdl_stmt_seq* c; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 685)) // token='class' + (_keyword = _PyPegen_expect_token(p, 691)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && @@ -4299,7 +4349,7 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 683)) // token='def' + (_keyword = _PyPegen_expect_token(p, 689)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4360,9 +4410,9 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 683)) // token='def' + (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -5700,7 +5750,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5745,7 +5795,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5840,7 +5890,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 670)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 676)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -5885,7 +5935,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 670)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 676)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -5966,7 +6016,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 671)) // token='else' + (_keyword = _PyPegen_expect_token(p, 677)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6045,7 +6095,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 673)) // token='while' + (_keyword = _PyPegen_expect_token(p, 679)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -6145,11 +6195,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword = _PyPegen_expect_token(p, 684)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' && (_cut_var = 1) && @@ -6207,13 +6257,13 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 684)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 685)) // token='in' && (_cut_var = 1) && @@ -6342,7 +6392,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword = _PyPegen_expect_token(p, 639)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6393,7 +6443,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword = _PyPegen_expect_token(p, 639)) // token='with' && (a = (asdl_withitem_seq*)_gather_35_rule(p)) // ','.with_item+ && @@ -6442,9 +6492,9 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword_1 = _PyPegen_expect_token(p, 639)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6494,9 +6544,9 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword_1 = _PyPegen_expect_token(p, 639)) // token='with' && (a = (asdl_withitem_seq*)_gather_35_rule(p)) // ','.with_item+ && @@ -6582,7 +6632,7 @@ with_item_rule(Parser *p) if ( (e = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (t = star_target_rule(p)) // star_target && @@ -6707,7 +6757,7 @@ try_stmt_rule(Parser *p) asdl_stmt_seq* b; asdl_stmt_seq* f; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='try' + (_keyword = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6751,7 +6801,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='try' + (_keyword = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6799,7 +6849,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='try' + (_keyword = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6897,7 +6947,7 @@ except_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (e = expression_rule(p)) // expression && @@ -6940,7 +6990,7 @@ except_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -7051,7 +7101,7 @@ except_star_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -7153,7 +7203,7 @@ finally_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 659)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 665)) // token='finally' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -7461,7 +7511,7 @@ guard_rule(Parser *p) Token * _keyword; expr_ty guard; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (guard = named_expression_rule(p)) // named_expression ) @@ -7656,7 +7706,7 @@ as_pattern_rule(Parser *p) if ( (pattern = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (target = pattern_capture_target_rule(p)) // pattern_capture_target ) @@ -8090,7 +8140,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 611)) // token='None' + (_keyword = _PyPegen_expect_token(p, 617)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8123,7 +8173,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 610)) // token='True' + (_keyword = _PyPegen_expect_token(p, 616)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8156,7 +8206,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 612)) // token='False' + (_keyword = _PyPegen_expect_token(p, 618)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -8282,7 +8332,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 611)) // token='None' + (_keyword = _PyPegen_expect_token(p, 617)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8315,7 +8365,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 610)) // token='True' + (_keyword = _PyPegen_expect_token(p, 616)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8348,7 +8398,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 612)) // token='False' + (_keyword = _PyPegen_expect_token(p, 618)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -10951,11 +11001,11 @@ expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 671)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' && (c = expression_rule(p)) // expression ) @@ -11061,7 +11111,7 @@ yield_expr_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 580)) // token='yield' && - (_keyword_1 = _PyPegen_expect_token(p, 621)) // token='from' + (_keyword_1 = _PyPegen_expect_token(p, 627)) // token='from' && (a = expression_rule(p)) // expression ) @@ -11837,7 +11887,7 @@ inversion_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='not' + (_keyword = _PyPegen_expect_token(p, 693)) // token='not' && (a = inversion_rule(p)) // inversion ) @@ -12491,9 +12541,9 @@ notin_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='not' + (_keyword = _PyPegen_expect_token(p, 693)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12539,7 +12589,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword = _PyPegen_expect_token(p, 685)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12588,7 +12638,7 @@ isnot_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 589)) // token='is' && - (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='not' + (_keyword_1 = _PyPegen_expect_token(p, 693)) // token='not' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -14494,7 +14544,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 610)) // token='True' + (_keyword = _PyPegen_expect_token(p, 616)) // token='True' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -14527,7 +14577,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 612)) // token='False' + (_keyword = _PyPegen_expect_token(p, 618)) // token='False' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -14560,7 +14610,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 611)) // token='None' + (_keyword = _PyPegen_expect_token(p, 617)) // token='None' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -14828,7 +14878,7 @@ lambdef_rule(Parser *p) void *a; expr_ty b; if ( - (_keyword = _PyPegen_expect_token(p, 609)) // token='lambda' + (_keyword = _PyPegen_expect_token(p, 615)) // token='lambda' && (a = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -16759,13 +16809,13 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 684)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 685)) // token='in' && (_cut_var = 1) && @@ -16804,11 +16854,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword = _PyPegen_expect_token(p, 684)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' && (_cut_var = 1) && @@ -20109,11 +20159,11 @@ expression_without_invalid_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 671)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20325,6 +20375,9 @@ invalid_type_param_rule(Parser *p) // invalid_expression: // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid // | disjunction 'if' disjunction !('else' | ':') +// | disjunction 'if' disjunction 'else' simple_stmt_without_expressions +// | simple_stmt_without_expressions 'if' disjunction 'else' expression +// | simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions // | 'lambda' lambda_params? ':' &FSTRING_MIDDLE static void * invalid_expression_rule(Parser *p) @@ -20379,7 +20432,7 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (b = disjunction_rule(p)) // disjunction && @@ -20399,6 +20452,114 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } + { // disjunction 'if' disjunction 'else' simple_stmt_without_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' simple_stmt_without_expressions")); + Token * _keyword; + Token * _keyword_1; + expr_ty a; + expr_ty b; + stmt_ty c; + if ( + (a = disjunction_rule(p)) // disjunction + && + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + && + (b = disjunction_rule(p)) // disjunction + && + (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + && + (c = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + ) + { + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' simple_stmt_without_expressions")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( c , "statement given where 'orelse' expression required" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' simple_stmt_without_expressions")); + } + { // simple_stmt_without_expressions 'if' disjunction 'else' expression + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' expression")); + Token * _keyword; + Token * _keyword_1; + stmt_ty a; + expr_ty b; + expr_ty c; + if ( + (a = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + && + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + && + (b = disjunction_rule(p)) // disjunction + && + (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + && + (c = expression_rule(p)) // expression + ) + { + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' expression")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' expression")); + } + { // simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions")); + Token * _keyword; + Token * _keyword_1; + stmt_ty a; + expr_ty b; + stmt_ty c; + if ( + (a = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + && + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + && + (b = disjunction_rule(p)) // disjunction + && + (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + && + (c = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + ) + { + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions")); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions")); + } { // 'lambda' lambda_params? ':' &FSTRING_MIDDLE if (p->error_indicator) { p->level--; @@ -20410,7 +20571,7 @@ invalid_expression_rule(Parser *p) Token * a; Token * b; if ( - (a = _PyPegen_expect_token(p, 609)) // token='lambda' + (a = _PyPegen_expect_token(p, 615)) // token='lambda' && (_opt_var = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -20881,7 +21042,7 @@ invalid_del_stmt_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 613)) // token='del' + (_keyword = _PyPegen_expect_token(p, 619)) // token='del' && (a = star_expressions_rule(p)) // star_expressions ) @@ -22317,7 +22478,7 @@ invalid_with_item_rule(Parser *p) if ( (expression_var = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (a = expression_rule(p)) // expression && @@ -22367,13 +22528,13 @@ invalid_for_if_clause_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings void *_tmp_131_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword = _PyPegen_expect_token(p, 684)) // token='for' && (_tmp_131_var = _tmp_131_rule(p)) // bitwise_or ((',' bitwise_or))* ','? && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 679) // token='in' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 685) // token='in' ) { D(fprintf(stderr, "%*c+ invalid_for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'")); @@ -22419,9 +22580,9 @@ invalid_for_target_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings expr_ty a; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword = _PyPegen_expect_token(p, 684)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -22551,11 +22712,11 @@ invalid_import_rule(Parser *p) Token * a; expr_ty dotted_name_var; if ( - (a = _PyPegen_expect_token(p, 622)) // token='import' + (a = _PyPegen_expect_token(p, 628)) // token='import' && (_gather_133_var = _gather_133_rule(p)) // ','.dotted_name+ && - (_keyword = _PyPegen_expect_token(p, 621)) // token='from' + (_keyword = _PyPegen_expect_token(p, 627)) // token='from' && (dotted_name_var = dotted_name_rule(p)) // dotted_name ) @@ -22582,7 +22743,7 @@ invalid_import_rule(Parser *p) Token * _keyword; Token * token; if ( - (_keyword = _PyPegen_expect_token(p, 622)) // token='import' + (_keyword = _PyPegen_expect_token(p, 628)) // token='import' && (token = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -22706,9 +22867,9 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword = _PyPegen_expect_token(p, 639)) // token='with' && (_gather_135_var = _gather_135_rule(p)) // ','.(expression ['as' star_target])+ && @@ -22744,9 +22905,9 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var_1); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword = _PyPegen_expect_token(p, 639)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -22806,9 +22967,9 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 633)) // token='with' + (a = _PyPegen_expect_token(p, 639)) // token='with' && (_gather_135_var = _gather_135_rule(p)) // ','.(expression ['as' star_target])+ && @@ -22849,9 +23010,9 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 633)) // token='with' + (a = _PyPegen_expect_token(p, 639)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -22914,7 +23075,7 @@ invalid_try_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 642)) // token='try' + (a = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22946,7 +23107,7 @@ invalid_try_stmt_rule(Parser *p) Token * _literal; asdl_stmt_seq* block_var; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='try' + (_keyword = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22985,7 +23146,7 @@ invalid_try_stmt_rule(Parser *p) Token * b; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='try' + (_keyword = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -22993,7 +23154,7 @@ invalid_try_stmt_rule(Parser *p) && (_loop1_37_var = _loop1_37_rule(p)) // except_block+ && - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (b = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23032,7 +23193,7 @@ invalid_try_stmt_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings Token * a; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='try' + (_keyword = _PyPegen_expect_token(p, 648)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23040,7 +23201,7 @@ invalid_try_stmt_rule(Parser *p) && (_loop1_38_var = _loop1_38_rule(p)) // except_star_block+ && - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (_opt_var = _tmp_140_rule(p), !p->error_indicator) // [expression ['as' NAME]] && @@ -23097,7 +23258,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (a = expression_rule(p)) // expression && @@ -23135,7 +23296,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -23166,7 +23327,7 @@ invalid_except_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23195,11 +23356,11 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (expression_var = expression_rule(p)) // expression && - (_keyword_1 = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword_1 = _PyPegen_expect_token(p, 672)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23255,7 +23416,7 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23296,7 +23457,7 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23330,7 +23491,7 @@ invalid_except_star_stmt_rule(Parser *p) void *_tmp_141_var; Token * a; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23362,13 +23523,13 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty a; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && (expression_var = expression_rule(p)) // expression && - (_keyword_1 = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword_1 = _PyPegen_expect_token(p, 672)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23415,7 +23576,7 @@ invalid_finally_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 659)) // token='finally' + (a = _PyPegen_expect_token(p, 665)) // token='finally' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23471,7 +23632,7 @@ invalid_except_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -23507,7 +23668,7 @@ invalid_except_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23563,7 +23724,7 @@ invalid_except_star_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 663)) // token='except' + (a = _PyPegen_expect_token(p, 669)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23802,7 +23963,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"' ) @@ -23832,7 +23993,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23984,7 +24145,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24015,7 +24176,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty a_1; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 668)) // token='if' + (a = _PyPegen_expect_token(p, 674)) // token='if' && (a_1 = named_expression_rule(p)) // named_expression && @@ -24070,7 +24231,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 670)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 676)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24101,7 +24262,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 670)) // token='elif' + (a = _PyPegen_expect_token(p, 676)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24154,7 +24315,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 671)) // token='else' + (a = _PyPegen_expect_token(p, 677)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24207,7 +24368,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 673)) // token='while' + (_keyword = _PyPegen_expect_token(p, 679)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24238,7 +24399,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 673)) // token='while' + (a = _PyPegen_expect_token(p, 679)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24297,13 +24458,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword = _PyPegen_expect_token(p, 684)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24338,13 +24499,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 678)) // token='for' + (a = _PyPegen_expect_token(p, 684)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 679)) // token='in' + (_keyword = _PyPegen_expect_token(p, 685)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24410,9 +24571,9 @@ invalid_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 683)) // token='def' + (a = _PyPegen_expect_token(p, 689)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24469,9 +24630,9 @@ invalid_def_raw_rule(Parser *p) asdl_stmt_seq* block_var; expr_ty name_var; if ( - (_opt_var = _PyPegen_expect_token(p, 682), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 683)) // token='def' + (_keyword = _PyPegen_expect_token(p, 689)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24535,7 +24696,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 685)) // token='class' + (_keyword = _PyPegen_expect_token(p, 691)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24574,7 +24735,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 685)) // token='class' + (a = _PyPegen_expect_token(p, 691)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25392,7 +25553,7 @@ invalid_arithmetic_rule(Parser *p) && (_tmp_148_var = _tmp_148_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' && - (a = _PyPegen_expect_token(p, 687)) // token='not' + (a = _PyPegen_expect_token(p, 693)) // token='not' && (b = inversion_rule(p)) // inversion ) @@ -25441,7 +25602,7 @@ invalid_factor_rule(Parser *p) if ( (_tmp_149_var = _tmp_149_rule(p)) // '+' | '-' | '~' && - (a = _PyPegen_expect_token(p, 687)) // token='not' + (a = _PyPegen_expect_token(p, 693)) // token='not' && (b = factor_rule(p)) // factor ) @@ -25788,7 +25949,7 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 622)) // token='import' + (_keyword = _PyPegen_expect_token(p, 628)) // token='import' ) { D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); @@ -25807,7 +25968,7 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='from' + (_keyword = _PyPegen_expect_token(p, 627)) // token='from' ) { D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); @@ -25845,7 +26006,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 683)) // token='def' + (_keyword = _PyPegen_expect_token(p, 689)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -25883,7 +26044,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -25921,7 +26082,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 685)) // token='class' + (_keyword = _PyPegen_expect_token(p, 691)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -25978,7 +26139,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 633)) // token='with' + (_keyword = _PyPegen_expect_token(p, 639)) // token='with' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); @@ -25997,7 +26158,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26035,7 +26196,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 678)) // token='for' + (_keyword = _PyPegen_expect_token(p, 684)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -26054,7 +26215,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='async' + (_keyword = _PyPegen_expect_token(p, 688)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26279,7 +26440,7 @@ _tmp_13_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='from' + (_keyword = _PyPegen_expect_token(p, 627)) // token='from' && (z = expression_rule(p)) // expression ) @@ -26801,7 +26962,7 @@ _tmp_22_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) @@ -32163,7 +32324,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 610)) // token='True' + (_keyword = _PyPegen_expect_token(p, 616)) // token='True' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -32182,7 +32343,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 612)) // token='False' + (_keyword = _PyPegen_expect_token(p, 618)) // token='False' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -32201,7 +32362,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 611)) // token='None' + (_keyword = _PyPegen_expect_token(p, 617)) // token='None' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -32340,7 +32501,7 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 671)) // token='else' + (_keyword = _PyPegen_expect_token(p, 677)) // token='else' ) { D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); @@ -32511,7 +32672,7 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 610)) // token='True' + (_keyword = _PyPegen_expect_token(p, 616)) // token='True' ) { D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -32530,7 +32691,7 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 611)) // token='None' + (_keyword = _PyPegen_expect_token(p, 617)) // token='None' ) { D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -32549,7 +32710,7 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 612)) // token='False' + (_keyword = _PyPegen_expect_token(p, 618)) // token='False' ) { D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -33962,7 +34123,7 @@ _tmp_138_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 663)) // token='except' + (_keyword = _PyPegen_expect_token(p, 669)) // token='except' ) { D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); @@ -33981,7 +34142,7 @@ _tmp_138_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 659)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 665)) // token='finally' ) { D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); @@ -35185,7 +35346,7 @@ _tmp_158_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='if' + (_keyword = _PyPegen_expect_token(p, 674)) // token='if' && (z = disjunction_rule(p)) // disjunction ) @@ -35727,7 +35888,7 @@ _tmp_169_rule(Parser *p) Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 666)) // token='as' + (_keyword = _PyPegen_expect_token(p, 672)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) From 66860902d05eda1ff6e6975f20bfecfbc28f3ee3 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sun, 9 Feb 2025 11:30:55 +0500 Subject: [PATCH 02/16] Update news --- .../2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst new file mode 100644 index 00000000000000..a89d4e503d10ef --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst @@ -0,0 +1,2 @@ +Clarify syntax error messages for conditional expressions if statement +specified in body and orelse parts. From b204fdb2e56970589d3412d4340b3e8108f2ed6c Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sun, 9 Feb 2025 13:28:43 +0500 Subject: [PATCH 03/16] Replace simple_stmt_without_expressions with explicit invalid_ifexp_* --- Grammar/python.gram | 39 +- Lib/test/test_ast/test_ast.py | 12 - Parser/parser.c | 1938 +++++++++++++++++++-------------- 3 files changed, 1180 insertions(+), 809 deletions(-) diff --git a/Grammar/python.gram b/Grammar/python.gram index 3b611983ddd3d3..772c7fe2faffb5 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -114,18 +114,15 @@ simple_stmt[stmt_ty] (memo): | assignment | &"type" type_alias | e=star_expressions { _PyAST_Expr(e, EXTRA) } - | simple_stmt_without_expressions - -simple_stmt_without_expressions[stmt_ty]: | &'return' return_stmt | &('import' | 'from') import_stmt | &'raise' raise_stmt - | 'pass' { _PyAST_Pass(EXTRA) } + | &'pass' pass_stmt | &'del' del_stmt | &'yield' yield_stmt | &'assert' assert_stmt - | 'break' { _PyAST_Break(EXTRA) } - | 'continue' { _PyAST_Continue(EXTRA) } + | &'break' break_stmt + | &'continue' continue_stmt | &'global' global_stmt | &'nonlocal' nonlocal_stmt @@ -184,6 +181,15 @@ raise_stmt[stmt_ty]: | 'raise' a=expression b=['from' z=expression { z }] { _PyAST_Raise(a, b, EXTRA) } | 'raise' { _PyAST_Raise(NULL, NULL, EXTRA) } +pass_stmt[stmt_ty]: + | 'pass' { _PyAST_Pass(EXTRA) } + +break_stmt[stmt_ty]: + | 'break' { _PyAST_Break(EXTRA) } + +continue_stmt[stmt_ty]: + | 'continue' { _PyAST_Continue(EXTRA) } + global_stmt[stmt_ty]: 'global' a[asdl_expr_seq*]=','.NAME+ { _PyAST_Global(CHECK(asdl_identifier_seq*, _PyPegen_map_names_to_ids(p, a)), EXTRA) } @@ -1180,6 +1186,21 @@ invalid_type_param: : "cannot use bound with ParamSpec") } +invalid_ifexp_orelse_stmt[stmt_ty]: + | return_stmt + | raise_stmt + | pass_stmt + | del_stmt + | yield_stmt + | assert_stmt + | break_stmt + | continue_stmt + +invalid_ifexp_body_stmt[stmt_ty]: + | pass_stmt + | break_stmt + | continue_stmt + invalid_expression: # !(NAME STRING) is not matched so we don't show this error with some invalid string prefixes like: kf"dsfsdf" # Soft keywords need to also be ignored because they can be parsed as NAME NAME @@ -1187,9 +1208,9 @@ invalid_expression: _PyPegen_check_legacy_stmt(p, a) ? NULL : p->tokens[p->mark-1]->level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } - | a=disjunction 'if' b=disjunction 'else' c=simple_stmt_without_expressions { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (c, "statement given where 'orelse' expression required")} - | a=simple_stmt_without_expressions 'if' b=disjunction 'else' c=expression { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} - | a=simple_stmt_without_expressions 'if' b=disjunction 'else' c=simple_stmt_without_expressions { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} + | a=disjunction 'if' b=disjunction 'else' c=invalid_ifexp_orelse_stmt { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (c, "statement given where 'orelse' expression required")} + | a=invalid_ifexp_body_stmt 'if' b=disjunction 'else' c=expression { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} + | a=invalid_ifexp_body_stmt 'if' b=disjunction 'else' c=invalid_ifexp_orelse_stmt { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} | a='lambda' [lambda_params] b=':' &FSTRING_MIDDLE { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "f-string: lambda expressions are not allowed without parentheses") } diff --git a/Lib/test/test_ast/test_ast.py b/Lib/test/test_ast/test_ast.py index 39392c05bee570..176063a5190292 100644 --- a/Lib/test/test_ast/test_ast.py +++ b/Lib/test/test_ast/test_ast.py @@ -1987,26 +1987,14 @@ def test_ifexp_orelse_stmt(self): def test_ifexp_body_stmt_orelse_expression(self): with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): ast.parse("x = pass if 1 else 1") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = return if 1 else 1") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = raise if 1 else 1") with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): ast.parse("x = break if 1 else 1") with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): ast.parse("x = continue if 1 else 1") - # this is not covered by 'invalid_expression' rule - with self.assertRaisesRegex(SyntaxError, "cannot delete conditional expression"): - ast.parse("a = 1; x = del a if 1 else 1") - def test_ifexp_body_stmt_orelse_stmt(self): with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): ast.parse("x = pass if 1 else pass") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = return if 1 else pass") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = raise if 1 else pass") with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): ast.parse("x = break if 1 else pass") with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): diff --git a/Parser/parser.c b/Parser/parser.c index 2d58c19c5d0083..42c4902f3abe0b 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -21,59 +21,59 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { - {"if", 674}, - {"as", 672}, - {"in", 685}, - {"or", 581}, - {"is", 589}, + {"if", 677}, + {"as", 675}, + {"in", 688}, + {"or", 584}, + {"is", 592}, {NULL, -1}, }, (KeywordToken[]) { - {"del", 619}, - {"def", 689}, - {"for", 684}, - {"try", 648}, - {"and", 582}, - {"not", 693}, + {"del", 622}, + {"def", 692}, + {"for", 687}, + {"try", 651}, + {"and", 585}, + {"not", 696}, {NULL, -1}, }, (KeywordToken[]) { - {"from", 627}, - {"pass", 504}, - {"with", 639}, - {"elif", 676}, - {"else", 677}, - {"None", 617}, - {"True", 616}, + {"from", 630}, + {"pass", 526}, + {"with", 642}, + {"elif", 679}, + {"else", 680}, + {"None", 620}, + {"True", 619}, {NULL, -1}, }, (KeywordToken[]) { {"raise", 525}, - {"yield", 580}, - {"break", 508}, - {"async", 688}, - {"class", 691}, - {"while", 679}, - {"False", 618}, - {"await", 590}, + {"yield", 583}, + {"break", 527}, + {"async", 691}, + {"class", 694}, + {"while", 682}, + {"False", 621}, + {"await", 593}, {NULL, -1}, }, (KeywordToken[]) { {"return", 522}, - {"import", 628}, - {"assert", 529}, - {"global", 526}, - {"except", 669}, - {"lambda", 615}, + {"import", 631}, + {"assert", 532}, + {"global", 529}, + {"except", 672}, + {"lambda", 618}, {NULL, -1}, }, (KeywordToken[]) { - {"finally", 665}, + {"finally", 668}, {NULL, -1}, }, (KeywordToken[]) { - {"continue", 509}, - {"nonlocal", 527}, + {"continue", 528}, + {"nonlocal", 530}, {NULL, -1}, }, }; @@ -93,420 +93,424 @@ static char *soft_keywords[] = { #define statement_newline_type 1006 #define simple_stmts_type 1007 #define simple_stmt_type 1008 -#define simple_stmt_without_expressions_type 1009 -#define compound_stmt_type 1010 -#define assignment_type 1011 -#define annotated_rhs_type 1012 -#define augassign_type 1013 -#define return_stmt_type 1014 -#define raise_stmt_type 1015 -#define global_stmt_type 1016 -#define nonlocal_stmt_type 1017 -#define del_stmt_type 1018 -#define yield_stmt_type 1019 -#define assert_stmt_type 1020 -#define import_stmt_type 1021 -#define import_name_type 1022 -#define import_from_type 1023 -#define import_from_targets_type 1024 -#define import_from_as_names_type 1025 -#define import_from_as_name_type 1026 -#define dotted_as_names_type 1027 -#define dotted_as_name_type 1028 -#define dotted_name_type 1029 // Left-recursive -#define block_type 1030 -#define decorators_type 1031 -#define class_def_type 1032 -#define class_def_raw_type 1033 -#define function_def_type 1034 -#define function_def_raw_type 1035 -#define params_type 1036 -#define parameters_type 1037 -#define slash_no_default_type 1038 -#define slash_with_default_type 1039 -#define star_etc_type 1040 -#define kwds_type 1041 -#define param_no_default_type 1042 -#define param_no_default_star_annotation_type 1043 -#define param_with_default_type 1044 -#define param_maybe_default_type 1045 -#define param_type 1046 -#define param_star_annotation_type 1047 -#define annotation_type 1048 -#define star_annotation_type 1049 -#define default_type 1050 -#define if_stmt_type 1051 -#define elif_stmt_type 1052 -#define else_block_type 1053 -#define while_stmt_type 1054 -#define for_stmt_type 1055 -#define with_stmt_type 1056 -#define with_item_type 1057 -#define try_stmt_type 1058 -#define except_block_type 1059 -#define except_star_block_type 1060 -#define finally_block_type 1061 -#define match_stmt_type 1062 -#define subject_expr_type 1063 -#define case_block_type 1064 -#define guard_type 1065 -#define patterns_type 1066 -#define pattern_type 1067 -#define as_pattern_type 1068 -#define or_pattern_type 1069 -#define closed_pattern_type 1070 -#define literal_pattern_type 1071 -#define literal_expr_type 1072 -#define complex_number_type 1073 -#define signed_number_type 1074 -#define signed_real_number_type 1075 -#define real_number_type 1076 -#define imaginary_number_type 1077 -#define capture_pattern_type 1078 -#define pattern_capture_target_type 1079 -#define wildcard_pattern_type 1080 -#define value_pattern_type 1081 -#define attr_type 1082 // Left-recursive -#define name_or_attr_type 1083 // Left-recursive -#define group_pattern_type 1084 -#define sequence_pattern_type 1085 -#define open_sequence_pattern_type 1086 -#define maybe_sequence_pattern_type 1087 -#define maybe_star_pattern_type 1088 -#define star_pattern_type 1089 -#define mapping_pattern_type 1090 -#define items_pattern_type 1091 -#define key_value_pattern_type 1092 -#define double_star_pattern_type 1093 -#define class_pattern_type 1094 -#define positional_patterns_type 1095 -#define keyword_patterns_type 1096 -#define keyword_pattern_type 1097 -#define type_alias_type 1098 -#define type_params_type 1099 -#define type_param_seq_type 1100 -#define type_param_type 1101 -#define type_param_bound_type 1102 -#define type_param_default_type 1103 -#define type_param_starred_default_type 1104 -#define expressions_type 1105 -#define expression_type 1106 -#define yield_expr_type 1107 -#define star_expressions_type 1108 -#define star_expression_type 1109 -#define star_named_expressions_type 1110 -#define star_named_expression_type 1111 -#define assignment_expression_type 1112 -#define named_expression_type 1113 -#define disjunction_type 1114 -#define conjunction_type 1115 -#define inversion_type 1116 -#define comparison_type 1117 -#define compare_op_bitwise_or_pair_type 1118 -#define eq_bitwise_or_type 1119 -#define noteq_bitwise_or_type 1120 -#define lte_bitwise_or_type 1121 -#define lt_bitwise_or_type 1122 -#define gte_bitwise_or_type 1123 -#define gt_bitwise_or_type 1124 -#define notin_bitwise_or_type 1125 -#define in_bitwise_or_type 1126 -#define isnot_bitwise_or_type 1127 -#define is_bitwise_or_type 1128 -#define bitwise_or_type 1129 // Left-recursive -#define bitwise_xor_type 1130 // Left-recursive -#define bitwise_and_type 1131 // Left-recursive -#define shift_expr_type 1132 // Left-recursive -#define sum_type 1133 // Left-recursive -#define term_type 1134 // Left-recursive -#define factor_type 1135 -#define power_type 1136 -#define await_primary_type 1137 -#define primary_type 1138 // Left-recursive -#define slices_type 1139 -#define slice_type 1140 -#define atom_type 1141 -#define group_type 1142 -#define lambdef_type 1143 -#define lambda_params_type 1144 -#define lambda_parameters_type 1145 -#define lambda_slash_no_default_type 1146 -#define lambda_slash_with_default_type 1147 -#define lambda_star_etc_type 1148 -#define lambda_kwds_type 1149 -#define lambda_param_no_default_type 1150 -#define lambda_param_with_default_type 1151 -#define lambda_param_maybe_default_type 1152 -#define lambda_param_type 1153 -#define fstring_middle_type 1154 -#define fstring_replacement_field_type 1155 -#define fstring_conversion_type 1156 -#define fstring_full_format_spec_type 1157 -#define fstring_format_spec_type 1158 -#define fstring_type 1159 -#define string_type 1160 -#define strings_type 1161 -#define list_type 1162 -#define tuple_type 1163 -#define set_type 1164 -#define dict_type 1165 -#define double_starred_kvpairs_type 1166 -#define double_starred_kvpair_type 1167 -#define kvpair_type 1168 -#define for_if_clauses_type 1169 -#define for_if_clause_type 1170 -#define listcomp_type 1171 -#define setcomp_type 1172 -#define genexp_type 1173 -#define dictcomp_type 1174 -#define arguments_type 1175 -#define args_type 1176 -#define kwargs_type 1177 -#define starred_expression_type 1178 -#define kwarg_or_starred_type 1179 -#define kwarg_or_double_starred_type 1180 -#define star_targets_type 1181 -#define star_targets_list_seq_type 1182 -#define star_targets_tuple_seq_type 1183 -#define star_target_type 1184 -#define target_with_star_atom_type 1185 -#define star_atom_type 1186 -#define single_target_type 1187 -#define single_subscript_attribute_target_type 1188 -#define t_primary_type 1189 // Left-recursive -#define t_lookahead_type 1190 -#define del_targets_type 1191 -#define del_target_type 1192 -#define del_t_atom_type 1193 -#define type_expressions_type 1194 -#define func_type_comment_type 1195 -#define invalid_arguments_type 1196 -#define invalid_kwarg_type 1197 -#define expression_without_invalid_type 1198 -#define invalid_legacy_expression_type 1199 -#define invalid_type_param_type 1200 -#define invalid_expression_type 1201 -#define invalid_named_expression_type 1202 -#define invalid_assignment_type 1203 -#define invalid_ann_assign_target_type 1204 -#define invalid_del_stmt_type 1205 -#define invalid_block_type 1206 -#define invalid_comprehension_type 1207 -#define invalid_dict_comprehension_type 1208 -#define invalid_parameters_type 1209 -#define invalid_default_type 1210 -#define invalid_star_etc_type 1211 -#define invalid_kwds_type 1212 -#define invalid_parameters_helper_type 1213 -#define invalid_lambda_parameters_type 1214 -#define invalid_lambda_parameters_helper_type 1215 -#define invalid_lambda_star_etc_type 1216 -#define invalid_lambda_kwds_type 1217 -#define invalid_double_type_comments_type 1218 -#define invalid_with_item_type 1219 -#define invalid_for_if_clause_type 1220 -#define invalid_for_target_type 1221 -#define invalid_group_type 1222 -#define invalid_import_type 1223 -#define invalid_import_from_targets_type 1224 -#define invalid_with_stmt_type 1225 -#define invalid_with_stmt_indent_type 1226 -#define invalid_try_stmt_type 1227 -#define invalid_except_stmt_type 1228 -#define invalid_except_star_stmt_type 1229 -#define invalid_finally_stmt_type 1230 -#define invalid_except_stmt_indent_type 1231 -#define invalid_except_star_stmt_indent_type 1232 -#define invalid_match_stmt_type 1233 -#define invalid_case_block_type 1234 -#define invalid_as_pattern_type 1235 -#define invalid_class_pattern_type 1236 -#define invalid_class_argument_pattern_type 1237 -#define invalid_if_stmt_type 1238 -#define invalid_elif_stmt_type 1239 -#define invalid_else_stmt_type 1240 -#define invalid_while_stmt_type 1241 -#define invalid_for_stmt_type 1242 -#define invalid_def_raw_type 1243 -#define invalid_class_def_raw_type 1244 -#define invalid_double_starred_kvpairs_type 1245 -#define invalid_kvpair_type 1246 -#define invalid_starred_expression_unpacking_type 1247 -#define invalid_starred_expression_type 1248 -#define invalid_replacement_field_type 1249 -#define invalid_conversion_character_type 1250 -#define invalid_arithmetic_type 1251 -#define invalid_factor_type 1252 -#define invalid_type_params_type 1253 -#define _loop0_1_type 1254 -#define _loop1_2_type 1255 -#define _loop0_3_type 1256 -#define _gather_4_type 1257 -#define _tmp_5_type 1258 -#define _tmp_6_type 1259 -#define _tmp_7_type 1260 -#define _tmp_8_type 1261 -#define _tmp_9_type 1262 -#define _tmp_10_type 1263 -#define _tmp_11_type 1264 -#define _loop1_12_type 1265 -#define _tmp_13_type 1266 -#define _loop0_14_type 1267 -#define _gather_15_type 1268 -#define _tmp_16_type 1269 -#define _tmp_17_type 1270 -#define _loop0_18_type 1271 -#define _loop1_19_type 1272 -#define _loop0_20_type 1273 -#define _gather_21_type 1274 -#define _tmp_22_type 1275 -#define _loop0_23_type 1276 -#define _gather_24_type 1277 -#define _loop1_25_type 1278 -#define _tmp_26_type 1279 -#define _tmp_27_type 1280 -#define _loop0_28_type 1281 -#define _loop0_29_type 1282 -#define _loop1_30_type 1283 -#define _loop1_31_type 1284 -#define _loop0_32_type 1285 -#define _loop1_33_type 1286 -#define _loop0_34_type 1287 -#define _gather_35_type 1288 -#define _tmp_36_type 1289 -#define _loop1_37_type 1290 -#define _loop1_38_type 1291 -#define _loop1_39_type 1292 -#define _loop0_40_type 1293 -#define _gather_41_type 1294 -#define _tmp_42_type 1295 -#define _tmp_43_type 1296 -#define _loop0_44_type 1297 -#define _gather_45_type 1298 -#define _loop0_46_type 1299 -#define _gather_47_type 1300 -#define _tmp_48_type 1301 -#define _loop0_49_type 1302 -#define _gather_50_type 1303 -#define _loop0_51_type 1304 -#define _gather_52_type 1305 -#define _loop0_53_type 1306 -#define _gather_54_type 1307 -#define _loop1_55_type 1308 -#define _loop1_56_type 1309 -#define _loop0_57_type 1310 -#define _gather_58_type 1311 -#define _loop1_59_type 1312 -#define _loop1_60_type 1313 -#define _loop1_61_type 1314 -#define _tmp_62_type 1315 -#define _loop0_63_type 1316 -#define _gather_64_type 1317 -#define _tmp_65_type 1318 -#define _tmp_66_type 1319 -#define _tmp_67_type 1320 -#define _tmp_68_type 1321 -#define _tmp_69_type 1322 -#define _tmp_70_type 1323 -#define _loop0_71_type 1324 -#define _loop0_72_type 1325 -#define _loop1_73_type 1326 -#define _loop1_74_type 1327 -#define _loop0_75_type 1328 -#define _loop1_76_type 1329 -#define _loop0_77_type 1330 -#define _loop0_78_type 1331 -#define _loop1_79_type 1332 -#define _tmp_80_type 1333 -#define _loop0_81_type 1334 -#define _gather_82_type 1335 -#define _loop1_83_type 1336 -#define _loop0_84_type 1337 -#define _tmp_85_type 1338 -#define _loop0_86_type 1339 -#define _gather_87_type 1340 -#define _tmp_88_type 1341 -#define _loop0_89_type 1342 -#define _gather_90_type 1343 -#define _loop0_91_type 1344 -#define _gather_92_type 1345 -#define _loop0_93_type 1346 -#define _loop0_94_type 1347 -#define _gather_95_type 1348 -#define _loop1_96_type 1349 -#define _tmp_97_type 1350 -#define _loop0_98_type 1351 -#define _gather_99_type 1352 -#define _loop0_100_type 1353 -#define _gather_101_type 1354 -#define _tmp_102_type 1355 -#define _tmp_103_type 1356 -#define _loop0_104_type 1357 -#define _gather_105_type 1358 -#define _tmp_106_type 1359 -#define _tmp_107_type 1360 -#define _tmp_108_type 1361 -#define _tmp_109_type 1362 -#define _tmp_110_type 1363 -#define _tmp_111_type 1364 -#define _tmp_112_type 1365 -#define _tmp_113_type 1366 -#define _tmp_114_type 1367 -#define _loop0_115_type 1368 -#define _loop0_116_type 1369 -#define _tmp_117_type 1370 -#define _tmp_118_type 1371 -#define _tmp_119_type 1372 -#define _tmp_120_type 1373 -#define _tmp_121_type 1374 -#define _tmp_122_type 1375 -#define _tmp_123_type 1376 -#define _tmp_124_type 1377 -#define _tmp_125_type 1378 -#define _loop0_126_type 1379 -#define _gather_127_type 1380 -#define _tmp_128_type 1381 -#define _tmp_129_type 1382 -#define _tmp_130_type 1383 -#define _tmp_131_type 1384 -#define _loop0_132_type 1385 -#define _gather_133_type 1386 -#define _loop0_134_type 1387 -#define _gather_135_type 1388 -#define _loop0_136_type 1389 -#define _gather_137_type 1390 -#define _tmp_138_type 1391 -#define _loop0_139_type 1392 -#define _tmp_140_type 1393 -#define _tmp_141_type 1394 -#define _tmp_142_type 1395 -#define _tmp_143_type 1396 -#define _tmp_144_type 1397 -#define _tmp_145_type 1398 -#define _tmp_146_type 1399 -#define _tmp_147_type 1400 -#define _tmp_148_type 1401 -#define _tmp_149_type 1402 -#define _tmp_150_type 1403 -#define _tmp_151_type 1404 -#define _tmp_152_type 1405 -#define _tmp_153_type 1406 -#define _tmp_154_type 1407 -#define _tmp_155_type 1408 -#define _tmp_156_type 1409 -#define _tmp_157_type 1410 -#define _tmp_158_type 1411 -#define _tmp_159_type 1412 -#define _tmp_160_type 1413 -#define _tmp_161_type 1414 -#define _tmp_162_type 1415 -#define _tmp_163_type 1416 -#define _tmp_164_type 1417 -#define _loop0_165_type 1418 -#define _tmp_166_type 1419 -#define _tmp_167_type 1420 -#define _tmp_168_type 1421 -#define _tmp_169_type 1422 +#define compound_stmt_type 1009 +#define assignment_type 1010 +#define annotated_rhs_type 1011 +#define augassign_type 1012 +#define return_stmt_type 1013 +#define raise_stmt_type 1014 +#define pass_stmt_type 1015 +#define break_stmt_type 1016 +#define continue_stmt_type 1017 +#define global_stmt_type 1018 +#define nonlocal_stmt_type 1019 +#define del_stmt_type 1020 +#define yield_stmt_type 1021 +#define assert_stmt_type 1022 +#define import_stmt_type 1023 +#define import_name_type 1024 +#define import_from_type 1025 +#define import_from_targets_type 1026 +#define import_from_as_names_type 1027 +#define import_from_as_name_type 1028 +#define dotted_as_names_type 1029 +#define dotted_as_name_type 1030 +#define dotted_name_type 1031 // Left-recursive +#define block_type 1032 +#define decorators_type 1033 +#define class_def_type 1034 +#define class_def_raw_type 1035 +#define function_def_type 1036 +#define function_def_raw_type 1037 +#define params_type 1038 +#define parameters_type 1039 +#define slash_no_default_type 1040 +#define slash_with_default_type 1041 +#define star_etc_type 1042 +#define kwds_type 1043 +#define param_no_default_type 1044 +#define param_no_default_star_annotation_type 1045 +#define param_with_default_type 1046 +#define param_maybe_default_type 1047 +#define param_type 1048 +#define param_star_annotation_type 1049 +#define annotation_type 1050 +#define star_annotation_type 1051 +#define default_type 1052 +#define if_stmt_type 1053 +#define elif_stmt_type 1054 +#define else_block_type 1055 +#define while_stmt_type 1056 +#define for_stmt_type 1057 +#define with_stmt_type 1058 +#define with_item_type 1059 +#define try_stmt_type 1060 +#define except_block_type 1061 +#define except_star_block_type 1062 +#define finally_block_type 1063 +#define match_stmt_type 1064 +#define subject_expr_type 1065 +#define case_block_type 1066 +#define guard_type 1067 +#define patterns_type 1068 +#define pattern_type 1069 +#define as_pattern_type 1070 +#define or_pattern_type 1071 +#define closed_pattern_type 1072 +#define literal_pattern_type 1073 +#define literal_expr_type 1074 +#define complex_number_type 1075 +#define signed_number_type 1076 +#define signed_real_number_type 1077 +#define real_number_type 1078 +#define imaginary_number_type 1079 +#define capture_pattern_type 1080 +#define pattern_capture_target_type 1081 +#define wildcard_pattern_type 1082 +#define value_pattern_type 1083 +#define attr_type 1084 // Left-recursive +#define name_or_attr_type 1085 // Left-recursive +#define group_pattern_type 1086 +#define sequence_pattern_type 1087 +#define open_sequence_pattern_type 1088 +#define maybe_sequence_pattern_type 1089 +#define maybe_star_pattern_type 1090 +#define star_pattern_type 1091 +#define mapping_pattern_type 1092 +#define items_pattern_type 1093 +#define key_value_pattern_type 1094 +#define double_star_pattern_type 1095 +#define class_pattern_type 1096 +#define positional_patterns_type 1097 +#define keyword_patterns_type 1098 +#define keyword_pattern_type 1099 +#define type_alias_type 1100 +#define type_params_type 1101 +#define type_param_seq_type 1102 +#define type_param_type 1103 +#define type_param_bound_type 1104 +#define type_param_default_type 1105 +#define type_param_starred_default_type 1106 +#define expressions_type 1107 +#define expression_type 1108 +#define yield_expr_type 1109 +#define star_expressions_type 1110 +#define star_expression_type 1111 +#define star_named_expressions_type 1112 +#define star_named_expression_type 1113 +#define assignment_expression_type 1114 +#define named_expression_type 1115 +#define disjunction_type 1116 +#define conjunction_type 1117 +#define inversion_type 1118 +#define comparison_type 1119 +#define compare_op_bitwise_or_pair_type 1120 +#define eq_bitwise_or_type 1121 +#define noteq_bitwise_or_type 1122 +#define lte_bitwise_or_type 1123 +#define lt_bitwise_or_type 1124 +#define gte_bitwise_or_type 1125 +#define gt_bitwise_or_type 1126 +#define notin_bitwise_or_type 1127 +#define in_bitwise_or_type 1128 +#define isnot_bitwise_or_type 1129 +#define is_bitwise_or_type 1130 +#define bitwise_or_type 1131 // Left-recursive +#define bitwise_xor_type 1132 // Left-recursive +#define bitwise_and_type 1133 // Left-recursive +#define shift_expr_type 1134 // Left-recursive +#define sum_type 1135 // Left-recursive +#define term_type 1136 // Left-recursive +#define factor_type 1137 +#define power_type 1138 +#define await_primary_type 1139 +#define primary_type 1140 // Left-recursive +#define slices_type 1141 +#define slice_type 1142 +#define atom_type 1143 +#define group_type 1144 +#define lambdef_type 1145 +#define lambda_params_type 1146 +#define lambda_parameters_type 1147 +#define lambda_slash_no_default_type 1148 +#define lambda_slash_with_default_type 1149 +#define lambda_star_etc_type 1150 +#define lambda_kwds_type 1151 +#define lambda_param_no_default_type 1152 +#define lambda_param_with_default_type 1153 +#define lambda_param_maybe_default_type 1154 +#define lambda_param_type 1155 +#define fstring_middle_type 1156 +#define fstring_replacement_field_type 1157 +#define fstring_conversion_type 1158 +#define fstring_full_format_spec_type 1159 +#define fstring_format_spec_type 1160 +#define fstring_type 1161 +#define string_type 1162 +#define strings_type 1163 +#define list_type 1164 +#define tuple_type 1165 +#define set_type 1166 +#define dict_type 1167 +#define double_starred_kvpairs_type 1168 +#define double_starred_kvpair_type 1169 +#define kvpair_type 1170 +#define for_if_clauses_type 1171 +#define for_if_clause_type 1172 +#define listcomp_type 1173 +#define setcomp_type 1174 +#define genexp_type 1175 +#define dictcomp_type 1176 +#define arguments_type 1177 +#define args_type 1178 +#define kwargs_type 1179 +#define starred_expression_type 1180 +#define kwarg_or_starred_type 1181 +#define kwarg_or_double_starred_type 1182 +#define star_targets_type 1183 +#define star_targets_list_seq_type 1184 +#define star_targets_tuple_seq_type 1185 +#define star_target_type 1186 +#define target_with_star_atom_type 1187 +#define star_atom_type 1188 +#define single_target_type 1189 +#define single_subscript_attribute_target_type 1190 +#define t_primary_type 1191 // Left-recursive +#define t_lookahead_type 1192 +#define del_targets_type 1193 +#define del_target_type 1194 +#define del_t_atom_type 1195 +#define type_expressions_type 1196 +#define func_type_comment_type 1197 +#define invalid_arguments_type 1198 +#define invalid_kwarg_type 1199 +#define expression_without_invalid_type 1200 +#define invalid_legacy_expression_type 1201 +#define invalid_type_param_type 1202 +#define invalid_ifexp_orelse_stmt_type 1203 +#define invalid_ifexp_body_stmt_type 1204 +#define invalid_expression_type 1205 +#define invalid_named_expression_type 1206 +#define invalid_assignment_type 1207 +#define invalid_ann_assign_target_type 1208 +#define invalid_del_stmt_type 1209 +#define invalid_block_type 1210 +#define invalid_comprehension_type 1211 +#define invalid_dict_comprehension_type 1212 +#define invalid_parameters_type 1213 +#define invalid_default_type 1214 +#define invalid_star_etc_type 1215 +#define invalid_kwds_type 1216 +#define invalid_parameters_helper_type 1217 +#define invalid_lambda_parameters_type 1218 +#define invalid_lambda_parameters_helper_type 1219 +#define invalid_lambda_star_etc_type 1220 +#define invalid_lambda_kwds_type 1221 +#define invalid_double_type_comments_type 1222 +#define invalid_with_item_type 1223 +#define invalid_for_if_clause_type 1224 +#define invalid_for_target_type 1225 +#define invalid_group_type 1226 +#define invalid_import_type 1227 +#define invalid_import_from_targets_type 1228 +#define invalid_with_stmt_type 1229 +#define invalid_with_stmt_indent_type 1230 +#define invalid_try_stmt_type 1231 +#define invalid_except_stmt_type 1232 +#define invalid_except_star_stmt_type 1233 +#define invalid_finally_stmt_type 1234 +#define invalid_except_stmt_indent_type 1235 +#define invalid_except_star_stmt_indent_type 1236 +#define invalid_match_stmt_type 1237 +#define invalid_case_block_type 1238 +#define invalid_as_pattern_type 1239 +#define invalid_class_pattern_type 1240 +#define invalid_class_argument_pattern_type 1241 +#define invalid_if_stmt_type 1242 +#define invalid_elif_stmt_type 1243 +#define invalid_else_stmt_type 1244 +#define invalid_while_stmt_type 1245 +#define invalid_for_stmt_type 1246 +#define invalid_def_raw_type 1247 +#define invalid_class_def_raw_type 1248 +#define invalid_double_starred_kvpairs_type 1249 +#define invalid_kvpair_type 1250 +#define invalid_starred_expression_unpacking_type 1251 +#define invalid_starred_expression_type 1252 +#define invalid_replacement_field_type 1253 +#define invalid_conversion_character_type 1254 +#define invalid_arithmetic_type 1255 +#define invalid_factor_type 1256 +#define invalid_type_params_type 1257 +#define _loop0_1_type 1258 +#define _loop1_2_type 1259 +#define _loop0_3_type 1260 +#define _gather_4_type 1261 +#define _tmp_5_type 1262 +#define _tmp_6_type 1263 +#define _tmp_7_type 1264 +#define _tmp_8_type 1265 +#define _tmp_9_type 1266 +#define _tmp_10_type 1267 +#define _tmp_11_type 1268 +#define _loop1_12_type 1269 +#define _tmp_13_type 1270 +#define _loop0_14_type 1271 +#define _gather_15_type 1272 +#define _tmp_16_type 1273 +#define _tmp_17_type 1274 +#define _loop0_18_type 1275 +#define _loop1_19_type 1276 +#define _loop0_20_type 1277 +#define _gather_21_type 1278 +#define _tmp_22_type 1279 +#define _loop0_23_type 1280 +#define _gather_24_type 1281 +#define _loop1_25_type 1282 +#define _tmp_26_type 1283 +#define _tmp_27_type 1284 +#define _loop0_28_type 1285 +#define _loop0_29_type 1286 +#define _loop1_30_type 1287 +#define _loop1_31_type 1288 +#define _loop0_32_type 1289 +#define _loop1_33_type 1290 +#define _loop0_34_type 1291 +#define _gather_35_type 1292 +#define _tmp_36_type 1293 +#define _loop1_37_type 1294 +#define _loop1_38_type 1295 +#define _loop1_39_type 1296 +#define _loop0_40_type 1297 +#define _gather_41_type 1298 +#define _tmp_42_type 1299 +#define _tmp_43_type 1300 +#define _loop0_44_type 1301 +#define _gather_45_type 1302 +#define _loop0_46_type 1303 +#define _gather_47_type 1304 +#define _tmp_48_type 1305 +#define _loop0_49_type 1306 +#define _gather_50_type 1307 +#define _loop0_51_type 1308 +#define _gather_52_type 1309 +#define _loop0_53_type 1310 +#define _gather_54_type 1311 +#define _loop1_55_type 1312 +#define _loop1_56_type 1313 +#define _loop0_57_type 1314 +#define _gather_58_type 1315 +#define _loop1_59_type 1316 +#define _loop1_60_type 1317 +#define _loop1_61_type 1318 +#define _tmp_62_type 1319 +#define _loop0_63_type 1320 +#define _gather_64_type 1321 +#define _tmp_65_type 1322 +#define _tmp_66_type 1323 +#define _tmp_67_type 1324 +#define _tmp_68_type 1325 +#define _tmp_69_type 1326 +#define _tmp_70_type 1327 +#define _loop0_71_type 1328 +#define _loop0_72_type 1329 +#define _loop1_73_type 1330 +#define _loop1_74_type 1331 +#define _loop0_75_type 1332 +#define _loop1_76_type 1333 +#define _loop0_77_type 1334 +#define _loop0_78_type 1335 +#define _loop1_79_type 1336 +#define _tmp_80_type 1337 +#define _loop0_81_type 1338 +#define _gather_82_type 1339 +#define _loop1_83_type 1340 +#define _loop0_84_type 1341 +#define _tmp_85_type 1342 +#define _loop0_86_type 1343 +#define _gather_87_type 1344 +#define _tmp_88_type 1345 +#define _loop0_89_type 1346 +#define _gather_90_type 1347 +#define _loop0_91_type 1348 +#define _gather_92_type 1349 +#define _loop0_93_type 1350 +#define _loop0_94_type 1351 +#define _gather_95_type 1352 +#define _loop1_96_type 1353 +#define _tmp_97_type 1354 +#define _loop0_98_type 1355 +#define _gather_99_type 1356 +#define _loop0_100_type 1357 +#define _gather_101_type 1358 +#define _tmp_102_type 1359 +#define _tmp_103_type 1360 +#define _loop0_104_type 1361 +#define _gather_105_type 1362 +#define _tmp_106_type 1363 +#define _tmp_107_type 1364 +#define _tmp_108_type 1365 +#define _tmp_109_type 1366 +#define _tmp_110_type 1367 +#define _tmp_111_type 1368 +#define _tmp_112_type 1369 +#define _tmp_113_type 1370 +#define _tmp_114_type 1371 +#define _loop0_115_type 1372 +#define _loop0_116_type 1373 +#define _tmp_117_type 1374 +#define _tmp_118_type 1375 +#define _tmp_119_type 1376 +#define _tmp_120_type 1377 +#define _tmp_121_type 1378 +#define _tmp_122_type 1379 +#define _tmp_123_type 1380 +#define _tmp_124_type 1381 +#define _tmp_125_type 1382 +#define _loop0_126_type 1383 +#define _gather_127_type 1384 +#define _tmp_128_type 1385 +#define _tmp_129_type 1386 +#define _tmp_130_type 1387 +#define _tmp_131_type 1388 +#define _loop0_132_type 1389 +#define _gather_133_type 1390 +#define _loop0_134_type 1391 +#define _gather_135_type 1392 +#define _loop0_136_type 1393 +#define _gather_137_type 1394 +#define _tmp_138_type 1395 +#define _loop0_139_type 1396 +#define _tmp_140_type 1397 +#define _tmp_141_type 1398 +#define _tmp_142_type 1399 +#define _tmp_143_type 1400 +#define _tmp_144_type 1401 +#define _tmp_145_type 1402 +#define _tmp_146_type 1403 +#define _tmp_147_type 1404 +#define _tmp_148_type 1405 +#define _tmp_149_type 1406 +#define _tmp_150_type 1407 +#define _tmp_151_type 1408 +#define _tmp_152_type 1409 +#define _tmp_153_type 1410 +#define _tmp_154_type 1411 +#define _tmp_155_type 1412 +#define _tmp_156_type 1413 +#define _tmp_157_type 1414 +#define _tmp_158_type 1415 +#define _tmp_159_type 1416 +#define _tmp_160_type 1417 +#define _tmp_161_type 1418 +#define _tmp_162_type 1419 +#define _tmp_163_type 1420 +#define _tmp_164_type 1421 +#define _loop0_165_type 1422 +#define _tmp_166_type 1423 +#define _tmp_167_type 1424 +#define _tmp_168_type 1425 +#define _tmp_169_type 1426 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -517,13 +521,15 @@ static asdl_stmt_seq* statement_rule(Parser *p); static asdl_stmt_seq* statement_newline_rule(Parser *p); static asdl_stmt_seq* simple_stmts_rule(Parser *p); static stmt_ty simple_stmt_rule(Parser *p); -static stmt_ty simple_stmt_without_expressions_rule(Parser *p); static stmt_ty compound_stmt_rule(Parser *p); static stmt_ty assignment_rule(Parser *p); static expr_ty annotated_rhs_rule(Parser *p); static AugOperator* augassign_rule(Parser *p); static stmt_ty return_stmt_rule(Parser *p); static stmt_ty raise_stmt_rule(Parser *p); +static stmt_ty pass_stmt_rule(Parser *p); +static stmt_ty break_stmt_rule(Parser *p); +static stmt_ty continue_stmt_rule(Parser *p); static stmt_ty global_stmt_rule(Parser *p); static stmt_ty nonlocal_stmt_rule(Parser *p); static stmt_ty del_stmt_rule(Parser *p); @@ -709,6 +715,8 @@ static void *invalid_kwarg_rule(Parser *p); static expr_ty expression_without_invalid_rule(Parser *p); static void *invalid_legacy_expression_rule(Parser *p); static void *invalid_type_param_rule(Parser *p); +static stmt_ty invalid_ifexp_orelse_stmt_rule(Parser *p); +static stmt_ty invalid_ifexp_body_stmt_rule(Parser *p); static void *invalid_expression_rule(Parser *p); static void *invalid_named_expression_rule(Parser *p); static void *invalid_assignment_rule(Parser *p); @@ -1456,7 +1464,17 @@ simple_stmts_rule(Parser *p) // | assignment // | &"type" type_alias // | star_expressions -// | simple_stmt_without_expressions +// | &'return' return_stmt +// | &('import' | 'from') import_stmt +// | &'raise' raise_stmt +// | &'pass' pass_stmt +// | &'del' del_stmt +// | &'yield' yield_stmt +// | &'assert' assert_stmt +// | &'break' break_stmt +// | &'continue' continue_stmt +// | &'global' global_stmt +// | &'nonlocal' nonlocal_stmt static stmt_ty simple_stmt_rule(Parser *p) { @@ -1555,71 +1573,12 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_expressions")); } - { // simple_stmt_without_expressions - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions")); - stmt_ty simple_stmt_without_expressions_var; - if ( - (simple_stmt_without_expressions_var = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions - ) - { - D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions")); - _res = simple_stmt_without_expressions_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt_without_expressions")); - } - _res = NULL; - done: - _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res); - p->level--; - return _res; -} - -// simple_stmt_without_expressions: -// | &'return' return_stmt -// | &('import' | 'from') import_stmt -// | &'raise' raise_stmt -// | 'pass' -// | &'del' del_stmt -// | &'yield' yield_stmt -// | &'assert' assert_stmt -// | 'break' -// | 'continue' -// | &'global' global_stmt -// | &'nonlocal' nonlocal_stmt -static stmt_ty -simple_stmt_without_expressions_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - _Pypegen_stack_overflow(p); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - stmt_ty _res = NULL; - int _mark = p->mark; - if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { - p->error_indicator = 1; - p->level--; - return NULL; - } - int _start_lineno = p->tokens[_mark]->lineno; - UNUSED(_start_lineno); // Only used by EXTRA macro - int _start_col_offset = p->tokens[_mark]->col_offset; - UNUSED(_start_col_offset); // Only used by EXTRA macro { // &'return' return_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); stmt_ty return_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 522) // token='return' @@ -1627,12 +1586,12 @@ simple_stmt_without_expressions_rule(Parser *p) (return_stmt_var = return_stmt_rule(p)) // return_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'return' return_stmt")); _res = return_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'return' return_stmt")); } { // &('import' | 'from') import_stmt @@ -1640,7 +1599,7 @@ simple_stmt_without_expressions_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); stmt_ty import_stmt_var; if ( _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_5_rule, p) @@ -1648,12 +1607,12 @@ simple_stmt_without_expressions_rule(Parser *p) (import_stmt_var = import_stmt_rule(p)) // import_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&('import' | 'from') import_stmt")); _res = import_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&('import' | 'from') import_stmt")); } { // &'raise' raise_stmt @@ -1661,7 +1620,7 @@ simple_stmt_without_expressions_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); stmt_ty raise_stmt_var; if ( _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 525) // token='raise' @@ -1669,66 +1628,54 @@ simple_stmt_without_expressions_rule(Parser *p) (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'raise' raise_stmt")); _res = raise_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'raise' raise_stmt")); } - { // 'pass' + { // &'pass' pass_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'")); - Token * _keyword; + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'pass' pass_stmt")); + stmt_ty pass_stmt_var; if ( - (_keyword = _PyPegen_expect_token(p, 504)) // token='pass' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526) // token='pass' + && + (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'")); - Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); - if (_token == NULL) { - p->level--; - return NULL; - } - int _end_lineno = _token->end_lineno; - UNUSED(_end_lineno); // Only used by EXTRA macro - int _end_col_offset = _token->end_col_offset; - UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = _PyAST_Pass ( EXTRA ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'pass' pass_stmt")); + _res = pass_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'")); + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'pass' pass_stmt")); } { // &'del' del_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); stmt_ty del_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 619) // token='del' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 622) // token='del' && (del_stmt_var = del_stmt_rule(p)) // del_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); _res = del_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'del' del_stmt")); } { // &'yield' yield_stmt @@ -1736,20 +1683,20 @@ simple_stmt_without_expressions_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); stmt_ty yield_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 580) // token='yield' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 583) // token='yield' && (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'yield' yield_stmt")); _res = yield_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'yield' yield_stmt")); } { // &'assert' assert_stmt @@ -1757,107 +1704,83 @@ simple_stmt_without_expressions_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); stmt_ty assert_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 529) // token='assert' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 532) // token='assert' && (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'assert' assert_stmt")); _res = assert_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'assert' assert_stmt")); } - { // 'break' + { // &'break' break_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'")); - Token * _keyword; + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'break' break_stmt")); + stmt_ty break_stmt_var; if ( - (_keyword = _PyPegen_expect_token(p, 508)) // token='break' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 527) // token='break' + && + (break_stmt_var = break_stmt_rule(p)) // break_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'")); - Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); - if (_token == NULL) { - p->level--; - return NULL; - } - int _end_lineno = _token->end_lineno; - UNUSED(_end_lineno); // Only used by EXTRA macro - int _end_col_offset = _token->end_col_offset; - UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = _PyAST_Break ( EXTRA ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'break' break_stmt")); + _res = break_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'")); + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'break' break_stmt")); } - { // 'continue' + { // &'continue' continue_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'")); - Token * _keyword; + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'continue' continue_stmt")); + stmt_ty continue_stmt_var; if ( - (_keyword = _PyPegen_expect_token(p, 509)) // token='continue' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 528) // token='continue' + && + (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'")); - Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); - if (_token == NULL) { - p->level--; - return NULL; - } - int _end_lineno = _token->end_lineno; - UNUSED(_end_lineno); // Only used by EXTRA macro - int _end_col_offset = _token->end_col_offset; - UNUSED(_end_col_offset); // Only used by EXTRA macro - _res = _PyAST_Continue ( EXTRA ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'continue' continue_stmt")); + _res = continue_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'")); + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'continue' continue_stmt")); } { // &'global' global_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); stmt_ty global_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 526) // token='global' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 529) // token='global' && (global_stmt_var = global_stmt_rule(p)) // global_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'global' global_stmt")); _res = global_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'global' global_stmt")); } { // &'nonlocal' nonlocal_stmt @@ -1865,24 +1788,25 @@ simple_stmt_without_expressions_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> simple_stmt_without_expressions[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); + D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); stmt_ty nonlocal_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 527) // token='nonlocal' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 530) // token='nonlocal' && (nonlocal_stmt_var = nonlocal_stmt_rule(p)) // nonlocal_stmt ) { - D(fprintf(stderr, "%*c+ simple_stmt_without_expressions[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); + D(fprintf(stderr, "%*c+ simple_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "&'nonlocal' nonlocal_stmt")); _res = nonlocal_stmt_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s simple_stmt_without_expressions[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s simple_stmt[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "&'nonlocal' nonlocal_stmt")); } _res = NULL; done: + _PyPegen_insert_memo(p, _mark, simple_stmt_type, _res); p->level--; return _res; } @@ -1937,7 +1861,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); stmt_ty if_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 674) // token='if' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 677) // token='if' && (if_stmt_var = if_stmt_rule(p)) // if_stmt ) @@ -2021,7 +1945,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); stmt_ty try_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 648) // token='try' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 651) // token='try' && (try_stmt_var = try_stmt_rule(p)) // try_stmt ) @@ -2042,7 +1966,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 679) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 682) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -2868,6 +2792,189 @@ raise_stmt_rule(Parser *p) return _res; } +// pass_stmt: 'pass' +static stmt_ty +pass_stmt_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + stmt_ty _res = NULL; + int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro + { // 'pass' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> pass_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'pass'")); + Token * _keyword; + if ( + (_keyword = _PyPegen_expect_token(p, 526)) // token='pass' + ) + { + D(fprintf(stderr, "%*c+ pass_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'pass'")); + Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); + if (_token == NULL) { + p->level--; + return NULL; + } + int _end_lineno = _token->end_lineno; + UNUSED(_end_lineno); // Only used by EXTRA macro + int _end_col_offset = _token->end_col_offset; + UNUSED(_end_col_offset); // Only used by EXTRA macro + _res = _PyAST_Pass ( EXTRA ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s pass_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'pass'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// break_stmt: 'break' +static stmt_ty +break_stmt_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + stmt_ty _res = NULL; + int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro + { // 'break' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> break_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'break'")); + Token * _keyword; + if ( + (_keyword = _PyPegen_expect_token(p, 527)) // token='break' + ) + { + D(fprintf(stderr, "%*c+ break_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'break'")); + Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); + if (_token == NULL) { + p->level--; + return NULL; + } + int _end_lineno = _token->end_lineno; + UNUSED(_end_lineno); // Only used by EXTRA macro + int _end_col_offset = _token->end_col_offset; + UNUSED(_end_col_offset); // Only used by EXTRA macro + _res = _PyAST_Break ( EXTRA ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s break_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'break'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// continue_stmt: 'continue' +static stmt_ty +continue_stmt_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + stmt_ty _res = NULL; + int _mark = p->mark; + if (p->mark == p->fill && _PyPegen_fill_token(p) < 0) { + p->error_indicator = 1; + p->level--; + return NULL; + } + int _start_lineno = p->tokens[_mark]->lineno; + UNUSED(_start_lineno); // Only used by EXTRA macro + int _start_col_offset = p->tokens[_mark]->col_offset; + UNUSED(_start_col_offset); // Only used by EXTRA macro + { // 'continue' + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> continue_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'continue'")); + Token * _keyword; + if ( + (_keyword = _PyPegen_expect_token(p, 528)) // token='continue' + ) + { + D(fprintf(stderr, "%*c+ continue_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'continue'")); + Token *_token = _PyPegen_get_last_nonnwhitespace_token(p); + if (_token == NULL) { + p->level--; + return NULL; + } + int _end_lineno = _token->end_lineno; + UNUSED(_end_lineno); // Only used by EXTRA macro + int _end_col_offset = _token->end_col_offset; + UNUSED(_end_col_offset); // Only used by EXTRA macro + _res = _PyAST_Continue ( EXTRA ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s continue_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'continue'")); + } + _res = NULL; + done: + p->level--; + return _res; +} + // global_stmt: 'global' ','.NAME+ static stmt_ty global_stmt_rule(Parser *p) @@ -2899,7 +3006,7 @@ global_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 526)) // token='global' + (_keyword = _PyPegen_expect_token(p, 529)) // token='global' && (a = (asdl_expr_seq*)_gather_15_rule(p)) // ','.NAME+ ) @@ -2963,7 +3070,7 @@ nonlocal_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 527)) // token='nonlocal' + (_keyword = _PyPegen_expect_token(p, 530)) // token='nonlocal' && (a = (asdl_expr_seq*)_gather_15_rule(p)) // ','.NAME+ ) @@ -3027,7 +3134,7 @@ del_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='del' + (_keyword = _PyPegen_expect_token(p, 622)) // token='del' && (a = del_targets_rule(p)) // del_targets && @@ -3174,7 +3281,7 @@ assert_stmt_rule(Parser *p) expr_ty a; void *b; if ( - (_keyword = _PyPegen_expect_token(p, 529)) // token='assert' + (_keyword = _PyPegen_expect_token(p, 532)) // token='assert' && (a = expression_rule(p)) // expression && @@ -3316,7 +3423,7 @@ import_name_rule(Parser *p) Token * _keyword; asdl_alias_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 628)) // token='import' + (_keyword = _PyPegen_expect_token(p, 631)) // token='import' && (a = dotted_as_names_rule(p)) // dotted_as_names ) @@ -3385,13 +3492,13 @@ import_from_rule(Parser *p) expr_ty b; asdl_alias_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 627)) // token='from' + (_keyword = _PyPegen_expect_token(p, 630)) // token='from' && (a = _loop0_18_rule(p)) // (('.' | '...'))* && (b = dotted_name_rule(p)) // dotted_name && - (_keyword_1 = _PyPegen_expect_token(p, 628)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='import' && (c = import_from_targets_rule(p)) // import_from_targets ) @@ -3429,11 +3536,11 @@ import_from_rule(Parser *p) asdl_seq * a; asdl_alias_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 627)) // token='from' + (_keyword = _PyPegen_expect_token(p, 630)) // token='from' && (a = _loop1_19_rule(p)) // (('.' | '...'))+ && - (_keyword_1 = _PyPegen_expect_token(p, 628)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='import' && (b = import_from_targets_rule(p)) // import_from_targets ) @@ -4182,7 +4289,7 @@ class_def_raw_rule(Parser *p) asdl_stmt_seq* c; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='class' + (_keyword = _PyPegen_expect_token(p, 694)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && @@ -4349,7 +4456,7 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 689)) // token='def' + (_keyword = _PyPegen_expect_token(p, 692)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4410,9 +4517,9 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='def' + (_keyword_1 = _PyPegen_expect_token(p, 692)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -5750,7 +5857,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5795,7 +5902,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5890,7 +5997,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 676)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 679)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -5935,7 +6042,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 676)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 679)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -6016,7 +6123,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword = _PyPegen_expect_token(p, 680)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6095,7 +6202,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 679)) // token='while' + (_keyword = _PyPegen_expect_token(p, 682)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -6195,11 +6302,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -6257,13 +6364,13 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -6392,7 +6499,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6443,7 +6550,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && (a = (asdl_withitem_seq*)_gather_35_rule(p)) // ','.with_item+ && @@ -6492,9 +6599,9 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6544,9 +6651,9 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' && (a = (asdl_withitem_seq*)_gather_35_rule(p)) // ','.with_item+ && @@ -6632,7 +6739,7 @@ with_item_rule(Parser *p) if ( (e = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (t = star_target_rule(p)) // star_target && @@ -6757,7 +6864,7 @@ try_stmt_rule(Parser *p) asdl_stmt_seq* b; asdl_stmt_seq* f; if ( - (_keyword = _PyPegen_expect_token(p, 648)) // token='try' + (_keyword = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6801,7 +6908,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 648)) // token='try' + (_keyword = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6849,7 +6956,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 648)) // token='try' + (_keyword = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6947,7 +7054,7 @@ except_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (e = expression_rule(p)) // expression && @@ -6990,7 +7097,7 @@ except_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -7101,7 +7208,7 @@ except_star_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -7203,7 +7310,7 @@ finally_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 665)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 668)) // token='finally' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -7511,7 +7618,7 @@ guard_rule(Parser *p) Token * _keyword; expr_ty guard; if ( - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (guard = named_expression_rule(p)) // named_expression ) @@ -7706,7 +7813,7 @@ as_pattern_rule(Parser *p) if ( (pattern = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (target = pattern_capture_target_rule(p)) // pattern_capture_target ) @@ -8140,7 +8247,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 617)) // token='None' + (_keyword = _PyPegen_expect_token(p, 620)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8173,7 +8280,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 616)) // token='True' + (_keyword = _PyPegen_expect_token(p, 619)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8206,7 +8313,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 618)) // token='False' + (_keyword = _PyPegen_expect_token(p, 621)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -8332,7 +8439,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 617)) // token='None' + (_keyword = _PyPegen_expect_token(p, 620)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8365,7 +8472,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 616)) // token='True' + (_keyword = _PyPegen_expect_token(p, 619)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8398,7 +8505,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 618)) // token='False' + (_keyword = _PyPegen_expect_token(p, 621)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -11001,11 +11108,11 @@ expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = expression_rule(p)) // expression ) @@ -11109,9 +11216,9 @@ yield_expr_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 580)) // token='yield' + (_keyword = _PyPegen_expect_token(p, 583)) // token='yield' && - (_keyword_1 = _PyPegen_expect_token(p, 627)) // token='from' + (_keyword_1 = _PyPegen_expect_token(p, 630)) // token='from' && (a = expression_rule(p)) // expression ) @@ -11147,7 +11254,7 @@ yield_expr_rule(Parser *p) Token * _keyword; void *a; if ( - (_keyword = _PyPegen_expect_token(p, 580)) // token='yield' + (_keyword = _PyPegen_expect_token(p, 583)) // token='yield' && (a = star_expressions_rule(p), !p->error_indicator) // star_expressions? ) @@ -11887,7 +11994,7 @@ inversion_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 693)) // token='not' + (_keyword = _PyPegen_expect_token(p, 696)) // token='not' && (a = inversion_rule(p)) // inversion ) @@ -12541,9 +12648,9 @@ notin_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 693)) // token='not' + (_keyword = _PyPegen_expect_token(p, 696)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12589,7 +12696,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword = _PyPegen_expect_token(p, 688)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12636,9 +12743,9 @@ isnot_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 589)) // token='is' + (_keyword = _PyPegen_expect_token(p, 592)) // token='is' && - (_keyword_1 = _PyPegen_expect_token(p, 693)) // token='not' + (_keyword_1 = _PyPegen_expect_token(p, 696)) // token='not' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12684,7 +12791,7 @@ is_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 589)) // token='is' + (_keyword = _PyPegen_expect_token(p, 592)) // token='is' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -14000,7 +14107,7 @@ await_primary_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 590)) // token='await' + (_keyword = _PyPegen_expect_token(p, 593)) // token='await' && (a = primary_rule(p)) // primary ) @@ -14544,7 +14651,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 616)) // token='True' + (_keyword = _PyPegen_expect_token(p, 619)) // token='True' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -14577,7 +14684,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 618)) // token='False' + (_keyword = _PyPegen_expect_token(p, 621)) // token='False' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -14610,7 +14717,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 617)) // token='None' + (_keyword = _PyPegen_expect_token(p, 620)) // token='None' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -14878,7 +14985,7 @@ lambdef_rule(Parser *p) void *a; expr_ty b; if ( - (_keyword = _PyPegen_expect_token(p, 615)) // token='lambda' + (_keyword = _PyPegen_expect_token(p, 618)) // token='lambda' && (a = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -16809,13 +16916,13 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -16854,11 +16961,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -20159,11 +20266,11 @@ expression_without_invalid_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20372,12 +20479,267 @@ invalid_type_param_rule(Parser *p) return _res; } +// invalid_ifexp_orelse_stmt: +// | return_stmt +// | raise_stmt +// | pass_stmt +// | del_stmt +// | yield_stmt +// | assert_stmt +// | break_stmt +// | continue_stmt +static stmt_ty +invalid_ifexp_orelse_stmt_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + stmt_ty _res = NULL; + int _mark = p->mark; + { // return_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "return_stmt")); + stmt_ty return_stmt_var; + if ( + (return_stmt_var = return_stmt_rule(p)) // return_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "return_stmt")); + _res = return_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "return_stmt")); + } + { // raise_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "raise_stmt")); + stmt_ty raise_stmt_var; + if ( + (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "raise_stmt")); + _res = raise_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "raise_stmt")); + } + { // pass_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + stmt_ty pass_stmt_var; + if ( + (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + _res = pass_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); + } + { // del_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_stmt")); + stmt_ty del_stmt_var; + if ( + (del_stmt_var = del_stmt_rule(p)) // del_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_stmt")); + _res = del_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_stmt")); + } + { // yield_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_stmt")); + stmt_ty yield_stmt_var; + if ( + (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_stmt")); + _res = yield_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_stmt")); + } + { // assert_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assert_stmt")); + stmt_ty assert_stmt_var; + if ( + (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assert_stmt")); + _res = assert_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assert_stmt")); + } + { // break_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); + stmt_ty break_stmt_var; + if ( + (break_stmt_var = break_stmt_rule(p)) // break_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); + _res = break_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); + } + { // continue_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + stmt_ty continue_stmt_var; + if ( + (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + _res = continue_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// invalid_ifexp_body_stmt: pass_stmt | break_stmt | continue_stmt +static stmt_ty +invalid_ifexp_body_stmt_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + stmt_ty _res = NULL; + int _mark = p->mark; + { // pass_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_body_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + stmt_ty pass_stmt_var; + if ( + (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_body_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + _res = pass_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_body_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); + } + { // break_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_body_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); + stmt_ty break_stmt_var; + if ( + (break_stmt_var = break_stmt_rule(p)) // break_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_body_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); + _res = break_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_body_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); + } + { // continue_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_ifexp_body_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + stmt_ty continue_stmt_var; + if ( + (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_ifexp_body_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + _res = continue_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_ifexp_body_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); + } + _res = NULL; + done: + p->level--; + return _res; +} + // invalid_expression: // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid // | disjunction 'if' disjunction !('else' | ':') -// | disjunction 'if' disjunction 'else' simple_stmt_without_expressions -// | simple_stmt_without_expressions 'if' disjunction 'else' expression -// | simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions +// | disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt +// | invalid_ifexp_body_stmt 'if' disjunction 'else' expression +// | invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt // | 'lambda' lambda_params? ':' &FSTRING_MIDDLE static void * invalid_expression_rule(Parser *p) @@ -20432,7 +20794,7 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (b = disjunction_rule(p)) // disjunction && @@ -20452,12 +20814,12 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } - { // disjunction 'if' disjunction 'else' simple_stmt_without_expressions + { // disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' simple_stmt_without_expressions")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); Token * _keyword; Token * _keyword_1; expr_ty a; @@ -20466,16 +20828,16 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && - (c = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' simple_stmt_without_expressions")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( c , "statement given where 'orelse' expression required" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -20486,32 +20848,32 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' simple_stmt_without_expressions")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); } - { // simple_stmt_without_expressions 'if' disjunction 'else' expression + { // invalid_ifexp_body_stmt 'if' disjunction 'else' expression if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' expression")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' expression")); Token * _keyword; Token * _keyword_1; stmt_ty a; expr_ty b; expr_ty c; if ( - (a = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + (a = invalid_ifexp_body_stmt_rule(p)) // invalid_ifexp_body_stmt && - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = expression_rule(p)) // expression ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' expression")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' expression")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -20522,32 +20884,32 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' expression")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' expression")); } - { // simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions + { // invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); Token * _keyword; Token * _keyword_1; stmt_ty a; expr_ty b; stmt_ty c; if ( - (a = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + (a = invalid_ifexp_body_stmt_rule(p)) // invalid_ifexp_body_stmt && - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && - (c = simple_stmt_without_expressions_rule(p)) // simple_stmt_without_expressions + (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -20558,7 +20920,7 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "simple_stmt_without_expressions 'if' disjunction 'else' simple_stmt_without_expressions")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); } { // 'lambda' lambda_params? ':' &FSTRING_MIDDLE if (p->error_indicator) { @@ -20571,7 +20933,7 @@ invalid_expression_rule(Parser *p) Token * a; Token * b; if ( - (a = _PyPegen_expect_token(p, 615)) // token='lambda' + (a = _PyPegen_expect_token(p, 618)) // token='lambda' && (_opt_var = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -21042,7 +21404,7 @@ invalid_del_stmt_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='del' + (_keyword = _PyPegen_expect_token(p, 622)) // token='del' && (a = star_expressions_rule(p)) // star_expressions ) @@ -22478,7 +22840,7 @@ invalid_with_item_rule(Parser *p) if ( (expression_var = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (a = expression_rule(p)) // expression && @@ -22528,13 +22890,13 @@ invalid_for_if_clause_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings void *_tmp_131_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (_tmp_131_var = _tmp_131_rule(p)) // bitwise_or ((',' bitwise_or))* ','? && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 685) // token='in' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 688) // token='in' ) { D(fprintf(stderr, "%*c+ invalid_for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'")); @@ -22580,9 +22942,9 @@ invalid_for_target_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings expr_ty a; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -22712,11 +23074,11 @@ invalid_import_rule(Parser *p) Token * a; expr_ty dotted_name_var; if ( - (a = _PyPegen_expect_token(p, 628)) // token='import' + (a = _PyPegen_expect_token(p, 631)) // token='import' && (_gather_133_var = _gather_133_rule(p)) // ','.dotted_name+ && - (_keyword = _PyPegen_expect_token(p, 627)) // token='from' + (_keyword = _PyPegen_expect_token(p, 630)) // token='from' && (dotted_name_var = dotted_name_rule(p)) // dotted_name ) @@ -22743,7 +23105,7 @@ invalid_import_rule(Parser *p) Token * _keyword; Token * token; if ( - (_keyword = _PyPegen_expect_token(p, 628)) // token='import' + (_keyword = _PyPegen_expect_token(p, 631)) // token='import' && (token = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -22867,9 +23229,9 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && (_gather_135_var = _gather_135_rule(p)) // ','.(expression ['as' star_target])+ && @@ -22905,9 +23267,9 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var_1); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -22967,9 +23329,9 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 639)) // token='with' + (a = _PyPegen_expect_token(p, 642)) // token='with' && (_gather_135_var = _gather_135_rule(p)) // ','.(expression ['as' star_target])+ && @@ -23010,9 +23372,9 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 639)) // token='with' + (a = _PyPegen_expect_token(p, 642)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -23075,7 +23437,7 @@ invalid_try_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 648)) // token='try' + (a = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23107,7 +23469,7 @@ invalid_try_stmt_rule(Parser *p) Token * _literal; asdl_stmt_seq* block_var; if ( - (_keyword = _PyPegen_expect_token(p, 648)) // token='try' + (_keyword = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23146,7 +23508,7 @@ invalid_try_stmt_rule(Parser *p) Token * b; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 648)) // token='try' + (_keyword = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23154,7 +23516,7 @@ invalid_try_stmt_rule(Parser *p) && (_loop1_37_var = _loop1_37_rule(p)) // except_block+ && - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (b = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23193,7 +23555,7 @@ invalid_try_stmt_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings Token * a; if ( - (_keyword = _PyPegen_expect_token(p, 648)) // token='try' + (_keyword = _PyPegen_expect_token(p, 651)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23201,7 +23563,7 @@ invalid_try_stmt_rule(Parser *p) && (_loop1_38_var = _loop1_38_rule(p)) // except_star_block+ && - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (_opt_var = _tmp_140_rule(p), !p->error_indicator) // [expression ['as' NAME]] && @@ -23258,7 +23620,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (a = expression_rule(p)) // expression && @@ -23296,7 +23658,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -23327,7 +23689,7 @@ invalid_except_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23356,11 +23718,11 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (expression_var = expression_rule(p)) // expression && - (_keyword_1 = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword_1 = _PyPegen_expect_token(p, 675)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23416,7 +23778,7 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23457,7 +23819,7 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23491,7 +23853,7 @@ invalid_except_star_stmt_rule(Parser *p) void *_tmp_141_var; Token * a; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23523,13 +23885,13 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty a; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && (expression_var = expression_rule(p)) // expression && - (_keyword_1 = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword_1 = _PyPegen_expect_token(p, 675)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23576,7 +23938,7 @@ invalid_finally_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 665)) // token='finally' + (a = _PyPegen_expect_token(p, 668)) // token='finally' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23632,7 +23994,7 @@ invalid_except_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -23668,7 +24030,7 @@ invalid_except_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23724,7 +24086,7 @@ invalid_except_star_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 669)) // token='except' + (a = _PyPegen_expect_token(p, 672)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23963,7 +24325,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"' ) @@ -23993,7 +24355,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (a = expression_rule(p)) // expression ) @@ -24145,7 +24507,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24176,7 +24538,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty a_1; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 674)) // token='if' + (a = _PyPegen_expect_token(p, 677)) // token='if' && (a_1 = named_expression_rule(p)) // named_expression && @@ -24231,7 +24593,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 676)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 679)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24262,7 +24624,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 676)) // token='elif' + (a = _PyPegen_expect_token(p, 679)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24315,7 +24677,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 677)) // token='else' + (a = _PyPegen_expect_token(p, 680)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24368,7 +24730,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 679)) // token='while' + (_keyword = _PyPegen_expect_token(p, 682)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24399,7 +24761,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 679)) // token='while' + (a = _PyPegen_expect_token(p, 682)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24458,13 +24820,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24499,13 +24861,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 684)) // token='for' + (a = _PyPegen_expect_token(p, 687)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 685)) // token='in' + (_keyword = _PyPegen_expect_token(p, 688)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24571,9 +24933,9 @@ invalid_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 689)) // token='def' + (a = _PyPegen_expect_token(p, 692)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24630,9 +24992,9 @@ invalid_def_raw_rule(Parser *p) asdl_stmt_seq* block_var; expr_ty name_var; if ( - (_opt_var = _PyPegen_expect_token(p, 688), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 689)) // token='def' + (_keyword = _PyPegen_expect_token(p, 692)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24696,7 +25058,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='class' + (_keyword = _PyPegen_expect_token(p, 694)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24735,7 +25097,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 691)) // token='class' + (a = _PyPegen_expect_token(p, 694)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25553,7 +25915,7 @@ invalid_arithmetic_rule(Parser *p) && (_tmp_148_var = _tmp_148_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' && - (a = _PyPegen_expect_token(p, 693)) // token='not' + (a = _PyPegen_expect_token(p, 696)) // token='not' && (b = inversion_rule(p)) // inversion ) @@ -25602,7 +25964,7 @@ invalid_factor_rule(Parser *p) if ( (_tmp_149_var = _tmp_149_rule(p)) // '+' | '-' | '~' && - (a = _PyPegen_expect_token(p, 693)) // token='not' + (a = _PyPegen_expect_token(p, 696)) // token='not' && (b = factor_rule(p)) // factor ) @@ -25949,7 +26311,7 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 628)) // token='import' + (_keyword = _PyPegen_expect_token(p, 631)) // token='import' ) { D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); @@ -25968,7 +26330,7 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 627)) // token='from' + (_keyword = _PyPegen_expect_token(p, 630)) // token='from' ) { D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); @@ -26006,7 +26368,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 689)) // token='def' + (_keyword = _PyPegen_expect_token(p, 692)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -26044,7 +26406,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26082,7 +26444,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='class' + (_keyword = _PyPegen_expect_token(p, 694)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -26139,7 +26501,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 639)) // token='with' + (_keyword = _PyPegen_expect_token(p, 642)) // token='with' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); @@ -26158,7 +26520,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26196,7 +26558,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 684)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -26215,7 +26577,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26440,7 +26802,7 @@ _tmp_13_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 627)) // token='from' + (_keyword = _PyPegen_expect_token(p, 630)) // token='from' && (z = expression_rule(p)) // expression ) @@ -26962,7 +27324,7 @@ _tmp_22_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) @@ -32324,7 +32686,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 616)) // token='True' + (_keyword = _PyPegen_expect_token(p, 619)) // token='True' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -32343,7 +32705,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 618)) // token='False' + (_keyword = _PyPegen_expect_token(p, 621)) // token='False' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -32362,7 +32724,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 617)) // token='None' + (_keyword = _PyPegen_expect_token(p, 620)) // token='None' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -32501,7 +32863,7 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='else' + (_keyword = _PyPegen_expect_token(p, 680)) // token='else' ) { D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); @@ -32672,7 +33034,7 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 616)) // token='True' + (_keyword = _PyPegen_expect_token(p, 619)) // token='True' ) { D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -32691,7 +33053,7 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 617)) // token='None' + (_keyword = _PyPegen_expect_token(p, 620)) // token='None' ) { D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -32710,7 +33072,7 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 618)) // token='False' + (_keyword = _PyPegen_expect_token(p, 621)) // token='False' ) { D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -34123,7 +34485,7 @@ _tmp_138_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 669)) // token='except' + (_keyword = _PyPegen_expect_token(p, 672)) // token='except' ) { D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); @@ -34142,7 +34504,7 @@ _tmp_138_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 665)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 668)) // token='finally' ) { D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); @@ -35140,7 +35502,7 @@ _tmp_154_rule(Parser *p) Token * _keyword; expr_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 581)) // token='or' + (_keyword = _PyPegen_expect_token(p, 584)) // token='or' && (c = conjunction_rule(p)) // conjunction ) @@ -35186,7 +35548,7 @@ _tmp_155_rule(Parser *p) Token * _keyword; expr_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 582)) // token='and' + (_keyword = _PyPegen_expect_token(p, 585)) // token='and' && (c = inversion_rule(p)) // inversion ) @@ -35346,7 +35708,7 @@ _tmp_158_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 674)) // token='if' + (_keyword = _PyPegen_expect_token(p, 677)) // token='if' && (z = disjunction_rule(p)) // disjunction ) @@ -35888,7 +36250,7 @@ _tmp_169_rule(Parser *p) Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='as' + (_keyword = _PyPegen_expect_token(p, 675)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) From 8acc3054eefc9110221e7203498b8e54acdc5d68 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sun, 9 Feb 2025 18:17:47 +0500 Subject: [PATCH 04/16] elif after else --- Grammar/python.gram | 1 + Parser/parser.c | 175 ++++++++++++++++++++++++++------------------ 2 files changed, 105 insertions(+), 71 deletions(-) diff --git a/Grammar/python.gram b/Grammar/python.gram index 772c7fe2faffb5..e3d2d0fe8ebec3 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1421,6 +1421,7 @@ invalid_elif_stmt: | a='elif' named_expression ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'elif' statement on line %d", a->lineno) } invalid_else_stmt: + | 'else' ':' block elif_stmt { RAISE_SYNTAX_ERROR("WTF ELIF") } | a='else' ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'else' statement on line %d", a->lineno) } invalid_while_stmt: diff --git a/Parser/parser.c b/Parser/parser.c index 42c4902f3abe0b..eac7493b8f592b 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -23,18 +23,18 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) { {"if", 677}, {"as", 675}, - {"in", 688}, + {"in", 689}, {"or", 584}, {"is", 592}, {NULL, -1}, }, (KeywordToken[]) { {"del", 622}, - {"def", 692}, - {"for", 687}, + {"def", 693}, + {"for", 688}, {"try", 651}, {"and", 585}, - {"not", 696}, + {"not", 697}, {NULL, -1}, }, (KeywordToken[]) { @@ -42,7 +42,7 @@ static KeywordToken *reserved_keywords[] = { {"pass", 526}, {"with", 642}, {"elif", 679}, - {"else", 680}, + {"else", 681}, {"None", 620}, {"True", 619}, {NULL, -1}, @@ -51,9 +51,9 @@ static KeywordToken *reserved_keywords[] = { {"raise", 525}, {"yield", 583}, {"break", 527}, - {"async", 691}, - {"class", 694}, - {"while", 682}, + {"async", 692}, + {"class", 695}, + {"while", 683}, {"False", 621}, {"await", 593}, {NULL, -1}, @@ -1966,7 +1966,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 682) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 683) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -4289,7 +4289,7 @@ class_def_raw_rule(Parser *p) asdl_stmt_seq* c; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 694)) // token='class' + (_keyword = _PyPegen_expect_token(p, 695)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && @@ -4456,7 +4456,7 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword = _PyPegen_expect_token(p, 693)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4517,9 +4517,9 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword_1 = _PyPegen_expect_token(p, 693)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -6123,7 +6123,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword = _PyPegen_expect_token(p, 681)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6202,7 +6202,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='while' + (_keyword = _PyPegen_expect_token(p, 683)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -6302,11 +6302,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 688)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' && (_cut_var = 1) && @@ -6364,13 +6364,13 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 689)) // token='in' && (_cut_var = 1) && @@ -6599,7 +6599,7 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' && (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' && @@ -6651,7 +6651,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' && (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' && @@ -11112,7 +11112,7 @@ expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' && (c = expression_rule(p)) // expression ) @@ -11994,7 +11994,7 @@ inversion_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 696)) // token='not' + (_keyword = _PyPegen_expect_token(p, 697)) // token='not' && (a = inversion_rule(p)) // inversion ) @@ -12648,9 +12648,9 @@ notin_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 696)) // token='not' + (_keyword = _PyPegen_expect_token(p, 697)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12696,7 +12696,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword = _PyPegen_expect_token(p, 689)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12745,7 +12745,7 @@ isnot_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 592)) // token='is' && - (_keyword_1 = _PyPegen_expect_token(p, 696)) // token='not' + (_keyword_1 = _PyPegen_expect_token(p, 697)) // token='not' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -16916,13 +16916,13 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 689)) // token='in' && (_cut_var = 1) && @@ -16961,11 +16961,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 688)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' && (_cut_var = 1) && @@ -20270,7 +20270,7 @@ expression_without_invalid_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20832,7 +20832,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' && (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt ) @@ -20868,7 +20868,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20904,7 +20904,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' && (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt ) @@ -22890,13 +22890,13 @@ invalid_for_if_clause_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings void *_tmp_131_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 688)) // token='for' && (_tmp_131_var = _tmp_131_rule(p)) // bitwise_or ((',' bitwise_or))* ','? && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 688) // token='in' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 689) // token='in' ) { D(fprintf(stderr, "%*c+ invalid_for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'")); @@ -22942,9 +22942,9 @@ invalid_for_target_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings expr_ty a; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 688)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -23229,7 +23229,7 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && @@ -23267,7 +23267,7 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var_1); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && @@ -23329,7 +23329,7 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && (a = _PyPegen_expect_token(p, 642)) // token='with' && @@ -23372,7 +23372,7 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && (a = _PyPegen_expect_token(p, 642)) // token='with' && @@ -24654,7 +24654,7 @@ invalid_elif_stmt_rule(Parser *p) return _res; } -// invalid_else_stmt: 'else' ':' NEWLINE !INDENT +// invalid_else_stmt: 'else' ':' block elif_stmt | 'else' ':' NEWLINE !INDENT static void * invalid_else_stmt_rule(Parser *p) { @@ -24667,6 +24667,39 @@ invalid_else_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; + { // 'else' ':' block elif_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block elif_stmt")); + Token * _keyword; + Token * _literal; + asdl_stmt_seq* block_var; + stmt_ty elif_stmt_var; + if ( + (_keyword = _PyPegen_expect_token(p, 681)) // token='else' + && + (_literal = _PyPegen_expect_token(p, 11)) // token=':' + && + (block_var = block_rule(p)) // block + && + (elif_stmt_var = elif_stmt_rule(p)) // elif_stmt + ) + { + D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block elif_stmt")); + _res = RAISE_SYNTAX_ERROR ( "WTF ELIF" ); + if (_res == NULL && PyErr_Occurred()) { + p->error_indicator = 1; + p->level--; + return NULL; + } + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block elif_stmt")); + } { // 'else' ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24677,7 +24710,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 680)) // token='else' + (a = _PyPegen_expect_token(p, 681)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24730,7 +24763,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='while' + (_keyword = _PyPegen_expect_token(p, 683)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24761,7 +24794,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 682)) // token='while' + (a = _PyPegen_expect_token(p, 683)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24820,13 +24853,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 688)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24861,13 +24894,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 687)) // token='for' + (a = _PyPegen_expect_token(p, 688)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword = _PyPegen_expect_token(p, 689)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24933,9 +24966,9 @@ invalid_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 692)) // token='def' + (a = _PyPegen_expect_token(p, 693)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24992,9 +25025,9 @@ invalid_def_raw_rule(Parser *p) asdl_stmt_seq* block_var; expr_ty name_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword = _PyPegen_expect_token(p, 693)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25058,7 +25091,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 694)) // token='class' + (_keyword = _PyPegen_expect_token(p, 695)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25097,7 +25130,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 694)) // token='class' + (a = _PyPegen_expect_token(p, 695)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25915,7 +25948,7 @@ invalid_arithmetic_rule(Parser *p) && (_tmp_148_var = _tmp_148_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' && - (a = _PyPegen_expect_token(p, 696)) // token='not' + (a = _PyPegen_expect_token(p, 697)) // token='not' && (b = inversion_rule(p)) // inversion ) @@ -25964,7 +25997,7 @@ invalid_factor_rule(Parser *p) if ( (_tmp_149_var = _tmp_149_rule(p)) // '+' | '-' | '~' && - (a = _PyPegen_expect_token(p, 696)) // token='not' + (a = _PyPegen_expect_token(p, 697)) // token='not' && (b = factor_rule(p)) // factor ) @@ -26368,7 +26401,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword = _PyPegen_expect_token(p, 693)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -26406,7 +26439,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26444,7 +26477,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 694)) // token='class' + (_keyword = _PyPegen_expect_token(p, 695)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -26520,7 +26553,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26558,7 +26591,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 688)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -26577,7 +26610,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 692)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -32863,7 +32896,7 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword = _PyPegen_expect_token(p, 681)) // token='else' ) { D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); From 60c50661a548de2d546c5c51317c16c3e0b04cbb Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Mon, 10 Feb 2025 23:19:08 +0500 Subject: [PATCH 05/16] Simplify test_ifexp_* tests --- Lib/test/test_ast/test_ast.py | 57 ++++++++++++++++++----------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/Lib/test/test_ast/test_ast.py b/Lib/test/test_ast/test_ast.py index 176063a5190292..4bb4fb941e773c 100644 --- a/Lib/test/test_ast/test_ast.py +++ b/Lib/test/test_ast/test_ast.py @@ -1967,38 +1967,39 @@ def test_ifexp(self): self.expr(ast.IfExp(*args), "must have Load context") def test_ifexp_orelse_stmt(self): - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else pass") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else return") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else raise Exception('a')") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("a = 1; x = 1 if 1 else del a") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else yield 2") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else assert False") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else break") - with self.assertRaisesRegex(SyntaxError, "statement given where 'orelse' expression required"): - ast.parse("x = 1 if 1 else continue") + msg = "statement given where 'orelse' expression required" + for stmt in [ + "x = 1 if 1 else pass", + "x = 1 if 1 else return", + "x = 1 if 1 else raise Exception('a')", + "a = 1; x = 1 if 1 else del a", + "x = 1 if 1 else yield 2", + "x = 1 if 1 else assert False", + "x = 1 if 1 else break", + "x = 1 if 1 else continue" + ]: + with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): + ast.parse(stmt) def test_ifexp_body_stmt_orelse_expression(self): - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = pass if 1 else 1") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = break if 1 else 1") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = continue if 1 else 1") + msg = "statement given where 'body' expression required" + for stmt in [ + "x = pass if 1 else 1", + "x = break if 1 else 1", + "x = continue if 1 else 1" + ]: + with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): + ast.parse(stmt) def test_ifexp_body_stmt_orelse_stmt(self): - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = pass if 1 else pass") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = break if 1 else pass") - with self.assertRaisesRegex(SyntaxError, "statement given where 'body' expression required"): - ast.parse("x = continue if 1 else pass") + msg = "statement given where 'body' expression required" + for stmt in [ + "x = pass if 1 else pass", + "x = break if 1 else pass", + "x = continue if 1 else pass" + ]: + with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): + ast.parse(stmt) def test_dict(self): d = ast.Dict([], [ast.Name("x", ast.Load())]) From c33b08fe5490e6d38366525b761aebf7eef8edf5 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Mon, 10 Feb 2025 23:37:55 +0500 Subject: [PATCH 06/16] Remove an accidentally added test line --- Grammar/python.gram | 1 - Parser/parser.c | 175 ++++++++++++++++++-------------------------- 2 files changed, 71 insertions(+), 105 deletions(-) diff --git a/Grammar/python.gram b/Grammar/python.gram index e3d2d0fe8ebec3..772c7fe2faffb5 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1421,7 +1421,6 @@ invalid_elif_stmt: | a='elif' named_expression ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'elif' statement on line %d", a->lineno) } invalid_else_stmt: - | 'else' ':' block elif_stmt { RAISE_SYNTAX_ERROR("WTF ELIF") } | a='else' ':' NEWLINE !INDENT { RAISE_INDENTATION_ERROR("expected an indented block after 'else' statement on line %d", a->lineno) } invalid_while_stmt: diff --git a/Parser/parser.c b/Parser/parser.c index eac7493b8f592b..42c4902f3abe0b 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -23,18 +23,18 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) { {"if", 677}, {"as", 675}, - {"in", 689}, + {"in", 688}, {"or", 584}, {"is", 592}, {NULL, -1}, }, (KeywordToken[]) { {"del", 622}, - {"def", 693}, - {"for", 688}, + {"def", 692}, + {"for", 687}, {"try", 651}, {"and", 585}, - {"not", 697}, + {"not", 696}, {NULL, -1}, }, (KeywordToken[]) { @@ -42,7 +42,7 @@ static KeywordToken *reserved_keywords[] = { {"pass", 526}, {"with", 642}, {"elif", 679}, - {"else", 681}, + {"else", 680}, {"None", 620}, {"True", 619}, {NULL, -1}, @@ -51,9 +51,9 @@ static KeywordToken *reserved_keywords[] = { {"raise", 525}, {"yield", 583}, {"break", 527}, - {"async", 692}, - {"class", 695}, - {"while", 683}, + {"async", 691}, + {"class", 694}, + {"while", 682}, {"False", 621}, {"await", 593}, {NULL, -1}, @@ -1966,7 +1966,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 683) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 682) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -4289,7 +4289,7 @@ class_def_raw_rule(Parser *p) asdl_stmt_seq* c; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 695)) // token='class' + (_keyword = _PyPegen_expect_token(p, 694)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && @@ -4456,7 +4456,7 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 693)) // token='def' + (_keyword = _PyPegen_expect_token(p, 692)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4517,9 +4517,9 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 693)) // token='def' + (_keyword_1 = _PyPegen_expect_token(p, 692)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -6123,7 +6123,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword = _PyPegen_expect_token(p, 680)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6202,7 +6202,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 683)) // token='while' + (_keyword = _PyPegen_expect_token(p, 682)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -6302,11 +6302,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -6364,13 +6364,13 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -6599,7 +6599,7 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' && @@ -6651,7 +6651,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' && @@ -11112,7 +11112,7 @@ expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = expression_rule(p)) // expression ) @@ -11994,7 +11994,7 @@ inversion_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 697)) // token='not' + (_keyword = _PyPegen_expect_token(p, 696)) // token='not' && (a = inversion_rule(p)) // inversion ) @@ -12648,9 +12648,9 @@ notin_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 697)) // token='not' + (_keyword = _PyPegen_expect_token(p, 696)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12696,7 +12696,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword = _PyPegen_expect_token(p, 688)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12745,7 +12745,7 @@ isnot_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 592)) // token='is' && - (_keyword_1 = _PyPegen_expect_token(p, 697)) // token='not' + (_keyword_1 = _PyPegen_expect_token(p, 696)) // token='not' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -16916,13 +16916,13 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -16961,11 +16961,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (_cut_var = 1) && @@ -20270,7 +20270,7 @@ expression_without_invalid_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20832,7 +20832,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt ) @@ -20868,7 +20868,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20904,7 +20904,7 @@ invalid_expression_rule(Parser *p) && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' && (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt ) @@ -22890,13 +22890,13 @@ invalid_for_if_clause_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings void *_tmp_131_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (_tmp_131_var = _tmp_131_rule(p)) // bitwise_or ((',' bitwise_or))* ','? && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 689) // token='in' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 688) // token='in' ) { D(fprintf(stderr, "%*c+ invalid_for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'")); @@ -22942,9 +22942,9 @@ invalid_for_target_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings expr_ty a; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -23229,7 +23229,7 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && @@ -23267,7 +23267,7 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var_1); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && (_keyword = _PyPegen_expect_token(p, 642)) // token='with' && @@ -23329,7 +23329,7 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && (a = _PyPegen_expect_token(p, 642)) // token='with' && @@ -23372,7 +23372,7 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && (a = _PyPegen_expect_token(p, 642)) // token='with' && @@ -24654,7 +24654,7 @@ invalid_elif_stmt_rule(Parser *p) return _res; } -// invalid_else_stmt: 'else' ':' block elif_stmt | 'else' ':' NEWLINE !INDENT +// invalid_else_stmt: 'else' ':' NEWLINE !INDENT static void * invalid_else_stmt_rule(Parser *p) { @@ -24667,39 +24667,6 @@ invalid_else_stmt_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // 'else' ':' block elif_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_else_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else' ':' block elif_stmt")); - Token * _keyword; - Token * _literal; - asdl_stmt_seq* block_var; - stmt_ty elif_stmt_var; - if ( - (_keyword = _PyPegen_expect_token(p, 681)) // token='else' - && - (_literal = _PyPegen_expect_token(p, 11)) // token=':' - && - (block_var = block_rule(p)) // block - && - (elif_stmt_var = elif_stmt_rule(p)) // elif_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_else_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else' ':' block elif_stmt")); - _res = RAISE_SYNTAX_ERROR ( "WTF ELIF" ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_else_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'else' ':' block elif_stmt")); - } { // 'else' ':' NEWLINE !INDENT if (p->error_indicator) { p->level--; @@ -24710,7 +24677,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 681)) // token='else' + (a = _PyPegen_expect_token(p, 680)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24763,7 +24730,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 683)) // token='while' + (_keyword = _PyPegen_expect_token(p, 682)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24794,7 +24761,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 683)) // token='while' + (a = _PyPegen_expect_token(p, 682)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24853,13 +24820,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24894,13 +24861,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 688)) // token='for' + (a = _PyPegen_expect_token(p, 687)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 689)) // token='in' + (_keyword = _PyPegen_expect_token(p, 688)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24966,9 +24933,9 @@ invalid_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 693)) // token='def' + (a = _PyPegen_expect_token(p, 692)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25025,9 +24992,9 @@ invalid_def_raw_rule(Parser *p) asdl_stmt_seq* block_var; expr_ty name_var; if ( - (_opt_var = _PyPegen_expect_token(p, 692), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 693)) // token='def' + (_keyword = _PyPegen_expect_token(p, 692)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25091,7 +25058,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 695)) // token='class' + (_keyword = _PyPegen_expect_token(p, 694)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25130,7 +25097,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 695)) // token='class' + (a = _PyPegen_expect_token(p, 694)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25948,7 +25915,7 @@ invalid_arithmetic_rule(Parser *p) && (_tmp_148_var = _tmp_148_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' && - (a = _PyPegen_expect_token(p, 697)) // token='not' + (a = _PyPegen_expect_token(p, 696)) // token='not' && (b = inversion_rule(p)) // inversion ) @@ -25997,7 +25964,7 @@ invalid_factor_rule(Parser *p) if ( (_tmp_149_var = _tmp_149_rule(p)) // '+' | '-' | '~' && - (a = _PyPegen_expect_token(p, 697)) // token='not' + (a = _PyPegen_expect_token(p, 696)) // token='not' && (b = factor_rule(p)) // factor ) @@ -26401,7 +26368,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 693)) // token='def' + (_keyword = _PyPegen_expect_token(p, 692)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -26439,7 +26406,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26477,7 +26444,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 695)) // token='class' + (_keyword = _PyPegen_expect_token(p, 694)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -26553,7 +26520,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26591,7 +26558,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='for' + (_keyword = _PyPegen_expect_token(p, 687)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -26610,7 +26577,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='async' + (_keyword = _PyPegen_expect_token(p, 691)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -32896,7 +32863,7 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 681)) // token='else' + (_keyword = _PyPegen_expect_token(p, 680)) // token='else' ) { D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); From db2784e40e972e6b67ac0c7808aa411046f4e951 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Tue, 11 Feb 2025 21:46:20 +0500 Subject: [PATCH 07/16] Simplify invalid_expression rule --- Grammar/python.gram | 23 +- Lib/test/test_ast/test_ast.py | 5 +- Parser/parser.c | 2521 ++++++++++++++++----------------- 3 files changed, 1250 insertions(+), 1299 deletions(-) diff --git a/Grammar/python.gram b/Grammar/python.gram index 772c7fe2faffb5..ab83cc5313527e 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1186,21 +1186,6 @@ invalid_type_param: : "cannot use bound with ParamSpec") } -invalid_ifexp_orelse_stmt[stmt_ty]: - | return_stmt - | raise_stmt - | pass_stmt - | del_stmt - | yield_stmt - | assert_stmt - | break_stmt - | continue_stmt - -invalid_ifexp_body_stmt[stmt_ty]: - | pass_stmt - | break_stmt - | continue_stmt - invalid_expression: # !(NAME STRING) is not matched so we don't show this error with some invalid string prefixes like: kf"dsfsdf" # Soft keywords need to also be ignored because they can be parsed as NAME NAME @@ -1208,9 +1193,11 @@ invalid_expression: _PyPegen_check_legacy_stmt(p, a) ? NULL : p->tokens[p->mark-1]->level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } - | a=disjunction 'if' b=disjunction 'else' c=invalid_ifexp_orelse_stmt { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (c, "statement given where 'orelse' expression required")} - | a=invalid_ifexp_body_stmt 'if' b=disjunction 'else' c=expression { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} - | a=invalid_ifexp_body_stmt 'if' b=disjunction 'else' c=invalid_ifexp_orelse_stmt { RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required")} + | a=disjunction 'if' b=disjunction 'else' c[stmt_ty]=( + return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt) { + RAISE_SYNTAX_ERROR_KNOWN_LOCATION (c, "statement given where 'orelse' expression required") } + | a[stmt_ty]=(pass_stmt|break_stmt|continue_stmt) 'if' b=disjunction 'else' c=simple_stmt { + RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required") } | a='lambda' [lambda_params] b=':' &FSTRING_MIDDLE { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "f-string: lambda expressions are not allowed without parentheses") } diff --git a/Lib/test/test_ast/test_ast.py b/Lib/test/test_ast/test_ast.py index 4bb4fb941e773c..3f40471a79b484 100644 --- a/Lib/test/test_ast/test_ast.py +++ b/Lib/test/test_ast/test_ast.py @@ -1972,7 +1972,7 @@ def test_ifexp_orelse_stmt(self): "x = 1 if 1 else pass", "x = 1 if 1 else return", "x = 1 if 1 else raise Exception('a')", - "a = 1; x = 1 if 1 else del a", + "x = 1 if 1 else del a", "x = 1 if 1 else yield 2", "x = 1 if 1 else assert False", "x = 1 if 1 else break", @@ -1996,7 +1996,8 @@ def test_ifexp_body_stmt_orelse_stmt(self): for stmt in [ "x = pass if 1 else pass", "x = break if 1 else pass", - "x = continue if 1 else pass" + "x = continue if 1 else pass", + "x = continue if 1 else import ast" ]: with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): ast.parse(stmt) diff --git a/Parser/parser.c b/Parser/parser.c index 42c4902f3abe0b..6e8cebe9409bb4 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -21,54 +21,54 @@ static KeywordToken *reserved_keywords[] = { (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) {{NULL, -1}}, (KeywordToken[]) { - {"if", 677}, - {"as", 675}, - {"in", 688}, + {"if", 675}, + {"as", 673}, + {"in", 686}, {"or", 584}, {"is", 592}, {NULL, -1}, }, (KeywordToken[]) { - {"del", 622}, - {"def", 692}, - {"for", 687}, - {"try", 651}, + {"del", 620}, + {"def", 690}, + {"for", 685}, + {"try", 649}, {"and", 585}, - {"not", 696}, + {"not", 694}, {NULL, -1}, }, (KeywordToken[]) { - {"from", 630}, + {"from", 628}, {"pass", 526}, - {"with", 642}, - {"elif", 679}, - {"else", 680}, - {"None", 620}, - {"True", 619}, + {"with", 640}, + {"elif", 677}, + {"else", 678}, + {"None", 618}, + {"True", 617}, {NULL, -1}, }, (KeywordToken[]) { {"raise", 525}, {"yield", 583}, {"break", 527}, - {"async", 691}, - {"class", 694}, - {"while", 682}, - {"False", 621}, + {"async", 689}, + {"class", 692}, + {"while", 680}, + {"False", 619}, {"await", 593}, {NULL, -1}, }, (KeywordToken[]) { {"return", 522}, - {"import", 631}, + {"import", 629}, {"assert", 532}, {"global", 529}, - {"except", 672}, - {"lambda", 618}, + {"except", 670}, + {"lambda", 616}, {NULL, -1}, }, (KeywordToken[]) { - {"finally", 668}, + {"finally", 666}, {NULL, -1}, }, (KeywordToken[]) { @@ -287,230 +287,230 @@ static char *soft_keywords[] = { #define expression_without_invalid_type 1200 #define invalid_legacy_expression_type 1201 #define invalid_type_param_type 1202 -#define invalid_ifexp_orelse_stmt_type 1203 -#define invalid_ifexp_body_stmt_type 1204 -#define invalid_expression_type 1205 -#define invalid_named_expression_type 1206 -#define invalid_assignment_type 1207 -#define invalid_ann_assign_target_type 1208 -#define invalid_del_stmt_type 1209 -#define invalid_block_type 1210 -#define invalid_comprehension_type 1211 -#define invalid_dict_comprehension_type 1212 -#define invalid_parameters_type 1213 -#define invalid_default_type 1214 -#define invalid_star_etc_type 1215 -#define invalid_kwds_type 1216 -#define invalid_parameters_helper_type 1217 -#define invalid_lambda_parameters_type 1218 -#define invalid_lambda_parameters_helper_type 1219 -#define invalid_lambda_star_etc_type 1220 -#define invalid_lambda_kwds_type 1221 -#define invalid_double_type_comments_type 1222 -#define invalid_with_item_type 1223 -#define invalid_for_if_clause_type 1224 -#define invalid_for_target_type 1225 -#define invalid_group_type 1226 -#define invalid_import_type 1227 -#define invalid_import_from_targets_type 1228 -#define invalid_with_stmt_type 1229 -#define invalid_with_stmt_indent_type 1230 -#define invalid_try_stmt_type 1231 -#define invalid_except_stmt_type 1232 -#define invalid_except_star_stmt_type 1233 -#define invalid_finally_stmt_type 1234 -#define invalid_except_stmt_indent_type 1235 -#define invalid_except_star_stmt_indent_type 1236 -#define invalid_match_stmt_type 1237 -#define invalid_case_block_type 1238 -#define invalid_as_pattern_type 1239 -#define invalid_class_pattern_type 1240 -#define invalid_class_argument_pattern_type 1241 -#define invalid_if_stmt_type 1242 -#define invalid_elif_stmt_type 1243 -#define invalid_else_stmt_type 1244 -#define invalid_while_stmt_type 1245 -#define invalid_for_stmt_type 1246 -#define invalid_def_raw_type 1247 -#define invalid_class_def_raw_type 1248 -#define invalid_double_starred_kvpairs_type 1249 -#define invalid_kvpair_type 1250 -#define invalid_starred_expression_unpacking_type 1251 -#define invalid_starred_expression_type 1252 -#define invalid_replacement_field_type 1253 -#define invalid_conversion_character_type 1254 -#define invalid_arithmetic_type 1255 -#define invalid_factor_type 1256 -#define invalid_type_params_type 1257 -#define _loop0_1_type 1258 -#define _loop1_2_type 1259 -#define _loop0_3_type 1260 -#define _gather_4_type 1261 -#define _tmp_5_type 1262 -#define _tmp_6_type 1263 -#define _tmp_7_type 1264 -#define _tmp_8_type 1265 -#define _tmp_9_type 1266 -#define _tmp_10_type 1267 -#define _tmp_11_type 1268 -#define _loop1_12_type 1269 -#define _tmp_13_type 1270 -#define _loop0_14_type 1271 -#define _gather_15_type 1272 -#define _tmp_16_type 1273 -#define _tmp_17_type 1274 -#define _loop0_18_type 1275 -#define _loop1_19_type 1276 -#define _loop0_20_type 1277 -#define _gather_21_type 1278 -#define _tmp_22_type 1279 -#define _loop0_23_type 1280 -#define _gather_24_type 1281 -#define _loop1_25_type 1282 -#define _tmp_26_type 1283 -#define _tmp_27_type 1284 -#define _loop0_28_type 1285 -#define _loop0_29_type 1286 -#define _loop1_30_type 1287 -#define _loop1_31_type 1288 -#define _loop0_32_type 1289 -#define _loop1_33_type 1290 -#define _loop0_34_type 1291 -#define _gather_35_type 1292 -#define _tmp_36_type 1293 -#define _loop1_37_type 1294 -#define _loop1_38_type 1295 -#define _loop1_39_type 1296 -#define _loop0_40_type 1297 -#define _gather_41_type 1298 -#define _tmp_42_type 1299 -#define _tmp_43_type 1300 -#define _loop0_44_type 1301 -#define _gather_45_type 1302 -#define _loop0_46_type 1303 -#define _gather_47_type 1304 -#define _tmp_48_type 1305 -#define _loop0_49_type 1306 -#define _gather_50_type 1307 -#define _loop0_51_type 1308 -#define _gather_52_type 1309 -#define _loop0_53_type 1310 -#define _gather_54_type 1311 -#define _loop1_55_type 1312 -#define _loop1_56_type 1313 -#define _loop0_57_type 1314 -#define _gather_58_type 1315 -#define _loop1_59_type 1316 -#define _loop1_60_type 1317 -#define _loop1_61_type 1318 -#define _tmp_62_type 1319 -#define _loop0_63_type 1320 -#define _gather_64_type 1321 -#define _tmp_65_type 1322 -#define _tmp_66_type 1323 -#define _tmp_67_type 1324 -#define _tmp_68_type 1325 -#define _tmp_69_type 1326 -#define _tmp_70_type 1327 -#define _loop0_71_type 1328 -#define _loop0_72_type 1329 -#define _loop1_73_type 1330 -#define _loop1_74_type 1331 -#define _loop0_75_type 1332 -#define _loop1_76_type 1333 -#define _loop0_77_type 1334 -#define _loop0_78_type 1335 -#define _loop1_79_type 1336 -#define _tmp_80_type 1337 -#define _loop0_81_type 1338 -#define _gather_82_type 1339 -#define _loop1_83_type 1340 -#define _loop0_84_type 1341 -#define _tmp_85_type 1342 -#define _loop0_86_type 1343 -#define _gather_87_type 1344 -#define _tmp_88_type 1345 -#define _loop0_89_type 1346 -#define _gather_90_type 1347 -#define _loop0_91_type 1348 -#define _gather_92_type 1349 -#define _loop0_93_type 1350 -#define _loop0_94_type 1351 -#define _gather_95_type 1352 -#define _loop1_96_type 1353 -#define _tmp_97_type 1354 -#define _loop0_98_type 1355 -#define _gather_99_type 1356 -#define _loop0_100_type 1357 -#define _gather_101_type 1358 -#define _tmp_102_type 1359 -#define _tmp_103_type 1360 -#define _loop0_104_type 1361 -#define _gather_105_type 1362 -#define _tmp_106_type 1363 -#define _tmp_107_type 1364 -#define _tmp_108_type 1365 -#define _tmp_109_type 1366 -#define _tmp_110_type 1367 -#define _tmp_111_type 1368 -#define _tmp_112_type 1369 -#define _tmp_113_type 1370 -#define _tmp_114_type 1371 -#define _loop0_115_type 1372 -#define _loop0_116_type 1373 -#define _tmp_117_type 1374 -#define _tmp_118_type 1375 -#define _tmp_119_type 1376 -#define _tmp_120_type 1377 -#define _tmp_121_type 1378 -#define _tmp_122_type 1379 -#define _tmp_123_type 1380 -#define _tmp_124_type 1381 -#define _tmp_125_type 1382 -#define _loop0_126_type 1383 -#define _gather_127_type 1384 -#define _tmp_128_type 1385 -#define _tmp_129_type 1386 -#define _tmp_130_type 1387 -#define _tmp_131_type 1388 -#define _loop0_132_type 1389 -#define _gather_133_type 1390 -#define _loop0_134_type 1391 -#define _gather_135_type 1392 -#define _loop0_136_type 1393 -#define _gather_137_type 1394 -#define _tmp_138_type 1395 -#define _loop0_139_type 1396 -#define _tmp_140_type 1397 -#define _tmp_141_type 1398 -#define _tmp_142_type 1399 -#define _tmp_143_type 1400 -#define _tmp_144_type 1401 -#define _tmp_145_type 1402 -#define _tmp_146_type 1403 -#define _tmp_147_type 1404 -#define _tmp_148_type 1405 -#define _tmp_149_type 1406 -#define _tmp_150_type 1407 -#define _tmp_151_type 1408 -#define _tmp_152_type 1409 -#define _tmp_153_type 1410 -#define _tmp_154_type 1411 -#define _tmp_155_type 1412 -#define _tmp_156_type 1413 -#define _tmp_157_type 1414 -#define _tmp_158_type 1415 -#define _tmp_159_type 1416 -#define _tmp_160_type 1417 -#define _tmp_161_type 1418 -#define _tmp_162_type 1419 -#define _tmp_163_type 1420 -#define _tmp_164_type 1421 -#define _loop0_165_type 1422 -#define _tmp_166_type 1423 -#define _tmp_167_type 1424 -#define _tmp_168_type 1425 -#define _tmp_169_type 1426 +#define invalid_expression_type 1203 +#define invalid_named_expression_type 1204 +#define invalid_assignment_type 1205 +#define invalid_ann_assign_target_type 1206 +#define invalid_del_stmt_type 1207 +#define invalid_block_type 1208 +#define invalid_comprehension_type 1209 +#define invalid_dict_comprehension_type 1210 +#define invalid_parameters_type 1211 +#define invalid_default_type 1212 +#define invalid_star_etc_type 1213 +#define invalid_kwds_type 1214 +#define invalid_parameters_helper_type 1215 +#define invalid_lambda_parameters_type 1216 +#define invalid_lambda_parameters_helper_type 1217 +#define invalid_lambda_star_etc_type 1218 +#define invalid_lambda_kwds_type 1219 +#define invalid_double_type_comments_type 1220 +#define invalid_with_item_type 1221 +#define invalid_for_if_clause_type 1222 +#define invalid_for_target_type 1223 +#define invalid_group_type 1224 +#define invalid_import_type 1225 +#define invalid_import_from_targets_type 1226 +#define invalid_with_stmt_type 1227 +#define invalid_with_stmt_indent_type 1228 +#define invalid_try_stmt_type 1229 +#define invalid_except_stmt_type 1230 +#define invalid_except_star_stmt_type 1231 +#define invalid_finally_stmt_type 1232 +#define invalid_except_stmt_indent_type 1233 +#define invalid_except_star_stmt_indent_type 1234 +#define invalid_match_stmt_type 1235 +#define invalid_case_block_type 1236 +#define invalid_as_pattern_type 1237 +#define invalid_class_pattern_type 1238 +#define invalid_class_argument_pattern_type 1239 +#define invalid_if_stmt_type 1240 +#define invalid_elif_stmt_type 1241 +#define invalid_else_stmt_type 1242 +#define invalid_while_stmt_type 1243 +#define invalid_for_stmt_type 1244 +#define invalid_def_raw_type 1245 +#define invalid_class_def_raw_type 1246 +#define invalid_double_starred_kvpairs_type 1247 +#define invalid_kvpair_type 1248 +#define invalid_starred_expression_unpacking_type 1249 +#define invalid_starred_expression_type 1250 +#define invalid_replacement_field_type 1251 +#define invalid_conversion_character_type 1252 +#define invalid_arithmetic_type 1253 +#define invalid_factor_type 1254 +#define invalid_type_params_type 1255 +#define _loop0_1_type 1256 +#define _loop1_2_type 1257 +#define _loop0_3_type 1258 +#define _gather_4_type 1259 +#define _tmp_5_type 1260 +#define _tmp_6_type 1261 +#define _tmp_7_type 1262 +#define _tmp_8_type 1263 +#define _tmp_9_type 1264 +#define _tmp_10_type 1265 +#define _tmp_11_type 1266 +#define _loop1_12_type 1267 +#define _tmp_13_type 1268 +#define _loop0_14_type 1269 +#define _gather_15_type 1270 +#define _tmp_16_type 1271 +#define _tmp_17_type 1272 +#define _loop0_18_type 1273 +#define _loop1_19_type 1274 +#define _loop0_20_type 1275 +#define _gather_21_type 1276 +#define _tmp_22_type 1277 +#define _loop0_23_type 1278 +#define _gather_24_type 1279 +#define _loop1_25_type 1280 +#define _tmp_26_type 1281 +#define _tmp_27_type 1282 +#define _loop0_28_type 1283 +#define _loop0_29_type 1284 +#define _loop1_30_type 1285 +#define _loop1_31_type 1286 +#define _loop0_32_type 1287 +#define _loop1_33_type 1288 +#define _loop0_34_type 1289 +#define _gather_35_type 1290 +#define _tmp_36_type 1291 +#define _loop1_37_type 1292 +#define _loop1_38_type 1293 +#define _loop1_39_type 1294 +#define _loop0_40_type 1295 +#define _gather_41_type 1296 +#define _tmp_42_type 1297 +#define _tmp_43_type 1298 +#define _loop0_44_type 1299 +#define _gather_45_type 1300 +#define _loop0_46_type 1301 +#define _gather_47_type 1302 +#define _tmp_48_type 1303 +#define _loop0_49_type 1304 +#define _gather_50_type 1305 +#define _loop0_51_type 1306 +#define _gather_52_type 1307 +#define _loop0_53_type 1308 +#define _gather_54_type 1309 +#define _loop1_55_type 1310 +#define _loop1_56_type 1311 +#define _loop0_57_type 1312 +#define _gather_58_type 1313 +#define _loop1_59_type 1314 +#define _loop1_60_type 1315 +#define _loop1_61_type 1316 +#define _tmp_62_type 1317 +#define _loop0_63_type 1318 +#define _gather_64_type 1319 +#define _tmp_65_type 1320 +#define _tmp_66_type 1321 +#define _tmp_67_type 1322 +#define _tmp_68_type 1323 +#define _tmp_69_type 1324 +#define _tmp_70_type 1325 +#define _loop0_71_type 1326 +#define _loop0_72_type 1327 +#define _loop1_73_type 1328 +#define _loop1_74_type 1329 +#define _loop0_75_type 1330 +#define _loop1_76_type 1331 +#define _loop0_77_type 1332 +#define _loop0_78_type 1333 +#define _loop1_79_type 1334 +#define _tmp_80_type 1335 +#define _loop0_81_type 1336 +#define _gather_82_type 1337 +#define _loop1_83_type 1338 +#define _loop0_84_type 1339 +#define _tmp_85_type 1340 +#define _loop0_86_type 1341 +#define _gather_87_type 1342 +#define _tmp_88_type 1343 +#define _loop0_89_type 1344 +#define _gather_90_type 1345 +#define _loop0_91_type 1346 +#define _gather_92_type 1347 +#define _loop0_93_type 1348 +#define _loop0_94_type 1349 +#define _gather_95_type 1350 +#define _loop1_96_type 1351 +#define _tmp_97_type 1352 +#define _loop0_98_type 1353 +#define _gather_99_type 1354 +#define _loop0_100_type 1355 +#define _gather_101_type 1356 +#define _tmp_102_type 1357 +#define _tmp_103_type 1358 +#define _loop0_104_type 1359 +#define _gather_105_type 1360 +#define _tmp_106_type 1361 +#define _tmp_107_type 1362 +#define _tmp_108_type 1363 +#define _tmp_109_type 1364 +#define _tmp_110_type 1365 +#define _tmp_111_type 1366 +#define _tmp_112_type 1367 +#define _tmp_113_type 1368 +#define _tmp_114_type 1369 +#define _tmp_115_type 1370 +#define _tmp_116_type 1371 +#define _loop0_117_type 1372 +#define _loop0_118_type 1373 +#define _tmp_119_type 1374 +#define _tmp_120_type 1375 +#define _tmp_121_type 1376 +#define _tmp_122_type 1377 +#define _tmp_123_type 1378 +#define _tmp_124_type 1379 +#define _tmp_125_type 1380 +#define _tmp_126_type 1381 +#define _tmp_127_type 1382 +#define _loop0_128_type 1383 +#define _gather_129_type 1384 +#define _tmp_130_type 1385 +#define _tmp_131_type 1386 +#define _tmp_132_type 1387 +#define _tmp_133_type 1388 +#define _loop0_134_type 1389 +#define _gather_135_type 1390 +#define _loop0_136_type 1391 +#define _gather_137_type 1392 +#define _loop0_138_type 1393 +#define _gather_139_type 1394 +#define _tmp_140_type 1395 +#define _loop0_141_type 1396 +#define _tmp_142_type 1397 +#define _tmp_143_type 1398 +#define _tmp_144_type 1399 +#define _tmp_145_type 1400 +#define _tmp_146_type 1401 +#define _tmp_147_type 1402 +#define _tmp_148_type 1403 +#define _tmp_149_type 1404 +#define _tmp_150_type 1405 +#define _tmp_151_type 1406 +#define _tmp_152_type 1407 +#define _tmp_153_type 1408 +#define _tmp_154_type 1409 +#define _tmp_155_type 1410 +#define _tmp_156_type 1411 +#define _tmp_157_type 1412 +#define _tmp_158_type 1413 +#define _tmp_159_type 1414 +#define _tmp_160_type 1415 +#define _tmp_161_type 1416 +#define _tmp_162_type 1417 +#define _tmp_163_type 1418 +#define _tmp_164_type 1419 +#define _tmp_165_type 1420 +#define _tmp_166_type 1421 +#define _loop0_167_type 1422 +#define _tmp_168_type 1423 +#define _tmp_169_type 1424 +#define _tmp_170_type 1425 +#define _tmp_171_type 1426 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -715,8 +715,6 @@ static void *invalid_kwarg_rule(Parser *p); static expr_ty expression_without_invalid_rule(Parser *p); static void *invalid_legacy_expression_rule(Parser *p); static void *invalid_type_param_rule(Parser *p); -static stmt_ty invalid_ifexp_orelse_stmt_rule(Parser *p); -static stmt_ty invalid_ifexp_body_stmt_rule(Parser *p); static void *invalid_expression_rule(Parser *p); static void *invalid_named_expression_rule(Parser *p); static void *invalid_assignment_rule(Parser *p); @@ -884,10 +882,10 @@ static void *_tmp_111_rule(Parser *p); static void *_tmp_112_rule(Parser *p); static void *_tmp_113_rule(Parser *p); static void *_tmp_114_rule(Parser *p); -static asdl_seq *_loop0_115_rule(Parser *p); -static asdl_seq *_loop0_116_rule(Parser *p); -static void *_tmp_117_rule(Parser *p); -static void *_tmp_118_rule(Parser *p); +static void *_tmp_115_rule(Parser *p); +static void *_tmp_116_rule(Parser *p); +static asdl_seq *_loop0_117_rule(Parser *p); +static asdl_seq *_loop0_118_rule(Parser *p); static void *_tmp_119_rule(Parser *p); static void *_tmp_120_rule(Parser *p); static void *_tmp_121_rule(Parser *p); @@ -895,22 +893,22 @@ static void *_tmp_122_rule(Parser *p); static void *_tmp_123_rule(Parser *p); static void *_tmp_124_rule(Parser *p); static void *_tmp_125_rule(Parser *p); -static asdl_seq *_loop0_126_rule(Parser *p); -static asdl_seq *_gather_127_rule(Parser *p); -static void *_tmp_128_rule(Parser *p); -static void *_tmp_129_rule(Parser *p); +static void *_tmp_126_rule(Parser *p); +static void *_tmp_127_rule(Parser *p); +static asdl_seq *_loop0_128_rule(Parser *p); +static asdl_seq *_gather_129_rule(Parser *p); static void *_tmp_130_rule(Parser *p); static void *_tmp_131_rule(Parser *p); -static asdl_seq *_loop0_132_rule(Parser *p); -static asdl_seq *_gather_133_rule(Parser *p); +static void *_tmp_132_rule(Parser *p); +static void *_tmp_133_rule(Parser *p); static asdl_seq *_loop0_134_rule(Parser *p); static asdl_seq *_gather_135_rule(Parser *p); static asdl_seq *_loop0_136_rule(Parser *p); static asdl_seq *_gather_137_rule(Parser *p); -static void *_tmp_138_rule(Parser *p); -static asdl_seq *_loop0_139_rule(Parser *p); +static asdl_seq *_loop0_138_rule(Parser *p); +static asdl_seq *_gather_139_rule(Parser *p); static void *_tmp_140_rule(Parser *p); -static void *_tmp_141_rule(Parser *p); +static asdl_seq *_loop0_141_rule(Parser *p); static void *_tmp_142_rule(Parser *p); static void *_tmp_143_rule(Parser *p); static void *_tmp_144_rule(Parser *p); @@ -934,11 +932,13 @@ static void *_tmp_161_rule(Parser *p); static void *_tmp_162_rule(Parser *p); static void *_tmp_163_rule(Parser *p); static void *_tmp_164_rule(Parser *p); -static asdl_seq *_loop0_165_rule(Parser *p); +static void *_tmp_165_rule(Parser *p); static void *_tmp_166_rule(Parser *p); -static void *_tmp_167_rule(Parser *p); +static asdl_seq *_loop0_167_rule(Parser *p); static void *_tmp_168_rule(Parser *p); static void *_tmp_169_rule(Parser *p); +static void *_tmp_170_rule(Parser *p); +static void *_tmp_171_rule(Parser *p); // file: statements? $ @@ -1665,7 +1665,7 @@ simple_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> simple_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'del' del_stmt")); stmt_ty del_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 622) // token='del' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 620) // token='del' && (del_stmt_var = del_stmt_rule(p)) // del_stmt ) @@ -1861,7 +1861,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'if' if_stmt")); stmt_ty if_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 677) // token='if' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 675) // token='if' && (if_stmt_var = if_stmt_rule(p)) // if_stmt ) @@ -1945,7 +1945,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'try' try_stmt")); stmt_ty try_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 651) // token='try' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 649) // token='try' && (try_stmt_var = try_stmt_rule(p)) // try_stmt ) @@ -1966,7 +1966,7 @@ compound_stmt_rule(Parser *p) D(fprintf(stderr, "%*c> compound_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "&'while' while_stmt")); stmt_ty while_stmt_var; if ( - _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 682) // token='while' + _PyPegen_lookahead_with_int(1, _PyPegen_expect_token, p, 680) // token='while' && (while_stmt_var = while_stmt_rule(p)) // while_stmt ) @@ -3134,7 +3134,7 @@ del_stmt_rule(Parser *p) Token * _keyword; asdl_expr_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 622)) // token='del' + (_keyword = _PyPegen_expect_token(p, 620)) // token='del' && (a = del_targets_rule(p)) // del_targets && @@ -3423,7 +3423,7 @@ import_name_rule(Parser *p) Token * _keyword; asdl_alias_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 631)) // token='import' + (_keyword = _PyPegen_expect_token(p, 629)) // token='import' && (a = dotted_as_names_rule(p)) // dotted_as_names ) @@ -3492,13 +3492,13 @@ import_from_rule(Parser *p) expr_ty b; asdl_alias_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 630)) // token='from' + (_keyword = _PyPegen_expect_token(p, 628)) // token='from' && (a = _loop0_18_rule(p)) // (('.' | '...'))* && (b = dotted_name_rule(p)) // dotted_name && - (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 629)) // token='import' && (c = import_from_targets_rule(p)) // import_from_targets ) @@ -3536,11 +3536,11 @@ import_from_rule(Parser *p) asdl_seq * a; asdl_alias_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 630)) // token='from' + (_keyword = _PyPegen_expect_token(p, 628)) // token='from' && (a = _loop1_19_rule(p)) // (('.' | '...'))+ && - (_keyword_1 = _PyPegen_expect_token(p, 631)) // token='import' + (_keyword_1 = _PyPegen_expect_token(p, 629)) // token='import' && (b = import_from_targets_rule(p)) // import_from_targets ) @@ -4289,7 +4289,7 @@ class_def_raw_rule(Parser *p) asdl_stmt_seq* c; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 694)) // token='class' + (_keyword = _PyPegen_expect_token(p, 692)) // token='class' && (a = _PyPegen_name_token(p)) // NAME && @@ -4456,7 +4456,7 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword = _PyPegen_expect_token(p, 690)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -4517,9 +4517,9 @@ function_def_raw_rule(Parser *p) void *t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword_1 = _PyPegen_expect_token(p, 690)) // token='def' && (n = _PyPegen_name_token(p)) // NAME && @@ -5857,7 +5857,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5902,7 +5902,7 @@ if_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (a = named_expression_rule(p)) // named_expression && @@ -5997,7 +5997,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; stmt_ty c; if ( - (_keyword = _PyPegen_expect_token(p, 679)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 677)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -6042,7 +6042,7 @@ elif_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 679)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 677)) // token='elif' && (a = named_expression_rule(p)) // named_expression && @@ -6123,7 +6123,7 @@ else_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword = _PyPegen_expect_token(p, 678)) // token='else' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6202,7 +6202,7 @@ while_stmt_rule(Parser *p) asdl_stmt_seq* b; void *c; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='while' + (_keyword = _PyPegen_expect_token(p, 680)) // token='while' && (a = named_expression_rule(p)) // named_expression && @@ -6302,11 +6302,11 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 685)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 686)) // token='in' && (_cut_var = 1) && @@ -6364,13 +6364,13 @@ for_stmt_rule(Parser *p) expr_ty t; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='for' && (t = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 686)) // token='in' && (_cut_var = 1) && @@ -6499,7 +6499,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword = _PyPegen_expect_token(p, 640)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6550,7 +6550,7 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword = _PyPegen_expect_token(p, 640)) // token='with' && (a = (asdl_withitem_seq*)_gather_35_rule(p)) // ','.with_item+ && @@ -6599,9 +6599,9 @@ with_stmt_rule(Parser *p) asdl_withitem_seq* a; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword_1 = _PyPegen_expect_token(p, 640)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && @@ -6651,9 +6651,9 @@ with_stmt_rule(Parser *p) asdl_stmt_seq* b; void *tc; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword_1 = _PyPegen_expect_token(p, 640)) // token='with' && (a = (asdl_withitem_seq*)_gather_35_rule(p)) // ','.with_item+ && @@ -6739,7 +6739,7 @@ with_item_rule(Parser *p) if ( (e = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (t = star_target_rule(p)) // star_target && @@ -6864,7 +6864,7 @@ try_stmt_rule(Parser *p) asdl_stmt_seq* b; asdl_stmt_seq* f; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='try' + (_keyword = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6908,7 +6908,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='try' + (_keyword = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -6956,7 +6956,7 @@ try_stmt_rule(Parser *p) asdl_excepthandler_seq* ex; void *f; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='try' + (_keyword = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -7054,7 +7054,7 @@ except_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (e = expression_rule(p)) // expression && @@ -7097,7 +7097,7 @@ except_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* b; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -7208,7 +7208,7 @@ except_star_block_rule(Parser *p) expr_ty e; void *t; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -7310,7 +7310,7 @@ finally_block_rule(Parser *p) Token * _literal; asdl_stmt_seq* a; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 666)) // token='finally' && (_literal = _PyPegen_expect_forced_token(p, 11, ":")) // forced_token=':' && @@ -7618,7 +7618,7 @@ guard_rule(Parser *p) Token * _keyword; expr_ty guard; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (guard = named_expression_rule(p)) // named_expression ) @@ -7813,7 +7813,7 @@ as_pattern_rule(Parser *p) if ( (pattern = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (target = pattern_capture_target_rule(p)) // pattern_capture_target ) @@ -8247,7 +8247,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 620)) // token='None' + (_keyword = _PyPegen_expect_token(p, 618)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8280,7 +8280,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='True' + (_keyword = _PyPegen_expect_token(p, 617)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8313,7 +8313,7 @@ literal_pattern_rule(Parser *p) D(fprintf(stderr, "%*c> literal_pattern[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='False' + (_keyword = _PyPegen_expect_token(p, 619)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_pattern[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -8439,7 +8439,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 620)) // token='None' + (_keyword = _PyPegen_expect_token(p, 618)) // token='None' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -8472,7 +8472,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='True' + (_keyword = _PyPegen_expect_token(p, 617)) // token='True' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -8505,7 +8505,7 @@ literal_expr_rule(Parser *p) D(fprintf(stderr, "%*c> literal_expr[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='False' + (_keyword = _PyPegen_expect_token(p, 619)) // token='False' ) { D(fprintf(stderr, "%*c+ literal_expr[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -11108,11 +11108,11 @@ expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='else' && (c = expression_rule(p)) // expression ) @@ -11218,7 +11218,7 @@ yield_expr_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 583)) // token='yield' && - (_keyword_1 = _PyPegen_expect_token(p, 630)) // token='from' + (_keyword_1 = _PyPegen_expect_token(p, 628)) // token='from' && (a = expression_rule(p)) // expression ) @@ -11994,7 +11994,7 @@ inversion_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 696)) // token='not' + (_keyword = _PyPegen_expect_token(p, 694)) // token='not' && (a = inversion_rule(p)) // inversion ) @@ -12648,9 +12648,9 @@ notin_bitwise_or_rule(Parser *p) Token * _keyword_1; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 696)) // token='not' + (_keyword = _PyPegen_expect_token(p, 694)) // token='not' && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 686)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12696,7 +12696,7 @@ in_bitwise_or_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword = _PyPegen_expect_token(p, 686)) // token='in' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -12745,7 +12745,7 @@ isnot_bitwise_or_rule(Parser *p) if ( (_keyword = _PyPegen_expect_token(p, 592)) // token='is' && - (_keyword_1 = _PyPegen_expect_token(p, 696)) // token='not' + (_keyword_1 = _PyPegen_expect_token(p, 694)) // token='not' && (a = bitwise_or_rule(p)) // bitwise_or ) @@ -14651,7 +14651,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='True' + (_keyword = _PyPegen_expect_token(p, 617)) // token='True' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -14684,7 +14684,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='False' + (_keyword = _PyPegen_expect_token(p, 619)) // token='False' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -14717,7 +14717,7 @@ atom_rule(Parser *p) D(fprintf(stderr, "%*c> atom[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 620)) // token='None' + (_keyword = _PyPegen_expect_token(p, 618)) // token='None' ) { D(fprintf(stderr, "%*c+ atom[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -14985,7 +14985,7 @@ lambdef_rule(Parser *p) void *a; expr_ty b; if ( - (_keyword = _PyPegen_expect_token(p, 618)) // token='lambda' + (_keyword = _PyPegen_expect_token(p, 616)) // token='lambda' && (a = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -16916,13 +16916,13 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' && - (_keyword_1 = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword_1 = _PyPegen_expect_token(p, 685)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_2 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_2 = _PyPegen_expect_token(p, 686)) // token='in' && (_cut_var = 1) && @@ -16961,11 +16961,11 @@ for_if_clause_rule(Parser *p) expr_ty b; asdl_expr_seq* c; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 685)) // token='for' && (a = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 686)) // token='in' && (_cut_var = 1) && @@ -20266,11 +20266,11 @@ expression_without_invalid_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='else' && (c = expression_rule(p)) // expression ) @@ -20479,267 +20479,11 @@ invalid_type_param_rule(Parser *p) return _res; } -// invalid_ifexp_orelse_stmt: -// | return_stmt -// | raise_stmt -// | pass_stmt -// | del_stmt -// | yield_stmt -// | assert_stmt -// | break_stmt -// | continue_stmt -static stmt_ty -invalid_ifexp_orelse_stmt_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - _Pypegen_stack_overflow(p); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - stmt_ty _res = NULL; - int _mark = p->mark; - { // return_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "return_stmt")); - stmt_ty return_stmt_var; - if ( - (return_stmt_var = return_stmt_rule(p)) // return_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "return_stmt")); - _res = return_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "return_stmt")); - } - { // raise_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "raise_stmt")); - stmt_ty raise_stmt_var; - if ( - (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "raise_stmt")); - _res = raise_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "raise_stmt")); - } - { // pass_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); - stmt_ty pass_stmt_var; - if ( - (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); - _res = pass_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); - } - { // del_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_stmt")); - stmt_ty del_stmt_var; - if ( - (del_stmt_var = del_stmt_rule(p)) // del_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_stmt")); - _res = del_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_stmt")); - } - { // yield_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_stmt")); - stmt_ty yield_stmt_var; - if ( - (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_stmt")); - _res = yield_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_stmt")); - } - { // assert_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assert_stmt")); - stmt_ty assert_stmt_var; - if ( - (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assert_stmt")); - _res = assert_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assert_stmt")); - } - { // break_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); - stmt_ty break_stmt_var; - if ( - (break_stmt_var = break_stmt_rule(p)) // break_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); - _res = break_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); - } - { // continue_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_orelse_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); - stmt_ty continue_stmt_var; - if ( - (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_orelse_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); - _res = continue_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_orelse_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// invalid_ifexp_body_stmt: pass_stmt | break_stmt | continue_stmt -static stmt_ty -invalid_ifexp_body_stmt_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - _Pypegen_stack_overflow(p); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - stmt_ty _res = NULL; - int _mark = p->mark; - { // pass_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_body_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); - stmt_ty pass_stmt_var; - if ( - (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_body_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); - _res = pass_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_body_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); - } - { // break_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_body_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); - stmt_ty break_stmt_var; - if ( - (break_stmt_var = break_stmt_rule(p)) // break_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_body_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); - _res = break_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_body_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); - } - { // continue_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_ifexp_body_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); - stmt_ty continue_stmt_var; - if ( - (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt - ) - { - D(fprintf(stderr, "%*c+ invalid_ifexp_body_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); - _res = continue_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_ifexp_body_stmt[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); - } - _res = NULL; - done: - p->level--; - return _res; -} - // invalid_expression: // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid // | disjunction 'if' disjunction !('else' | ':') -// | disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt -// | invalid_ifexp_body_stmt 'if' disjunction 'else' expression -// | invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt +// | disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt) +// | (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt // | 'lambda' lambda_params? ':' &FSTRING_MIDDLE static void * invalid_expression_rule(Parser *p) @@ -20794,7 +20538,7 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (b = disjunction_rule(p)) // disjunction && @@ -20814,12 +20558,12 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } - { // disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt + { // disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt) if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt)")); Token * _keyword; Token * _keyword_1; expr_ty a; @@ -20828,16 +20572,16 @@ invalid_expression_rule(Parser *p) if ( (a = disjunction_rule(p)) // disjunction && - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='else' && - (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt + (c = (stmt_ty)_tmp_113_rule(p)) // return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt)")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( c , "statement given where 'orelse' expression required" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -20848,68 +20592,32 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); - } - { // invalid_ifexp_body_stmt 'if' disjunction 'else' expression - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' expression")); - Token * _keyword; - Token * _keyword_1; - stmt_ty a; - expr_ty b; - expr_ty c; - if ( - (a = invalid_ifexp_body_stmt_rule(p)) // invalid_ifexp_body_stmt - && - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' - && - (b = disjunction_rule(p)) // disjunction - && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' - && - (c = expression_rule(p)) // expression - ) - { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' expression")); - _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); - if (_res == NULL && PyErr_Occurred()) { - p->error_indicator = 1; - p->level--; - return NULL; - } - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' expression")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt)")); } - { // invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt + { // (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt")); Token * _keyword; Token * _keyword_1; stmt_ty a; expr_ty b; stmt_ty c; if ( - (a = invalid_ifexp_body_stmt_rule(p)) // invalid_ifexp_body_stmt + (a = (stmt_ty)_tmp_114_rule(p)) // pass_stmt | break_stmt | continue_stmt && - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (b = disjunction_rule(p)) // disjunction && - (_keyword_1 = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='else' && - (c = invalid_ifexp_orelse_stmt_rule(p)) // invalid_ifexp_orelse_stmt + (c = simple_stmt_rule(p)) // simple_stmt ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt")); _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -20920,7 +20628,7 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "invalid_ifexp_body_stmt 'if' disjunction 'else' invalid_ifexp_orelse_stmt")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt")); } { // 'lambda' lambda_params? ':' &FSTRING_MIDDLE if (p->error_indicator) { @@ -20933,7 +20641,7 @@ invalid_expression_rule(Parser *p) Token * a; Token * b; if ( - (a = _PyPegen_expect_token(p, 618)) // token='lambda' + (a = _PyPegen_expect_token(p, 616)) // token='lambda' && (_opt_var = lambda_params_rule(p), !p->error_indicator) // lambda_params? && @@ -21027,7 +20735,7 @@ invalid_named_expression_rule(Parser *p) && (b = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_113_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_115_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); @@ -21053,7 +20761,7 @@ invalid_named_expression_rule(Parser *p) Token * b; expr_ty bitwise_or_var; if ( - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_114_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_116_rule, p) && (a = bitwise_or_rule(p)) // bitwise_or && @@ -21061,7 +20769,7 @@ invalid_named_expression_rule(Parser *p) && (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_113_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_115_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')")); @@ -21141,7 +20849,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_115_var; + asdl_seq * _loop0_117_var; expr_ty a; expr_ty expression_var; if ( @@ -21149,7 +20857,7 @@ invalid_assignment_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_loop0_115_var = _loop0_115_rule(p)) // star_named_expressions* + (_loop0_117_var = _loop0_117_rule(p)) // star_named_expressions* && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -21206,10 +20914,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='")); Token * _literal; - asdl_seq * _loop0_116_var; + asdl_seq * _loop0_118_var; expr_ty a; if ( - (_loop0_116_var = _loop0_116_rule(p)) // ((star_targets '='))* + (_loop0_118_var = _loop0_118_rule(p)) // ((star_targets '='))* && (a = star_expressions_rule(p)) // star_expressions && @@ -21236,10 +20944,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='")); Token * _literal; - asdl_seq * _loop0_116_var; + asdl_seq * _loop0_118_var; expr_ty a; if ( - (_loop0_116_var = _loop0_116_rule(p)) // ((star_targets '='))* + (_loop0_118_var = _loop0_118_rule(p)) // ((star_targets '='))* && (a = yield_expr_rule(p)) // yield_expr && @@ -21404,7 +21112,7 @@ invalid_del_stmt_rule(Parser *p) Token * _keyword; expr_ty a; if ( - (_keyword = _PyPegen_expect_token(p, 622)) // token='del' + (_keyword = _PyPegen_expect_token(p, 620)) // token='del' && (a = star_expressions_rule(p)) // star_expressions ) @@ -21495,11 +21203,11 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); - void *_tmp_117_var; + void *_tmp_119_var; expr_ty a; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_117_var = _tmp_117_rule(p)) // '[' | '(' | '{' + (_tmp_119_var = _tmp_119_rule(p)) // '[' | '(' | '{' && (a = starred_expression_rule(p)) // starred_expression && @@ -21526,12 +21234,12 @@ invalid_comprehension_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); Token * _literal; - void *_tmp_118_var; + void *_tmp_120_var; expr_ty a; asdl_expr_seq* b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_118_var = _tmp_118_rule(p)) // '[' | '{' + (_tmp_120_var = _tmp_120_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -21561,12 +21269,12 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses")); - void *_tmp_118_var; + void *_tmp_120_var; expr_ty a; Token * b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_118_var = _tmp_118_rule(p)) // '[' | '{' + (_tmp_120_var = _tmp_120_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -21702,10 +21410,10 @@ invalid_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'")); asdl_seq * _loop0_32_var; - void *_tmp_119_var; + void *_tmp_121_var; Token * a; if ( - (_tmp_119_var = _tmp_119_rule(p)) // slash_no_default | slash_with_default + (_tmp_121_var = _tmp_121_rule(p)) // slash_no_default | slash_with_default && (_loop0_32_var = _loop0_32_rule(p)) // param_maybe_default* && @@ -21807,16 +21515,16 @@ invalid_parameters_rule(Parser *p) asdl_seq * _loop0_32_var_1; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_120_var; + void *_tmp_122_var; Token * a; if ( - (_opt_var = _tmp_119_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] + (_opt_var = _tmp_121_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] && (_loop0_32_var = _loop0_32_rule(p)) // param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_120_var = _tmp_120_rule(p)) // ',' | param_no_default + (_tmp_122_var = _tmp_122_rule(p)) // ',' | param_no_default && (_loop0_32_var_1 = _loop0_32_rule(p)) // param_maybe_default* && @@ -21895,7 +21603,7 @@ invalid_default_rule(Parser *p) if ( (a = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_121_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_123_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')")); @@ -21940,12 +21648,12 @@ invalid_star_etc_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); - void *_tmp_122_var; + void *_tmp_124_var; Token * a; if ( (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_122_var = _tmp_122_rule(p)) // ')' | ',' (')' | '**') + (_tmp_124_var = _tmp_124_rule(p)) // ')' | ',' (')' | '**') ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); @@ -22029,19 +21737,19 @@ invalid_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); Token * _literal; asdl_seq * _loop0_32_var; - void *_tmp_123_var; - void *_tmp_123_var_1; + void *_tmp_125_var; + void *_tmp_125_var_1; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_123_var = _tmp_123_rule(p)) // param_no_default | ',' + (_tmp_125_var = _tmp_125_rule(p)) // param_no_default | ',' && (_loop0_32_var = _loop0_32_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_123_var_1 = _tmp_123_rule(p)) // param_no_default | ',' + (_tmp_125_var_1 = _tmp_125_rule(p)) // param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); @@ -22156,7 +21864,7 @@ invalid_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_124_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_126_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')")); @@ -22293,10 +22001,10 @@ invalid_lambda_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'")); asdl_seq * _loop0_75_var; - void *_tmp_125_var; + void *_tmp_127_var; Token * a; if ( - (_tmp_125_var = _tmp_125_rule(p)) // lambda_slash_no_default | lambda_slash_with_default + (_tmp_127_var = _tmp_127_rule(p)) // lambda_slash_no_default | lambda_slash_with_default && (_loop0_75_var = _loop0_75_rule(p)) // lambda_param_maybe_default* && @@ -22356,7 +22064,7 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'")); - asdl_seq * _gather_127_var; + asdl_seq * _gather_129_var; asdl_seq * _loop0_71_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -22367,7 +22075,7 @@ invalid_lambda_parameters_rule(Parser *p) && (a = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_127_var = _gather_127_rule(p)) // ','.lambda_param+ + (_gather_129_var = _gather_129_rule(p)) // ','.lambda_param+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -22398,16 +22106,16 @@ invalid_lambda_parameters_rule(Parser *p) asdl_seq * _loop0_75_var_1; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_128_var; + void *_tmp_130_var; Token * a; if ( - (_opt_var = _tmp_125_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] + (_opt_var = _tmp_127_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] && (_loop0_75_var = _loop0_75_rule(p)) // lambda_param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_128_var = _tmp_128_rule(p)) // ',' | lambda_param_no_default + (_tmp_130_var = _tmp_130_rule(p)) // ',' | lambda_param_no_default && (_loop0_75_var_1 = _loop0_75_rule(p)) // lambda_param_maybe_default* && @@ -22550,11 +22258,11 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); Token * _literal; - void *_tmp_129_var; + void *_tmp_131_var; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_129_var = _tmp_129_rule(p)) // ':' | ',' (':' | '**') + (_tmp_131_var = _tmp_131_rule(p)) // ':' | ',' (':' | '**') ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); @@ -22608,19 +22316,19 @@ invalid_lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); Token * _literal; asdl_seq * _loop0_75_var; - void *_tmp_130_var; - void *_tmp_130_var_1; + void *_tmp_132_var; + void *_tmp_132_var_1; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_130_var = _tmp_130_rule(p)) // lambda_param_no_default | ',' + (_tmp_132_var = _tmp_132_rule(p)) // lambda_param_no_default | ',' && (_loop0_75_var = _loop0_75_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_130_var_1 = _tmp_130_rule(p)) // lambda_param_no_default | ',' + (_tmp_132_var_1 = _tmp_132_rule(p)) // lambda_param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); @@ -22738,7 +22446,7 @@ invalid_lambda_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_124_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_126_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')")); @@ -22840,7 +22548,7 @@ invalid_with_item_rule(Parser *p) if ( (expression_var = expression_rule(p)) // expression && - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (a = expression_rule(p)) // expression && @@ -22888,15 +22596,15 @@ invalid_for_if_clause_rule(Parser *p) Token * _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_131_var; + void *_tmp_133_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 685)) // token='for' && - (_tmp_131_var = _tmp_131_rule(p)) // bitwise_or ((',' bitwise_or))* ','? + (_tmp_133_var = _tmp_133_rule(p)) // bitwise_or ((',' bitwise_or))* ','? && - _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 688) // token='in' + _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 686) // token='in' ) { D(fprintf(stderr, "%*c+ invalid_for_if_clause[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'? 'for' (bitwise_or ((',' bitwise_or))* ','?) !'in'")); @@ -22942,9 +22650,9 @@ invalid_for_target_rule(Parser *p) UNUSED(_opt_var); // Silence compiler warnings expr_ty a; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 685)) // token='for' && (a = star_expressions_rule(p)) // star_expressions ) @@ -23069,16 +22777,16 @@ invalid_import_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_import[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name")); - asdl_seq * _gather_133_var; + asdl_seq * _gather_135_var; Token * _keyword; Token * a; expr_ty dotted_name_var; if ( - (a = _PyPegen_expect_token(p, 631)) // token='import' + (a = _PyPegen_expect_token(p, 629)) // token='import' && - (_gather_133_var = _gather_133_rule(p)) // ','.dotted_name+ + (_gather_135_var = _gather_135_rule(p)) // ','.dotted_name+ && - (_keyword = _PyPegen_expect_token(p, 630)) // token='from' + (_keyword = _PyPegen_expect_token(p, 628)) // token='from' && (dotted_name_var = dotted_name_rule(p)) // dotted_name ) @@ -23105,7 +22813,7 @@ invalid_import_rule(Parser *p) Token * _keyword; Token * token; if ( - (_keyword = _PyPegen_expect_token(p, 631)) // token='import' + (_keyword = _PyPegen_expect_token(p, 629)) // token='import' && (token = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23223,17 +22931,17 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE")); - asdl_seq * _gather_135_var; + asdl_seq * _gather_137_var; Token * _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword = _PyPegen_expect_token(p, 640)) // token='with' && - (_gather_135_var = _gather_135_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_137_var = _gather_137_rule(p)) // ','.(expression ['as' star_target])+ && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23257,7 +22965,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); - asdl_seq * _gather_137_var; + asdl_seq * _gather_139_var; Token * _keyword; Token * _literal; Token * _literal_1; @@ -23267,13 +22975,13 @@ invalid_with_stmt_rule(Parser *p) UNUSED(_opt_var_1); // Silence compiler warnings Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword = _PyPegen_expect_token(p, 640)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_137_var = _gather_137_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_139_var = _gather_139_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -23322,18 +23030,18 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); - asdl_seq * _gather_135_var; + asdl_seq * _gather_137_var; Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 642)) // token='with' + (a = _PyPegen_expect_token(p, 640)) // token='with' && - (_gather_135_var = _gather_135_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_137_var = _gather_137_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23361,7 +23069,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT")); - asdl_seq * _gather_137_var; + asdl_seq * _gather_139_var; Token * _literal; Token * _literal_1; Token * _literal_2; @@ -23372,13 +23080,13 @@ invalid_with_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 642)) // token='with' + (a = _PyPegen_expect_token(p, 640)) // token='with' && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_137_var = _gather_137_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_139_var = _gather_139_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -23437,7 +23145,7 @@ invalid_try_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 651)) // token='try' + (a = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23469,13 +23177,13 @@ invalid_try_stmt_rule(Parser *p) Token * _literal; asdl_stmt_seq* block_var; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='try' + (_keyword = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && (block_var = block_rule(p)) // block && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_138_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_140_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')")); @@ -23500,7 +23208,7 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_139_var; + asdl_seq * _loop0_141_var; asdl_seq * _loop1_37_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -23508,15 +23216,15 @@ invalid_try_stmt_rule(Parser *p) Token * b; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='try' + (_keyword = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_139_var = _loop0_139_rule(p)) // block* + (_loop0_141_var = _loop0_141_rule(p)) // block* && (_loop1_37_var = _loop1_37_rule(p)) // except_block+ && - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (b = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23549,23 +23257,23 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_139_var; + asdl_seq * _loop0_141_var; asdl_seq * _loop1_38_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings Token * a; if ( - (_keyword = _PyPegen_expect_token(p, 651)) // token='try' + (_keyword = _PyPegen_expect_token(p, 649)) // token='try' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_139_var = _loop0_139_rule(p)) // block* + (_loop0_141_var = _loop0_141_rule(p)) // block* && (_loop1_38_var = _loop1_38_rule(p)) // except_star_block+ && - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && - (_opt_var = _tmp_140_rule(p), !p->error_indicator) // [expression ['as' NAME]] + (_opt_var = _tmp_142_rule(p), !p->error_indicator) // [expression ['as' NAME]] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -23620,7 +23328,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (a = expression_rule(p)) // expression && @@ -23658,7 +23366,7 @@ invalid_except_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -23689,7 +23397,7 @@ invalid_except_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23718,11 +23426,11 @@ invalid_except_stmt_rule(Parser *p) expr_ty a; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (expression_var = expression_rule(p)) // expression && - (_keyword_1 = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword_1 = _PyPegen_expect_token(p, 673)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23778,7 +23486,7 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty a; expr_ty expressions_var; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23819,7 +23527,7 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -23850,14 +23558,14 @@ invalid_except_star_stmt_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_except_star_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); Token * _literal; - void *_tmp_141_var; + void *_tmp_143_var; Token * a; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_141_var = _tmp_141_rule(p)) // NEWLINE | ':' + (_tmp_143_var = _tmp_143_rule(p)) // NEWLINE | ':' ) { D(fprintf(stderr, "%*c+ invalid_except_star_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); @@ -23885,13 +23593,13 @@ invalid_except_star_stmt_rule(Parser *p) expr_ty a; expr_ty expression_var; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && (expression_var = expression_rule(p)) // expression && - (_keyword_1 = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword_1 = _PyPegen_expect_token(p, 673)) // token='as' && (a = expression_rule(p)) // expression ) @@ -23938,7 +23646,7 @@ invalid_finally_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 668)) // token='finally' + (a = _PyPegen_expect_token(p, 666)) // token='finally' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23994,7 +23702,7 @@ invalid_except_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (expression_var = expression_rule(p)) // expression && @@ -24030,7 +23738,7 @@ invalid_except_stmt_indent_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24086,7 +23794,7 @@ invalid_except_star_stmt_indent_rule(Parser *p) expr_ty expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 672)) // token='except' + (a = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && @@ -24325,7 +24033,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (a = _PyPegen_expect_soft_keyword(p, "_")) // soft_keyword='"_"' ) @@ -24355,7 +24063,7 @@ invalid_as_pattern_rule(Parser *p) if ( (or_pattern_var = or_pattern_rule(p)) // or_pattern && - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (a = expression_rule(p)) // expression ) @@ -24454,7 +24162,7 @@ invalid_class_argument_pattern_rule(Parser *p) asdl_pattern_seq* a; asdl_seq* keyword_patterns_var; if ( - (_opt_var = _tmp_142_rule(p), !p->error_indicator) // [positional_patterns ','] + (_opt_var = _tmp_144_rule(p), !p->error_indicator) // [positional_patterns ','] && (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns && @@ -24507,7 +24215,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24538,7 +24246,7 @@ invalid_if_stmt_rule(Parser *p) expr_ty a_1; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 677)) // token='if' + (a = _PyPegen_expect_token(p, 675)) // token='if' && (a_1 = named_expression_rule(p)) // named_expression && @@ -24593,7 +24301,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 679)) // token='elif' + (_keyword = _PyPegen_expect_token(p, 677)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24624,7 +24332,7 @@ invalid_elif_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 679)) // token='elif' + (a = _PyPegen_expect_token(p, 677)) // token='elif' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24677,7 +24385,7 @@ invalid_else_stmt_rule(Parser *p) Token * a; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 680)) // token='else' + (a = _PyPegen_expect_token(p, 678)) // token='else' && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -24730,7 +24438,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 682)) // token='while' + (_keyword = _PyPegen_expect_token(p, 680)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24761,7 +24469,7 @@ invalid_while_stmt_rule(Parser *p) expr_ty named_expression_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 682)) // token='while' + (a = _PyPegen_expect_token(p, 680)) // token='while' && (named_expression_var = named_expression_rule(p)) // named_expression && @@ -24820,13 +24528,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 685)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword_1 = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword_1 = _PyPegen_expect_token(p, 686)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24861,13 +24569,13 @@ invalid_for_stmt_rule(Parser *p) expr_ty star_expressions_var; expr_ty star_targets_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 687)) // token='for' + (a = _PyPegen_expect_token(p, 685)) // token='for' && (star_targets_var = star_targets_rule(p)) // star_targets && - (_keyword = _PyPegen_expect_token(p, 688)) // token='in' + (_keyword = _PyPegen_expect_token(p, 686)) // token='in' && (star_expressions_var = star_expressions_rule(p)) // star_expressions && @@ -24933,9 +24641,9 @@ invalid_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (a = _PyPegen_expect_token(p, 692)) // token='def' + (a = _PyPegen_expect_token(p, 690)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -24992,9 +24700,9 @@ invalid_def_raw_rule(Parser *p) asdl_stmt_seq* block_var; expr_ty name_var; if ( - (_opt_var = _PyPegen_expect_token(p, 691), !p->error_indicator) // 'async'? + (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && - (_keyword = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword = _PyPegen_expect_token(p, 690)) // token='def' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25058,7 +24766,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (_keyword = _PyPegen_expect_token(p, 694)) // token='class' + (_keyword = _PyPegen_expect_token(p, 692)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25097,7 +24805,7 @@ invalid_class_def_raw_rule(Parser *p) expr_ty name_var; Token * newline_var; if ( - (a = _PyPegen_expect_token(p, 694)) // token='class' + (a = _PyPegen_expect_token(p, 692)) // token='class' && (name_var = _PyPegen_name_token(p)) // NAME && @@ -25218,7 +24926,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_143_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_145_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -25328,7 +25036,7 @@ invalid_kvpair_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_143_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_145_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -25616,7 +25324,7 @@ invalid_replacement_field_rule(Parser *p) && (annotated_rhs_var = annotated_rhs_rule(p)) // annotated_rhs && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_144_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_146_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')")); @@ -25648,7 +25356,7 @@ invalid_replacement_field_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_145_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_147_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')")); @@ -25712,9 +25420,9 @@ invalid_replacement_field_rule(Parser *p) && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_146_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_148_rule(p), !p->error_indicator) // ['!' NAME] && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_147_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_149_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')")); @@ -25751,7 +25459,7 @@ invalid_replacement_field_rule(Parser *p) && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_146_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_148_rule(p), !p->error_indicator) // ['!' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25792,7 +25500,7 @@ invalid_replacement_field_rule(Parser *p) && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_146_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_148_rule(p), !p->error_indicator) // ['!' NAME] && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26) // token='}' ) @@ -25839,7 +25547,7 @@ invalid_conversion_character_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_147_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_149_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')")); @@ -25906,16 +25614,16 @@ invalid_arithmetic_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_arithmetic[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion")); - void *_tmp_148_var; + void *_tmp_150_var; Token * a; expr_ty b; expr_ty sum_var; if ( (sum_var = sum_rule(p)) // sum && - (_tmp_148_var = _tmp_148_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' + (_tmp_150_var = _tmp_150_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' && - (a = _PyPegen_expect_token(p, 696)) // token='not' + (a = _PyPegen_expect_token(p, 694)) // token='not' && (b = inversion_rule(p)) // inversion ) @@ -25958,13 +25666,13 @@ invalid_factor_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('+' | '-' | '~') 'not' factor")); - void *_tmp_149_var; + void *_tmp_151_var; Token * a; expr_ty b; if ( - (_tmp_149_var = _tmp_149_rule(p)) // '+' | '-' | '~' + (_tmp_151_var = _tmp_151_rule(p)) // '+' | '-' | '~' && - (a = _PyPegen_expect_token(p, 696)) // token='not' + (a = _PyPegen_expect_token(p, 694)) // token='not' && (b = factor_rule(p)) // factor ) @@ -26311,7 +26019,7 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 631)) // token='import' + (_keyword = _PyPegen_expect_token(p, 629)) // token='import' ) { D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'import'")); @@ -26330,7 +26038,7 @@ _tmp_5_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_5[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'from'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 630)) // token='from' + (_keyword = _PyPegen_expect_token(p, 628)) // token='from' ) { D(fprintf(stderr, "%*c+ _tmp_5[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'from'")); @@ -26368,7 +26076,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'def'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 692)) // token='def' + (_keyword = _PyPegen_expect_token(p, 690)) // token='def' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'def'")); @@ -26406,7 +26114,7 @@ _tmp_6_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_6[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_6[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26444,7 +26152,7 @@ _tmp_7_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_7[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'class'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 694)) // token='class' + (_keyword = _PyPegen_expect_token(p, 692)) // token='class' ) { D(fprintf(stderr, "%*c+ _tmp_7[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'class'")); @@ -26501,7 +26209,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'with'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 642)) // token='with' + (_keyword = _PyPegen_expect_token(p, 640)) // token='with' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'with'")); @@ -26520,7 +26228,7 @@ _tmp_8_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_8[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_8[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26558,7 +26266,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'for'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 687)) // token='for' + (_keyword = _PyPegen_expect_token(p, 685)) // token='for' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'for'")); @@ -26577,7 +26285,7 @@ _tmp_9_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_9[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 691)) // token='async' + (_keyword = _PyPegen_expect_token(p, 689)) // token='async' ) { D(fprintf(stderr, "%*c+ _tmp_9[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'async'")); @@ -26736,12 +26444,12 @@ _loop1_12_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_150_var; + void *_tmp_152_var; while ( - (_tmp_150_var = _tmp_150_rule(p)) // star_targets '=' + (_tmp_152_var = _tmp_152_rule(p)) // star_targets '=' ) { - _res = _tmp_150_var; + _res = _tmp_152_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26802,7 +26510,7 @@ _tmp_13_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 630)) // token='from' + (_keyword = _PyPegen_expect_token(p, 628)) // token='from' && (z = expression_rule(p)) // expression ) @@ -27074,12 +26782,12 @@ _loop0_18_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_151_var; + void *_tmp_153_var; while ( - (_tmp_151_var = _tmp_151_rule(p)) // '.' | '...' + (_tmp_153_var = _tmp_153_rule(p)) // '.' | '...' ) { - _res = _tmp_151_var; + _res = _tmp_153_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -27141,12 +26849,12 @@ _loop1_19_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_151_var; + void *_tmp_153_var; while ( - (_tmp_151_var = _tmp_151_rule(p)) // '.' | '...' + (_tmp_153_var = _tmp_153_rule(p)) // '.' | '...' ) { - _res = _tmp_151_var; + _res = _tmp_153_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -27324,7 +27032,7 @@ _tmp_22_rule(Parser *p) Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (z = _PyPegen_name_token(p)) // NAME ) @@ -27493,12 +27201,12 @@ _loop1_25_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_152_var; + void *_tmp_154_var; while ( - (_tmp_152_var = _tmp_152_rule(p)) // '@' named_expression NEWLINE + (_tmp_154_var = _tmp_154_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_152_var; + _res = _tmp_154_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29450,12 +29158,12 @@ _loop1_56_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_153_var; + void *_tmp_155_var; while ( - (_tmp_153_var = _tmp_153_rule(p)) // ',' star_expression + (_tmp_155_var = _tmp_155_rule(p)) // ',' star_expression ) { - _res = _tmp_153_var; + _res = _tmp_155_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29639,12 +29347,12 @@ _loop1_59_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_154_var; + void *_tmp_156_var; while ( - (_tmp_154_var = _tmp_154_rule(p)) // 'or' conjunction + (_tmp_156_var = _tmp_156_rule(p)) // 'or' conjunction ) { - _res = _tmp_154_var; + _res = _tmp_156_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29711,12 +29419,12 @@ _loop1_60_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_155_var; + void *_tmp_157_var; while ( - (_tmp_155_var = _tmp_155_rule(p)) // 'and' inversion + (_tmp_157_var = _tmp_157_rule(p)) // 'and' inversion ) { - _res = _tmp_155_var; + _res = _tmp_157_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29903,7 +29611,7 @@ _loop0_63_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_156_rule(p)) // slice | starred_expression + (elem = _tmp_158_rule(p)) // slice | starred_expression ) { _res = elem; @@ -29968,7 +29676,7 @@ _gather_64_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_156_rule(p)) // slice | starred_expression + (elem = _tmp_158_rule(p)) // slice | starred_expression && (seq = _loop0_63_rule(p)) // _loop0_63 ) @@ -30954,12 +30662,12 @@ _loop1_79_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(fstring | string)")); - void *_tmp_157_var; + void *_tmp_159_var; while ( - (_tmp_157_var = _tmp_157_rule(p)) // fstring | string + (_tmp_159_var = _tmp_159_rule(p)) // fstring | string ) { - _res = _tmp_157_var; + _res = _tmp_159_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31264,12 +30972,12 @@ _loop0_84_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_158_var; + void *_tmp_160_var; while ( - (_tmp_158_var = _tmp_158_rule(p)) // 'if' disjunction + (_tmp_160_var = _tmp_160_rule(p)) // 'if' disjunction ) { - _res = _tmp_158_var; + _res = _tmp_160_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31395,7 +31103,7 @@ _loop0_86_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_159_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_161_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -31461,7 +31169,7 @@ _gather_87_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_159_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_161_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && (seq = _loop0_86_rule(p)) // _loop0_86 ) @@ -31788,12 +31496,12 @@ _loop0_93_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_160_var; + void *_tmp_162_var; while ( - (_tmp_160_var = _tmp_160_rule(p)) // ',' star_target + (_tmp_162_var = _tmp_162_rule(p)) // ',' star_target ) { - _res = _tmp_160_var; + _res = _tmp_162_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31972,12 +31680,12 @@ _loop1_96_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_160_var; + void *_tmp_162_var; while ( - (_tmp_160_var = _tmp_160_rule(p)) // ',' star_target + (_tmp_162_var = _tmp_162_rule(p)) // ',' star_target ) { - _res = _tmp_160_var; + _res = _tmp_162_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32352,13 +32060,13 @@ _tmp_103_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); - void *_tmp_161_var; + void *_tmp_163_var; if ( - (_tmp_161_var = _tmp_161_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs + (_tmp_163_var = _tmp_163_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs ) { D(fprintf(stderr, "%*c+ _tmp_103[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); - _res = _tmp_161_var; + _res = _tmp_163_var; goto done; } p->mark = _mark; @@ -32423,7 +32131,7 @@ _loop0_104_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_162_rule(p)) // starred_expression !'=' + (elem = _tmp_164_rule(p)) // starred_expression !'=' ) { _res = elem; @@ -32488,7 +32196,7 @@ _gather_105_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_162_rule(p)) // starred_expression !'=' + (elem = _tmp_164_rule(p)) // starred_expression !'=' && (seq = _loop0_104_rule(p)) // _loop0_104 ) @@ -32686,7 +32394,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='True' + (_keyword = _PyPegen_expect_token(p, 617)) // token='True' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); @@ -32705,7 +32413,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='False' + (_keyword = _PyPegen_expect_token(p, 619)) // token='False' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); @@ -32724,7 +32432,7 @@ _tmp_109_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_109[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 620)) // token='None' + (_keyword = _PyPegen_expect_token(p, 618)) // token='None' ) { D(fprintf(stderr, "%*c+ _tmp_109[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); @@ -32863,7 +32571,7 @@ _tmp_112_rule(Parser *p) D(fprintf(stderr, "%*c> _tmp_112[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'else'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 680)) // token='else' + (_keyword = _PyPegen_expect_token(p, 678)) // token='else' ) { D(fprintf(stderr, "%*c+ _tmp_112[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'else'")); @@ -32899,9 +32607,264 @@ _tmp_112_rule(Parser *p) return _res; } -// _tmp_113: '=' | ':=' +// _tmp_113: +// | return_stmt +// | raise_stmt +// | pass_stmt +// | del_stmt +// | yield_stmt +// | assert_stmt +// | break_stmt +// | continue_stmt static void * _tmp_113_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // return_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "return_stmt")); + stmt_ty return_stmt_var; + if ( + (return_stmt_var = return_stmt_rule(p)) // return_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "return_stmt")); + _res = return_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "return_stmt")); + } + { // raise_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "raise_stmt")); + stmt_ty raise_stmt_var; + if ( + (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "raise_stmt")); + _res = raise_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "raise_stmt")); + } + { // pass_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + stmt_ty pass_stmt_var; + if ( + (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + _res = pass_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); + } + { // del_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_stmt")); + stmt_ty del_stmt_var; + if ( + (del_stmt_var = del_stmt_rule(p)) // del_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_stmt")); + _res = del_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_stmt")); + } + { // yield_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_stmt")); + stmt_ty yield_stmt_var; + if ( + (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_stmt")); + _res = yield_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_stmt")); + } + { // assert_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assert_stmt")); + stmt_ty assert_stmt_var; + if ( + (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assert_stmt")); + _res = assert_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assert_stmt")); + } + { // break_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); + stmt_ty break_stmt_var; + if ( + (break_stmt_var = break_stmt_rule(p)) // break_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); + _res = break_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); + } + { // continue_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + stmt_ty continue_stmt_var; + if ( + (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + _res = continue_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_114: pass_stmt | break_stmt | continue_stmt +static void * +_tmp_114_rule(Parser *p) +{ + if (p->level++ == MAXSTACK) { + _Pypegen_stack_overflow(p); + } + if (p->error_indicator) { + p->level--; + return NULL; + } + void * _res = NULL; + int _mark = p->mark; + { // pass_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + stmt_ty pass_stmt_var; + if ( + (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); + _res = pass_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); + } + { // break_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); + stmt_ty break_stmt_var; + if ( + (break_stmt_var = break_stmt_rule(p)) // break_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); + _res = break_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); + } + { // continue_stmt + if (p->error_indicator) { + p->level--; + return NULL; + } + D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + stmt_ty continue_stmt_var; + if ( + (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt + ) + { + D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); + _res = continue_stmt_var; + goto done; + } + p->mark = _mark; + D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); + } + _res = NULL; + done: + p->level--; + return _res; +} + +// _tmp_115: '=' | ':=' +static void * +_tmp_115_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -32917,18 +32880,18 @@ _tmp_113_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -32936,18 +32899,18 @@ _tmp_113_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_113[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_113[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_113[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -32956,9 +32919,9 @@ _tmp_113_rule(Parser *p) return _res; } -// _tmp_114: list | tuple | genexp | 'True' | 'None' | 'False' +// _tmp_116: list | tuple | genexp | 'True' | 'None' | 'False' static void * -_tmp_114_rule(Parser *p) +_tmp_116_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -32974,18 +32937,18 @@ _tmp_114_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // tuple @@ -32993,18 +32956,18 @@ _tmp_114_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // genexp @@ -33012,18 +32975,18 @@ _tmp_114_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } { // 'True' @@ -33031,18 +32994,18 @@ _tmp_114_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 619)) // token='True' + (_keyword = _PyPegen_expect_token(p, 617)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'None' @@ -33050,18 +33013,18 @@ _tmp_114_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 620)) // token='None' + (_keyword = _PyPegen_expect_token(p, 618)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } { // 'False' @@ -33069,18 +33032,18 @@ _tmp_114_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 621)) // token='False' + (_keyword = _PyPegen_expect_token(p, 619)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } _res = NULL; @@ -33089,9 +33052,9 @@ _tmp_114_rule(Parser *p) return _res; } -// _loop0_115: star_named_expressions +// _loop0_117: star_named_expressions static asdl_seq * -_loop0_115_rule(Parser *p) +_loop0_117_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33116,7 +33079,7 @@ _loop0_115_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); + D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); asdl_expr_seq* star_named_expressions_var; while ( (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions @@ -33139,7 +33102,7 @@ _loop0_115_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_115[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33156,9 +33119,9 @@ _loop0_115_rule(Parser *p) return _seq; } -// _loop0_116: (star_targets '=') +// _loop0_118: (star_targets '=') static asdl_seq * -_loop0_116_rule(Parser *p) +_loop0_118_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33183,13 +33146,13 @@ _loop0_116_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_150_var; + D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_152_var; while ( - (_tmp_150_var = _tmp_150_rule(p)) // star_targets '=' + (_tmp_152_var = _tmp_152_rule(p)) // star_targets '=' ) { - _res = _tmp_150_var; + _res = _tmp_152_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33206,7 +33169,7 @@ _loop0_116_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_116[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33223,9 +33186,9 @@ _loop0_116_rule(Parser *p) return _seq; } -// _tmp_117: '[' | '(' | '{' +// _tmp_119: '[' | '(' | '{' static void * -_tmp_117_rule(Parser *p) +_tmp_119_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33241,18 +33204,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '(' @@ -33260,18 +33223,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } { // '{' @@ -33279,18 +33242,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33299,9 +33262,9 @@ _tmp_117_rule(Parser *p) return _res; } -// _tmp_118: '[' | '{' +// _tmp_120: '[' | '{' static void * -_tmp_118_rule(Parser *p) +_tmp_120_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33317,18 +33280,18 @@ _tmp_118_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -33336,18 +33299,18 @@ _tmp_118_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_118[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_118[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33356,9 +33319,9 @@ _tmp_118_rule(Parser *p) return _res; } -// _tmp_119: slash_no_default | slash_with_default +// _tmp_121: slash_no_default | slash_with_default static void * -_tmp_119_rule(Parser *p) +_tmp_121_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33374,18 +33337,18 @@ _tmp_119_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); asdl_arg_seq* slash_no_default_var; if ( (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); _res = slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } { // slash_with_default @@ -33393,18 +33356,18 @@ _tmp_119_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); SlashWithDefault* slash_with_default_var; if ( (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); _res = slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } _res = NULL; @@ -33413,9 +33376,9 @@ _tmp_119_rule(Parser *p) return _res; } -// _tmp_120: ',' | param_no_default +// _tmp_122: ',' | param_no_default static void * -_tmp_120_rule(Parser *p) +_tmp_122_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33431,18 +33394,18 @@ _tmp_120_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // param_no_default @@ -33450,18 +33413,18 @@ _tmp_120_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } _res = NULL; @@ -33470,9 +33433,9 @@ _tmp_120_rule(Parser *p) return _res; } -// _tmp_121: ')' | ',' +// _tmp_123: ')' | ',' static void * -_tmp_121_rule(Parser *p) +_tmp_123_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33488,18 +33451,18 @@ _tmp_121_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' @@ -33507,18 +33470,18 @@ _tmp_121_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -33527,9 +33490,9 @@ _tmp_121_rule(Parser *p) return _res; } -// _tmp_122: ')' | ',' (')' | '**') +// _tmp_124: ')' | ',' (')' | '**') static void * -_tmp_122_rule(Parser *p) +_tmp_124_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33545,18 +33508,18 @@ _tmp_122_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' (')' | '**') @@ -33564,21 +33527,21 @@ _tmp_122_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_163_var; + void *_tmp_165_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_163_var = _tmp_163_rule(p)) // ')' | '**' + (_tmp_165_var = _tmp_165_rule(p)) // ')' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_163_var); + D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_165_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } _res = NULL; @@ -33587,9 +33550,9 @@ _tmp_122_rule(Parser *p) return _res; } -// _tmp_123: param_no_default | ',' +// _tmp_125: param_no_default | ',' static void * -_tmp_123_rule(Parser *p) +_tmp_125_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33605,18 +33568,18 @@ _tmp_123_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } { // ',' @@ -33624,18 +33587,18 @@ _tmp_123_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -33644,9 +33607,9 @@ _tmp_123_rule(Parser *p) return _res; } -// _tmp_124: '*' | '**' | '/' +// _tmp_126: '*' | '**' | '/' static void * -_tmp_124_rule(Parser *p) +_tmp_126_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33662,18 +33625,18 @@ _tmp_124_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '**' @@ -33681,18 +33644,18 @@ _tmp_124_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } { // '/' @@ -33700,18 +33663,18 @@ _tmp_124_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } _res = NULL; @@ -33720,9 +33683,9 @@ _tmp_124_rule(Parser *p) return _res; } -// _tmp_125: lambda_slash_no_default | lambda_slash_with_default +// _tmp_127: lambda_slash_no_default | lambda_slash_with_default static void * -_tmp_125_rule(Parser *p) +_tmp_127_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33738,18 +33701,18 @@ _tmp_125_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); asdl_arg_seq* lambda_slash_no_default_var; if ( (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); _res = lambda_slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } { // lambda_slash_with_default @@ -33757,18 +33720,18 @@ _tmp_125_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); SlashWithDefault* lambda_slash_with_default_var; if ( (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); _res = lambda_slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } _res = NULL; @@ -33777,9 +33740,9 @@ _tmp_125_rule(Parser *p) return _res; } -// _loop0_126: ',' lambda_param +// _loop0_128: ',' lambda_param static asdl_seq * -_loop0_126_rule(Parser *p) +_loop0_128_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33804,7 +33767,7 @@ _loop0_126_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); + D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); Token * _literal; arg_ty elem; while ( @@ -33836,7 +33799,7 @@ _loop0_126_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_126[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33853,9 +33816,9 @@ _loop0_126_rule(Parser *p) return _seq; } -// _gather_127: lambda_param _loop0_126 +// _gather_129: lambda_param _loop0_128 static asdl_seq * -_gather_127_rule(Parser *p) +_gather_129_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33866,27 +33829,27 @@ _gather_127_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // lambda_param _loop0_126 + { // lambda_param _loop0_128 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_126")); + D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_128")); arg_ty elem; asdl_seq * seq; if ( (elem = lambda_param_rule(p)) // lambda_param && - (seq = _loop0_126_rule(p)) // _loop0_126 + (seq = _loop0_128_rule(p)) // _loop0_128 ) { - D(fprintf(stderr, "%*c+ _gather_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_126")); + D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_128")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_127[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_126")); + D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_128")); } _res = NULL; done: @@ -33894,9 +33857,9 @@ _gather_127_rule(Parser *p) return _res; } -// _tmp_128: ',' | lambda_param_no_default +// _tmp_130: ',' | lambda_param_no_default static void * -_tmp_128_rule(Parser *p) +_tmp_130_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33912,18 +33875,18 @@ _tmp_128_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // lambda_param_no_default @@ -33931,18 +33894,18 @@ _tmp_128_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } _res = NULL; @@ -33951,9 +33914,9 @@ _tmp_128_rule(Parser *p) return _res; } -// _tmp_129: ':' | ',' (':' | '**') +// _tmp_131: ':' | ',' (':' | '**') static void * -_tmp_129_rule(Parser *p) +_tmp_131_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33969,18 +33932,18 @@ _tmp_129_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // ',' (':' | '**') @@ -33988,21 +33951,21 @@ _tmp_129_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_164_var; + void *_tmp_166_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_164_var = _tmp_164_rule(p)) // ':' | '**' + (_tmp_166_var = _tmp_166_rule(p)) // ':' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_164_var); + D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_166_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_129[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } _res = NULL; @@ -34011,9 +33974,9 @@ _tmp_129_rule(Parser *p) return _res; } -// _tmp_130: lambda_param_no_default | ',' +// _tmp_132: lambda_param_no_default | ',' static void * -_tmp_130_rule(Parser *p) +_tmp_132_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34029,18 +33992,18 @@ _tmp_130_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } { // ',' @@ -34048,18 +34011,18 @@ _tmp_130_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34068,9 +34031,9 @@ _tmp_130_rule(Parser *p) return _res; } -// _tmp_131: bitwise_or ((',' bitwise_or))* ','? +// _tmp_133: bitwise_or ((',' bitwise_or))* ','? static void * -_tmp_131_rule(Parser *p) +_tmp_133_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34086,25 +34049,25 @@ _tmp_131_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); - asdl_seq * _loop0_165_var; + D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); + asdl_seq * _loop0_167_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty bitwise_or_var; if ( (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - (_loop0_165_var = _loop0_165_rule(p)) // ((',' bitwise_or))* + (_loop0_167_var = _loop0_167_rule(p)) // ((',' bitwise_or))* && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) { - D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); - _res = _PyPegen_dummy_name(p, bitwise_or_var, _loop0_165_var, _opt_var); + D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); + _res = _PyPegen_dummy_name(p, bitwise_or_var, _loop0_167_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); } _res = NULL; @@ -34113,9 +34076,9 @@ _tmp_131_rule(Parser *p) return _res; } -// _loop0_132: ',' dotted_name +// _loop0_134: ',' dotted_name static asdl_seq * -_loop0_132_rule(Parser *p) +_loop0_134_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34140,7 +34103,7 @@ _loop0_132_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name")); + D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name")); Token * _literal; expr_ty elem; while ( @@ -34172,7 +34135,7 @@ _loop0_132_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_132[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_name")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34189,9 +34152,9 @@ _loop0_132_rule(Parser *p) return _seq; } -// _gather_133: dotted_name _loop0_132 +// _gather_135: dotted_name _loop0_134 static asdl_seq * -_gather_133_rule(Parser *p) +_gather_135_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34202,27 +34165,27 @@ _gather_133_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // dotted_name _loop0_132 + { // dotted_name _loop0_134 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_132")); + D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_134")); expr_ty elem; asdl_seq * seq; if ( (elem = dotted_name_rule(p)) // dotted_name && - (seq = _loop0_132_rule(p)) // _loop0_132 + (seq = _loop0_134_rule(p)) // _loop0_134 ) { - D(fprintf(stderr, "%*c+ _gather_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_132")); + D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_134")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_133[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_132")); + D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_134")); } _res = NULL; done: @@ -34230,9 +34193,9 @@ _gather_133_rule(Parser *p) return _res; } -// _loop0_134: ',' (expression ['as' star_target]) +// _loop0_136: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_134_rule(Parser *p) +_loop0_136_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34257,13 +34220,13 @@ _loop0_134_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_166_rule(p)) // expression ['as' star_target] + (elem = _tmp_168_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -34289,7 +34252,7 @@ _loop0_134_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34306,9 +34269,9 @@ _loop0_134_rule(Parser *p) return _seq; } -// _gather_135: (expression ['as' star_target]) _loop0_134 +// _gather_137: (expression ['as' star_target]) _loop0_136 static asdl_seq * -_gather_135_rule(Parser *p) +_gather_137_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34319,27 +34282,27 @@ _gather_135_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_134 + { // (expression ['as' star_target]) _loop0_136 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_134")); + D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_136")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_166_rule(p)) // expression ['as' star_target] + (elem = _tmp_168_rule(p)) // expression ['as' star_target] && - (seq = _loop0_134_rule(p)) // _loop0_134 + (seq = _loop0_136_rule(p)) // _loop0_136 ) { - D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_134")); + D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_136")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_134")); + D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_136")); } _res = NULL; done: @@ -34347,9 +34310,9 @@ _gather_135_rule(Parser *p) return _res; } -// _loop0_136: ',' (expressions ['as' star_target]) +// _loop0_138: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_136_rule(Parser *p) +_loop0_138_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34374,13 +34337,13 @@ _loop0_136_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_167_rule(p)) // expressions ['as' star_target] + (elem = _tmp_169_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -34406,7 +34369,7 @@ _loop0_136_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_138[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34423,9 +34386,9 @@ _loop0_136_rule(Parser *p) return _seq; } -// _gather_137: (expressions ['as' star_target]) _loop0_136 +// _gather_139: (expressions ['as' star_target]) _loop0_138 static asdl_seq * -_gather_137_rule(Parser *p) +_gather_139_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34436,27 +34399,27 @@ _gather_137_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_136 + { // (expressions ['as' star_target]) _loop0_138 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_136")); + D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_138")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_167_rule(p)) // expressions ['as' star_target] + (elem = _tmp_169_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_136_rule(p)) // _loop0_136 + (seq = _loop0_138_rule(p)) // _loop0_138 ) { - D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_136")); + D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_138")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_136")); + D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_138")); } _res = NULL; done: @@ -34464,9 +34427,9 @@ _gather_137_rule(Parser *p) return _res; } -// _tmp_138: 'except' | 'finally' +// _tmp_140: 'except' | 'finally' static void * -_tmp_138_rule(Parser *p) +_tmp_140_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34482,18 +34445,18 @@ _tmp_138_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 672)) // token='except' + (_keyword = _PyPegen_expect_token(p, 670)) // token='except' ) { - D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } { // 'finally' @@ -34501,18 +34464,18 @@ _tmp_138_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( - (_keyword = _PyPegen_expect_token(p, 668)) // token='finally' + (_keyword = _PyPegen_expect_token(p, 666)) // token='finally' ) { - D(fprintf(stderr, "%*c+ _tmp_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_138[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } _res = NULL; @@ -34521,9 +34484,9 @@ _tmp_138_rule(Parser *p) return _res; } -// _loop0_139: block +// _loop0_141: block static asdl_seq * -_loop0_139_rule(Parser *p) +_loop0_141_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34548,7 +34511,7 @@ _loop0_139_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); + D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); asdl_stmt_seq* block_var; while ( (block_var = block_rule(p)) // block @@ -34571,7 +34534,7 @@ _loop0_139_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34588,9 +34551,9 @@ _loop0_139_rule(Parser *p) return _seq; } -// _tmp_140: expression ['as' NAME] +// _tmp_142: expression ['as' NAME] static void * -_tmp_140_rule(Parser *p) +_tmp_142_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34606,7 +34569,7 @@ _tmp_140_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; @@ -34616,12 +34579,12 @@ _tmp_140_rule(Parser *p) (_opt_var = _tmp_22_rule(p), !p->error_indicator) // ['as' NAME] ) { - D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' NAME]")); } _res = NULL; @@ -34630,9 +34593,9 @@ _tmp_140_rule(Parser *p) return _res; } -// _tmp_141: NEWLINE | ':' +// _tmp_143: NEWLINE | ':' static void * -_tmp_141_rule(Parser *p) +_tmp_143_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34648,18 +34611,18 @@ _tmp_141_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); Token * newline_var; if ( (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); _res = newline_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } { // ':' @@ -34667,18 +34630,18 @@ _tmp_141_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -34687,9 +34650,9 @@ _tmp_141_rule(Parser *p) return _res; } -// _tmp_142: positional_patterns ',' +// _tmp_144: positional_patterns ',' static void * -_tmp_142_rule(Parser *p) +_tmp_144_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34705,7 +34668,7 @@ _tmp_142_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); Token * _literal; asdl_pattern_seq* positional_patterns_var; if ( @@ -34714,12 +34677,12 @@ _tmp_142_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','")); } _res = NULL; @@ -34728,9 +34691,9 @@ _tmp_142_rule(Parser *p) return _res; } -// _tmp_143: '}' | ',' +// _tmp_145: '}' | ',' static void * -_tmp_143_rule(Parser *p) +_tmp_145_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34746,18 +34709,18 @@ _tmp_143_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -34765,18 +34728,18 @@ _tmp_143_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34785,9 +34748,9 @@ _tmp_143_rule(Parser *p) return _res; } -// _tmp_144: '=' | '!' | ':' | '}' +// _tmp_146: '=' | '!' | ':' | '}' static void * -_tmp_144_rule(Parser *p) +_tmp_146_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34803,18 +34766,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // '!' @@ -34822,18 +34785,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } { // ':' @@ -34841,18 +34804,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -34860,18 +34823,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -34880,9 +34843,9 @@ _tmp_144_rule(Parser *p) return _res; } -// _tmp_145: '!' | ':' | '}' +// _tmp_147: '!' | ':' | '}' static void * -_tmp_145_rule(Parser *p) +_tmp_147_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34898,18 +34861,18 @@ _tmp_145_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } { // ':' @@ -34917,18 +34880,18 @@ _tmp_145_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -34936,18 +34899,18 @@ _tmp_145_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -34956,9 +34919,9 @@ _tmp_145_rule(Parser *p) return _res; } -// _tmp_146: '!' NAME +// _tmp_148: '!' NAME static void * -_tmp_146_rule(Parser *p) +_tmp_148_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34974,7 +34937,7 @@ _tmp_146_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); Token * _literal; expr_ty name_var; if ( @@ -34983,12 +34946,12 @@ _tmp_146_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); _res = _PyPegen_dummy_name(p, _literal, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); } _res = NULL; @@ -34997,9 +34960,9 @@ _tmp_146_rule(Parser *p) return _res; } -// _tmp_147: ':' | '}' +// _tmp_149: ':' | '}' static void * -_tmp_147_rule(Parser *p) +_tmp_149_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35015,18 +34978,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -35034,18 +34997,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -35054,9 +35017,9 @@ _tmp_147_rule(Parser *p) return _res; } -// _tmp_148: '+' | '-' | '*' | '/' | '%' | '//' | '@' +// _tmp_150: '+' | '-' | '*' | '/' | '%' | '//' | '@' static void * -_tmp_148_rule(Parser *p) +_tmp_150_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35072,18 +35035,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 14)) // token='+' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } { // '-' @@ -35091,18 +35054,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 15)) // token='-' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } { // '*' @@ -35110,18 +35073,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '/' @@ -35129,18 +35092,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } { // '%' @@ -35148,18 +35111,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 24)) // token='%' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%'")); } { // '//' @@ -35167,18 +35130,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 47)) // token='//' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//'")); } { // '@' @@ -35186,18 +35149,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 49)) // token='@' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } _res = NULL; @@ -35206,9 +35169,9 @@ _tmp_148_rule(Parser *p) return _res; } -// _tmp_149: '+' | '-' | '~' +// _tmp_151: '+' | '-' | '~' static void * -_tmp_149_rule(Parser *p) +_tmp_151_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35224,18 +35187,18 @@ _tmp_149_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 14)) // token='+' ) { - D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } { // '-' @@ -35243,18 +35206,18 @@ _tmp_149_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 15)) // token='-' ) { - D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } { // '~' @@ -35262,18 +35225,18 @@ _tmp_149_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 31)) // token='~' ) { - D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~'")); } _res = NULL; @@ -35282,9 +35245,9 @@ _tmp_149_rule(Parser *p) return _res; } -// _tmp_150: star_targets '=' +// _tmp_152: star_targets '=' static void * -_tmp_150_rule(Parser *p) +_tmp_152_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35300,7 +35263,7 @@ _tmp_150_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -35309,7 +35272,7 @@ _tmp_150_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35319,7 +35282,7 @@ _tmp_150_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -35328,9 +35291,9 @@ _tmp_150_rule(Parser *p) return _res; } -// _tmp_151: '.' | '...' +// _tmp_153: '.' | '...' static void * -_tmp_151_rule(Parser *p) +_tmp_153_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35346,18 +35309,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -35365,18 +35328,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -35385,9 +35348,9 @@ _tmp_151_rule(Parser *p) return _res; } -// _tmp_152: '@' named_expression NEWLINE +// _tmp_154: '@' named_expression NEWLINE static void * -_tmp_152_rule(Parser *p) +_tmp_154_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35403,7 +35366,7 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -35415,7 +35378,7 @@ _tmp_152_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35425,7 +35388,7 @@ _tmp_152_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -35434,9 +35397,9 @@ _tmp_152_rule(Parser *p) return _res; } -// _tmp_153: ',' star_expression +// _tmp_155: ',' star_expression static void * -_tmp_153_rule(Parser *p) +_tmp_155_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35452,7 +35415,7 @@ _tmp_153_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -35461,7 +35424,7 @@ _tmp_153_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35471,7 +35434,7 @@ _tmp_153_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -35480,9 +35443,9 @@ _tmp_153_rule(Parser *p) return _res; } -// _tmp_154: 'or' conjunction +// _tmp_156: 'or' conjunction static void * -_tmp_154_rule(Parser *p) +_tmp_156_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35498,7 +35461,7 @@ _tmp_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -35507,7 +35470,7 @@ _tmp_154_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35517,7 +35480,7 @@ _tmp_154_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -35526,9 +35489,9 @@ _tmp_154_rule(Parser *p) return _res; } -// _tmp_155: 'and' inversion +// _tmp_157: 'and' inversion static void * -_tmp_155_rule(Parser *p) +_tmp_157_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35544,7 +35507,7 @@ _tmp_155_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -35553,7 +35516,7 @@ _tmp_155_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35563,7 +35526,7 @@ _tmp_155_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -35572,9 +35535,9 @@ _tmp_155_rule(Parser *p) return _res; } -// _tmp_156: slice | starred_expression +// _tmp_158: slice | starred_expression static void * -_tmp_156_rule(Parser *p) +_tmp_158_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35590,18 +35553,18 @@ _tmp_156_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); expr_ty slice_var; if ( (slice_var = slice_rule(p)) // slice ) { - D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); _res = slice_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } { // starred_expression @@ -35609,18 +35572,18 @@ _tmp_156_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } _res = NULL; @@ -35629,9 +35592,9 @@ _tmp_156_rule(Parser *p) return _res; } -// _tmp_157: fstring | string +// _tmp_159: fstring | string static void * -_tmp_157_rule(Parser *p) +_tmp_159_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35647,18 +35610,18 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); expr_ty fstring_var; if ( (fstring_var = fstring_rule(p)) // fstring ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); _res = fstring_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); } { // string @@ -35666,18 +35629,18 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); expr_ty string_var; if ( (string_var = string_rule(p)) // string ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); _res = string_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); } _res = NULL; @@ -35686,9 +35649,9 @@ _tmp_157_rule(Parser *p) return _res; } -// _tmp_158: 'if' disjunction +// _tmp_160: 'if' disjunction static void * -_tmp_158_rule(Parser *p) +_tmp_160_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35704,16 +35667,16 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( - (_keyword = _PyPegen_expect_token(p, 677)) // token='if' + (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35723,7 +35686,7 @@ _tmp_158_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -35732,9 +35695,9 @@ _tmp_158_rule(Parser *p) return _res; } -// _tmp_159: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_161: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_159_rule(Parser *p) +_tmp_161_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35750,18 +35713,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -35769,7 +35732,7 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); void *_tmp_85_var; if ( (_tmp_85_var = _tmp_85_rule(p)) // assignment_expression | expression !':=' @@ -35777,12 +35740,12 @@ _tmp_159_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); _res = _tmp_85_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -35791,9 +35754,9 @@ _tmp_159_rule(Parser *p) return _res; } -// _tmp_160: ',' star_target +// _tmp_162: ',' star_target static void * -_tmp_160_rule(Parser *p) +_tmp_162_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35809,7 +35772,7 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -35818,7 +35781,7 @@ _tmp_160_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35828,7 +35791,7 @@ _tmp_160_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -35837,10 +35800,10 @@ _tmp_160_rule(Parser *p) return _res; } -// _tmp_161: +// _tmp_163: // | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs static void * -_tmp_161_rule(Parser *p) +_tmp_163_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35856,7 +35819,7 @@ _tmp_161_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); + D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); asdl_seq * _gather_87_var; Token * _literal; asdl_seq* kwargs_var; @@ -35868,12 +35831,12 @@ _tmp_161_rule(Parser *p) (kwargs_var = kwargs_rule(p)) // kwargs ) { - D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); + D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); _res = _PyPegen_dummy_name(p, _gather_87_var, _literal, kwargs_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); } _res = NULL; @@ -35882,9 +35845,9 @@ _tmp_161_rule(Parser *p) return _res; } -// _tmp_162: starred_expression !'=' +// _tmp_164: starred_expression !'=' static void * -_tmp_162_rule(Parser *p) +_tmp_164_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35900,7 +35863,7 @@ _tmp_162_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); + D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression @@ -35908,12 +35871,12 @@ _tmp_162_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); + D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression !'='")); } _res = NULL; @@ -35922,9 +35885,9 @@ _tmp_162_rule(Parser *p) return _res; } -// _tmp_163: ')' | '**' +// _tmp_165: ')' | '**' static void * -_tmp_163_rule(Parser *p) +_tmp_165_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35940,18 +35903,18 @@ _tmp_163_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -35959,18 +35922,18 @@ _tmp_163_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -35979,9 +35942,9 @@ _tmp_163_rule(Parser *p) return _res; } -// _tmp_164: ':' | '**' +// _tmp_166: ':' | '**' static void * -_tmp_164_rule(Parser *p) +_tmp_166_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35997,18 +35960,18 @@ _tmp_164_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -36016,18 +35979,18 @@ _tmp_164_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -36036,9 +35999,9 @@ _tmp_164_rule(Parser *p) return _res; } -// _loop0_165: (',' bitwise_or) +// _loop0_167: (',' bitwise_or) static asdl_seq * -_loop0_165_rule(Parser *p) +_loop0_167_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36063,13 +36026,13 @@ _loop0_165_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' bitwise_or)")); - void *_tmp_168_var; + D(fprintf(stderr, "%*c> _loop0_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' bitwise_or)")); + void *_tmp_170_var; while ( - (_tmp_168_var = _tmp_168_rule(p)) // ',' bitwise_or + (_tmp_170_var = _tmp_170_rule(p)) // ',' bitwise_or ) { - _res = _tmp_168_var; + _res = _tmp_170_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -36086,7 +36049,7 @@ _loop0_165_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_165[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' bitwise_or)")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36103,9 +36066,9 @@ _loop0_165_rule(Parser *p) return _seq; } -// _tmp_166: expression ['as' star_target] +// _tmp_168: expression ['as' star_target] static void * -_tmp_166_rule(Parser *p) +_tmp_168_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36121,22 +36084,22 @@ _tmp_166_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_169_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_171_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -36145,9 +36108,9 @@ _tmp_166_rule(Parser *p) return _res; } -// _tmp_167: expressions ['as' star_target] +// _tmp_169: expressions ['as' star_target] static void * -_tmp_167_rule(Parser *p) +_tmp_169_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36163,22 +36126,22 @@ _tmp_167_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_169_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_171_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -36187,9 +36150,9 @@ _tmp_167_rule(Parser *p) return _res; } -// _tmp_168: ',' bitwise_or +// _tmp_170: ',' bitwise_or static void * -_tmp_168_rule(Parser *p) +_tmp_170_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36205,7 +36168,7 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); Token * _literal; expr_ty bitwise_or_var; if ( @@ -36214,12 +36177,12 @@ _tmp_168_rule(Parser *p) (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); _res = _PyPegen_dummy_name(p, _literal, bitwise_or_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' bitwise_or")); } _res = NULL; @@ -36228,9 +36191,9 @@ _tmp_168_rule(Parser *p) return _res; } -// _tmp_169: 'as' star_target +// _tmp_171: 'as' star_target static void * -_tmp_169_rule(Parser *p) +_tmp_171_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36246,21 +36209,21 @@ _tmp_169_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( - (_keyword = _PyPegen_expect_token(p, 675)) // token='as' + (_keyword = _PyPegen_expect_token(p, 673)) // token='as' && (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; From c09bf4244d615b14835a77231370c15e9675ed91 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Tue, 11 Feb 2025 23:07:13 +0500 Subject: [PATCH 08/16] Update whatsnew for 3.14 --- Doc/whatsnew/3.14.rst | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 3c7cc1b4529d32..d7da63c1c88b17 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -175,6 +175,26 @@ Improved error messages ^^^^^^^ ValueError: too many values to unpack (expected 3, got 4) +* If a statement (:ref:`pass_stmt`, :ref:`del_stmt`, :ref:`return_stmt`, + :ref:`yield_stmt`, :ref:`raise_stmt`, :ref:`break_stmt`, :ref:`continue_stmt`) + is passed to the conditional expression (:ref:`Conditional expressions`), + then the error message highlights where the :token:`~python-grammar:expression` + is required. + + .. code-block:: pycon + + >>> x = 1 if True else pass + File "", line 1 + x = 1 if True else pass + ^^^^ + SyntaxError: statement given where 'orelse' expression required + + >>> x = continue if True else break + File "", line 1 + x = continue if True else break + ^^^^^^^^ + SyntaxError: statement given where 'body' expression required + .. _whatsnew314-pep741: From c66fbe3fcae1f31d7f62aafec047b9adab8702df Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Tue, 11 Feb 2025 23:43:27 +0500 Subject: [PATCH 09/16] Fix references in whatsnew --- Doc/whatsnew/3.14.rst | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index d7da63c1c88b17..7caffe598c3db1 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -175,11 +175,10 @@ Improved error messages ^^^^^^^ ValueError: too many values to unpack (expected 3, got 4) -* If a statement (:ref:`pass_stmt`, :ref:`del_stmt`, :ref:`return_stmt`, - :ref:`yield_stmt`, :ref:`raise_stmt`, :ref:`break_stmt`, :ref:`continue_stmt`) - is passed to the conditional expression (:ref:`Conditional expressions`), - then the error message highlights where the :token:`~python-grammar:expression` - is required. +* If a statement (:keyword:`!pass`, :keyword:`!del`, :keyword:`!return`, :keyword:`!yield`, + :keyword:`!raise`, :keyword:`!break`, :keyword:`!continue`, :keyword:`!assert`) + is passed to the :ref:`_if_expr`, then the error message highlights where + the :token:`~python-grammar:expression` is required. .. code-block:: pycon From 79a046c85c3f39019101ae0c277cbd873d523847 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Tue, 11 Feb 2025 23:52:56 +0500 Subject: [PATCH 10/16] Fix reference to if_expr --- Doc/whatsnew/3.14.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 7caffe598c3db1..206aaf512a340d 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -177,7 +177,7 @@ Improved error messages * If a statement (:keyword:`!pass`, :keyword:`!del`, :keyword:`!return`, :keyword:`!yield`, :keyword:`!raise`, :keyword:`!break`, :keyword:`!continue`, :keyword:`!assert`) - is passed to the :ref:`_if_expr`, then the error message highlights where + is passed to the :ref:`if_expr`, then the error message highlights where the :token:`~python-grammar:expression` is required. .. code-block:: pycon From c1ef4caa27c0553ff485efdf5000cc46935bc359 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Wed, 12 Feb 2025 19:54:57 +0500 Subject: [PATCH 11/16] Fix code-block in whatsnew --- Doc/whatsnew/3.14.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index dba7c6cd638914..2b641c9e102667 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -182,12 +182,14 @@ Improved error messages .. code-block:: pycon >>> x = 1 if True else pass + Traceback (most recent call last): File "", line 1 x = 1 if True else pass ^^^^ SyntaxError: statement given where 'orelse' expression required >>> x = continue if True else break + Traceback (most recent call last): File "", line 1 x = continue if True else break ^^^^^^^^ From 903d9b6515f7df3c1e0f62b38c8ac24f6690a1c0 Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Fri, 14 Feb 2025 00:13:30 +0500 Subject: [PATCH 12/16] Fix invalid rule for ifexp if statement given after else - also reword error messages - move tests to test_syntax - update whatsnew and news --- Doc/whatsnew/3.14.rst | 18 +- Grammar/python.gram | 7 +- Lib/test/test_ast/test_ast.py | 36 - Lib/test/test_syntax.py | 28 + ...-02-09-11-30-38.gh-issue-129515.3L3vmo.rst | 2 +- Parser/parser.c | 1394 +++++++---------- 6 files changed, 649 insertions(+), 836 deletions(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 9c4682a93a03bd..de4649e507c2e4 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -174,26 +174,30 @@ Improved error messages ^^^^^^^ ValueError: too many values to unpack (expected 3, got 4) -* If a statement (:keyword:`!pass`, :keyword:`!del`, :keyword:`!return`, :keyword:`!yield`, - :keyword:`!raise`, :keyword:`!break`, :keyword:`!continue`, :keyword:`!assert`) - is passed to the :ref:`if_expr`, then the error message highlights where - the :token:`~python-grammar:expression` is required. - .. code-block:: pycon +* If a statement (:keyword:`pass`, :keyword:`del`, :keyword:`return`, + :keyword:`yield`, :keyword:`raise`, :keyword:`break`, :keyword:`continue`, + :keyword:`assert`, :keyword:`import`, :keyword:`from`) is passed to the + :ref:`if_expr` after :keyword:`else`, or one of the :keyword:`pass`, + :keyword:`break`, :keyword:`continue` is passed before :keyword:`if`, then the + error message highlights where the :token:`~python-grammar:expression` is + required. (Contributed by Sergey Miryanov in :gh:`129515`.) + + .. code-block:: python >>> x = 1 if True else pass Traceback (most recent call last): File "", line 1 x = 1 if True else pass ^^^^ - SyntaxError: statement given where 'orelse' expression required + SyntaxError: expected expression after 'else', but statement is given >>> x = continue if True else break Traceback (most recent call last): File "", line 1 x = continue if True else break ^^^^^^^^ - SyntaxError: statement given where 'body' expression required + SyntaxError: expected expression before 'if', but statement is given * When incorrectly closed strings are detected, the error message suggests diff --git a/Grammar/python.gram b/Grammar/python.gram index 601d35c3429f94..eb6184016cd0d5 100644 --- a/Grammar/python.gram +++ b/Grammar/python.gram @@ -1196,11 +1196,10 @@ invalid_expression: _PyPegen_check_legacy_stmt(p, a) ? NULL : p->tokens[p->mark-1]->level == 0 ? NULL : RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "invalid syntax. Perhaps you forgot a comma?") } | a=disjunction 'if' b=disjunction !('else'|':') { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "expected 'else' after 'if' expression") } - | a=disjunction 'if' b=disjunction 'else' c[stmt_ty]=( - return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt) { - RAISE_SYNTAX_ERROR_KNOWN_LOCATION (c, "statement given where 'orelse' expression required") } + | a=disjunction 'if' b=disjunction 'else' !expression { + RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN("expected expression after 'else', but statement is given") } | a[stmt_ty]=(pass_stmt|break_stmt|continue_stmt) 'if' b=disjunction 'else' c=simple_stmt { - RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "statement given where 'body' expression required") } + RAISE_SYNTAX_ERROR_KNOWN_LOCATION (a, "expected expression before 'if', but statement is given") } | a='lambda' [lambda_params] b=':' &FSTRING_MIDDLE { RAISE_SYNTAX_ERROR_KNOWN_RANGE(a, b, "f-string: lambda expressions are not allowed without parentheses") } diff --git a/Lib/test/test_ast/test_ast.py b/Lib/test/test_ast/test_ast.py index 1f73212efd74af..434f291eebe51b 100644 --- a/Lib/test/test_ast/test_ast.py +++ b/Lib/test/test_ast/test_ast.py @@ -1966,42 +1966,6 @@ def test_ifexp(self): for args in (s, l, l), (l, s, l), (l, l, s): self.expr(ast.IfExp(*args), "must have Load context") - def test_ifexp_orelse_stmt(self): - msg = "statement given where 'orelse' expression required" - for stmt in [ - "x = 1 if 1 else pass", - "x = 1 if 1 else return", - "x = 1 if 1 else raise Exception('a')", - "x = 1 if 1 else del a", - "x = 1 if 1 else yield 2", - "x = 1 if 1 else assert False", - "x = 1 if 1 else break", - "x = 1 if 1 else continue" - ]: - with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): - ast.parse(stmt) - - def test_ifexp_body_stmt_orelse_expression(self): - msg = "statement given where 'body' expression required" - for stmt in [ - "x = pass if 1 else 1", - "x = break if 1 else 1", - "x = continue if 1 else 1" - ]: - with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): - ast.parse(stmt) - - def test_ifexp_body_stmt_orelse_stmt(self): - msg = "statement given where 'body' expression required" - for stmt in [ - "x = pass if 1 else pass", - "x = break if 1 else pass", - "x = continue if 1 else pass", - "x = continue if 1 else import ast" - ]: - with self.subTest(stmt), self.assertRaisesRegex(SyntaxError, msg): - ast.parse(stmt) - def test_dict(self): d = ast.Dict([], [ast.Name("x", ast.Load())]) self.expr(d, "same number of keys as values") diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 6d06e6f6dcb566..bbee9fb65082c7 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -2863,6 +2863,34 @@ def test_match_stmt_invalid_as_expr(self): end_offset=15 + len("obj.attr"), ) + def test_ifexp_else_stmt(self): + msg = "expected expression after 'else', but statement is given" + self._check_error("x = 1 if 1 else pass", msg) + self._check_error("x = 1 if 1 else return", msg) + self._check_error("x = 1 if 1 else return 2", msg) + self._check_error("x = 1 if 1 else raise Exception('a')", msg) + self._check_error("x = 1 if 1 else del a", msg) + self._check_error("x = 1 if 1 else yield 2", msg) + self._check_error("x = 1 if 1 else assert False", msg) + self._check_error("x = 1 if 1 else break", msg) + self._check_error("x = 1 if 1 else continue", msg) + self._check_error("x = 1 if 1 else import", msg) + self._check_error("x = 1 if 1 else import ast", msg) + self._check_error("x = 1 if 1 else from", msg) + self._check_error("x = 1 if 1 else from ast import *", msg) + + def test_ifexp_body_stmt_else_expression(self): + msg = "expected expression before 'if', but statement is given" + self._check_error("x = pass if 1 else 1", msg) + self._check_error("x = break if 1 else 1", msg) + self._check_error("x = continue if 1 else 1", msg) + + def test_ifexp_body_stmt_else_stmt(self): + msg = "expected expression before 'if', but statement is given" + self._check_error("x = pass if 1 else pass", msg) + self._check_error("x = break if 1 else pass", msg) + self._check_error("x = continue if 1 else pass", msg) + self._check_error("x = continue if 1 else import ast", msg) def load_tests(loader, tests, pattern): tests.addTest(doctest.DocTestSuite()) diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst index a89d4e503d10ef..1d0f545e65a2e9 100644 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst @@ -1,2 +1,2 @@ Clarify syntax error messages for conditional expressions if statement -specified in body and orelse parts. +specified before ``if`` or after ``else`` keywords. diff --git a/Parser/parser.c b/Parser/parser.c index af1a6e74b9c10f..5ba764725356c5 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -456,9 +456,9 @@ static char *soft_keywords[] = { #define _tmp_114_type 1369 #define _tmp_115_type 1370 #define _tmp_116_type 1371 -#define _tmp_117_type 1372 +#define _loop0_117_type 1372 #define _loop0_118_type 1373 -#define _loop0_119_type 1374 +#define _tmp_119_type 1374 #define _tmp_120_type 1375 #define _tmp_121_type 1376 #define _tmp_122_type 1377 @@ -467,21 +467,21 @@ static char *soft_keywords[] = { #define _tmp_125_type 1380 #define _tmp_126_type 1381 #define _tmp_127_type 1382 -#define _tmp_128_type 1383 -#define _loop0_129_type 1384 -#define _gather_130_type 1385 +#define _loop0_128_type 1383 +#define _gather_129_type 1384 +#define _tmp_130_type 1385 #define _tmp_131_type 1386 #define _tmp_132_type 1387 #define _tmp_133_type 1388 -#define _tmp_134_type 1389 -#define _loop0_135_type 1390 -#define _gather_136_type 1391 -#define _loop0_137_type 1392 -#define _gather_138_type 1393 -#define _loop0_139_type 1394 -#define _gather_140_type 1395 -#define _tmp_141_type 1396 -#define _loop0_142_type 1397 +#define _loop0_134_type 1389 +#define _gather_135_type 1390 +#define _loop0_136_type 1391 +#define _gather_137_type 1392 +#define _loop0_138_type 1393 +#define _gather_139_type 1394 +#define _tmp_140_type 1395 +#define _loop0_141_type 1396 +#define _tmp_142_type 1397 #define _tmp_143_type 1398 #define _tmp_144_type 1399 #define _tmp_145_type 1400 @@ -507,12 +507,11 @@ static char *soft_keywords[] = { #define _tmp_165_type 1420 #define _tmp_166_type 1421 #define _tmp_167_type 1422 -#define _tmp_168_type 1423 -#define _loop0_169_type 1424 +#define _loop0_168_type 1423 +#define _tmp_169_type 1424 #define _tmp_170_type 1425 #define _tmp_171_type 1426 #define _tmp_172_type 1427 -#define _tmp_173_type 1428 static mod_ty file_rule(Parser *p); static mod_ty interactive_rule(Parser *p); @@ -886,9 +885,9 @@ static void *_tmp_113_rule(Parser *p); static void *_tmp_114_rule(Parser *p); static void *_tmp_115_rule(Parser *p); static void *_tmp_116_rule(Parser *p); -static void *_tmp_117_rule(Parser *p); +static asdl_seq *_loop0_117_rule(Parser *p); static asdl_seq *_loop0_118_rule(Parser *p); -static asdl_seq *_loop0_119_rule(Parser *p); +static void *_tmp_119_rule(Parser *p); static void *_tmp_120_rule(Parser *p); static void *_tmp_121_rule(Parser *p); static void *_tmp_122_rule(Parser *p); @@ -897,21 +896,21 @@ static void *_tmp_124_rule(Parser *p); static void *_tmp_125_rule(Parser *p); static void *_tmp_126_rule(Parser *p); static void *_tmp_127_rule(Parser *p); -static void *_tmp_128_rule(Parser *p); -static asdl_seq *_loop0_129_rule(Parser *p); -static asdl_seq *_gather_130_rule(Parser *p); +static asdl_seq *_loop0_128_rule(Parser *p); +static asdl_seq *_gather_129_rule(Parser *p); +static void *_tmp_130_rule(Parser *p); static void *_tmp_131_rule(Parser *p); static void *_tmp_132_rule(Parser *p); static void *_tmp_133_rule(Parser *p); -static void *_tmp_134_rule(Parser *p); -static asdl_seq *_loop0_135_rule(Parser *p); -static asdl_seq *_gather_136_rule(Parser *p); -static asdl_seq *_loop0_137_rule(Parser *p); -static asdl_seq *_gather_138_rule(Parser *p); -static asdl_seq *_loop0_139_rule(Parser *p); -static asdl_seq *_gather_140_rule(Parser *p); -static void *_tmp_141_rule(Parser *p); -static asdl_seq *_loop0_142_rule(Parser *p); +static asdl_seq *_loop0_134_rule(Parser *p); +static asdl_seq *_gather_135_rule(Parser *p); +static asdl_seq *_loop0_136_rule(Parser *p); +static asdl_seq *_gather_137_rule(Parser *p); +static asdl_seq *_loop0_138_rule(Parser *p); +static asdl_seq *_gather_139_rule(Parser *p); +static void *_tmp_140_rule(Parser *p); +static asdl_seq *_loop0_141_rule(Parser *p); +static void *_tmp_142_rule(Parser *p); static void *_tmp_143_rule(Parser *p); static void *_tmp_144_rule(Parser *p); static void *_tmp_145_rule(Parser *p); @@ -937,12 +936,11 @@ static void *_tmp_164_rule(Parser *p); static void *_tmp_165_rule(Parser *p); static void *_tmp_166_rule(Parser *p); static void *_tmp_167_rule(Parser *p); -static void *_tmp_168_rule(Parser *p); -static asdl_seq *_loop0_169_rule(Parser *p); +static asdl_seq *_loop0_168_rule(Parser *p); +static void *_tmp_169_rule(Parser *p); static void *_tmp_170_rule(Parser *p); static void *_tmp_171_rule(Parser *p); static void *_tmp_172_rule(Parser *p); -static void *_tmp_173_rule(Parser *p); // file: statements? $ @@ -20487,7 +20485,7 @@ invalid_type_param_rule(Parser *p) // | STRING ((!STRING expression_without_invalid))+ STRING // | !(NAME STRING | SOFT_KEYWORD) disjunction expression_without_invalid // | disjunction 'if' disjunction !('else' | ':') -// | disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt) +// | disjunction 'if' disjunction 'else' !expression // | (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt // | 'lambda' lambda_params? ':' &FSTRING_MIDDLE static void * @@ -20593,17 +20591,16 @@ invalid_expression_rule(Parser *p) D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction !('else' | ':')")); } - { // disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt) + { // disjunction 'if' disjunction 'else' !expression if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt)")); + D(fprintf(stderr, "%*c> invalid_expression[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' !expression")); Token * _keyword; Token * _keyword_1; expr_ty a; expr_ty b; - stmt_ty c; if ( (a = disjunction_rule(p)) // disjunction && @@ -20613,11 +20610,11 @@ invalid_expression_rule(Parser *p) && (_keyword_1 = _PyPegen_expect_token(p, 678)) // token='else' && - (c = (stmt_ty)_tmp_114_rule(p)) // return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt + _PyPegen_lookahead(0, (void *(*)(Parser *)) expression_rule, p) ) { - D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt)")); - _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( c , "statement given where 'orelse' expression required" ); + D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "disjunction 'if' disjunction 'else' !expression")); + _res = RAISE_SYNTAX_ERROR_ON_NEXT_TOKEN ( "expected expression after 'else', but statement is given" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -20627,7 +20624,7 @@ invalid_expression_rule(Parser *p) } p->mark = _mark; D(fprintf(stderr, "%*c%s invalid_expression[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' (return_stmt | raise_stmt | pass_stmt | del_stmt | yield_stmt | assert_stmt | break_stmt | continue_stmt)")); + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "disjunction 'if' disjunction 'else' !expression")); } { // (pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt if (p->error_indicator) { @@ -20641,7 +20638,7 @@ invalid_expression_rule(Parser *p) expr_ty b; stmt_ty c; if ( - (a = (stmt_ty)_tmp_115_rule(p)) // pass_stmt | break_stmt | continue_stmt + (a = (stmt_ty)_tmp_114_rule(p)) // pass_stmt | break_stmt | continue_stmt && (_keyword = _PyPegen_expect_token(p, 675)) // token='if' && @@ -20653,7 +20650,7 @@ invalid_expression_rule(Parser *p) ) { D(fprintf(stderr, "%*c+ invalid_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(pass_stmt | break_stmt | continue_stmt) 'if' disjunction 'else' simple_stmt")); - _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "statement given where 'body' expression required" ); + _res = RAISE_SYNTAX_ERROR_KNOWN_LOCATION ( a , "expected expression before 'if', but statement is given" ); if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; p->level--; @@ -20770,7 +20767,7 @@ invalid_named_expression_rule(Parser *p) && (b = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_116_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_115_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NAME '=' bitwise_or !('=' | ':=')")); @@ -20796,7 +20793,7 @@ invalid_named_expression_rule(Parser *p) Token * b; expr_ty bitwise_or_var; if ( - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_117_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_116_rule, p) && (a = bitwise_or_rule(p)) // bitwise_or && @@ -20804,7 +20801,7 @@ invalid_named_expression_rule(Parser *p) && (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_116_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_115_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_named_expression[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!(list | tuple | genexp | 'True' | 'None' | 'False') bitwise_or '=' bitwise_or !('=' | ':=')")); @@ -20884,7 +20881,7 @@ invalid_assignment_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expression ',' star_named_expressions* ':' expression")); Token * _literal; Token * _literal_1; - asdl_seq * _loop0_118_var; + asdl_seq * _loop0_117_var; expr_ty a; expr_ty expression_var; if ( @@ -20892,7 +20889,7 @@ invalid_assignment_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_loop0_118_var = _loop0_118_rule(p)) // star_named_expressions* + (_loop0_117_var = _loop0_117_rule(p)) // star_named_expressions* && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -20949,10 +20946,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* star_expressions '='")); Token * _literal; - asdl_seq * _loop0_119_var; + asdl_seq * _loop0_118_var; expr_ty a; if ( - (_loop0_119_var = _loop0_119_rule(p)) // ((star_targets '='))* + (_loop0_118_var = _loop0_118_rule(p)) // ((star_targets '='))* && (a = star_expressions_rule(p)) // star_expressions && @@ -20979,10 +20976,10 @@ invalid_assignment_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_assignment[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "((star_targets '='))* yield_expr '='")); Token * _literal; - asdl_seq * _loop0_119_var; + asdl_seq * _loop0_118_var; expr_ty a; if ( - (_loop0_119_var = _loop0_119_rule(p)) // ((star_targets '='))* + (_loop0_118_var = _loop0_118_rule(p)) // ((star_targets '='))* && (a = yield_expr_rule(p)) // yield_expr && @@ -21238,11 +21235,11 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '(' | '{') starred_expression for_if_clauses")); - void *_tmp_120_var; + void *_tmp_119_var; expr_ty a; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_120_var = _tmp_120_rule(p)) // '[' | '(' | '{' + (_tmp_119_var = _tmp_119_rule(p)) // '[' | '(' | '{' && (a = starred_expression_rule(p)) // starred_expression && @@ -21269,12 +21266,12 @@ invalid_comprehension_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' star_named_expressions for_if_clauses")); Token * _literal; - void *_tmp_121_var; + void *_tmp_120_var; expr_ty a; asdl_expr_seq* b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_121_var = _tmp_121_rule(p)) // '[' | '{' + (_tmp_120_var = _tmp_120_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -21304,12 +21301,12 @@ invalid_comprehension_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_comprehension[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('[' | '{') star_named_expression ',' for_if_clauses")); - void *_tmp_121_var; + void *_tmp_120_var; expr_ty a; Token * b; asdl_comprehension_seq* for_if_clauses_var; if ( - (_tmp_121_var = _tmp_121_rule(p)) // '[' | '{' + (_tmp_120_var = _tmp_120_rule(p)) // '[' | '{' && (a = star_named_expression_rule(p)) // star_named_expression && @@ -21445,10 +21442,10 @@ invalid_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(slash_no_default | slash_with_default) param_maybe_default* '/'")); asdl_seq * _loop0_32_var; - void *_tmp_122_var; + void *_tmp_121_var; Token * a; if ( - (_tmp_122_var = _tmp_122_rule(p)) // slash_no_default | slash_with_default + (_tmp_121_var = _tmp_121_rule(p)) // slash_no_default | slash_with_default && (_loop0_32_var = _loop0_32_rule(p)) // param_maybe_default* && @@ -21550,16 +21547,16 @@ invalid_parameters_rule(Parser *p) asdl_seq * _loop0_32_var_1; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_123_var; + void *_tmp_122_var; Token * a; if ( - (_opt_var = _tmp_122_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] + (_opt_var = _tmp_121_rule(p), !p->error_indicator) // [(slash_no_default | slash_with_default)] && (_loop0_32_var = _loop0_32_rule(p)) // param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_123_var = _tmp_123_rule(p)) // ',' | param_no_default + (_tmp_122_var = _tmp_122_rule(p)) // ',' | param_no_default && (_loop0_32_var_1 = _loop0_32_rule(p)) // param_maybe_default* && @@ -21638,7 +21635,7 @@ invalid_default_rule(Parser *p) if ( (a = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_124_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_123_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_default[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'=' &(')' | ',')")); @@ -21683,12 +21680,12 @@ invalid_star_etc_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); - void *_tmp_125_var; + void *_tmp_124_var; Token * a; if ( (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_125_var = _tmp_125_rule(p)) // ')' | ',' (')' | '**') + (_tmp_124_var = _tmp_124_rule(p)) // ')' | ',' (')' | '**') ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (')' | ',' (')' | '**'))")); @@ -21772,19 +21769,19 @@ invalid_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); Token * _literal; asdl_seq * _loop0_32_var; - void *_tmp_126_var; - void *_tmp_126_var_1; + void *_tmp_125_var; + void *_tmp_125_var_1; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_126_var = _tmp_126_rule(p)) // param_no_default | ',' + (_tmp_125_var = _tmp_125_rule(p)) // param_no_default | ',' && (_loop0_32_var = _loop0_32_rule(p)) // param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_126_var_1 = _tmp_126_rule(p)) // param_no_default | ',' + (_tmp_125_var_1 = _tmp_125_rule(p)) // param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (param_no_default | ',') param_maybe_default* '*' (param_no_default | ',')")); @@ -21899,7 +21896,7 @@ invalid_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_127_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_126_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' param ',' ('*' | '**' | '/')")); @@ -22036,10 +22033,10 @@ invalid_lambda_parameters_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(lambda_slash_no_default | lambda_slash_with_default) lambda_param_maybe_default* '/'")); asdl_seq * _loop0_75_var; - void *_tmp_128_var; + void *_tmp_127_var; Token * a; if ( - (_tmp_128_var = _tmp_128_rule(p)) // lambda_slash_no_default | lambda_slash_with_default + (_tmp_127_var = _tmp_127_rule(p)) // lambda_slash_no_default | lambda_slash_with_default && (_loop0_75_var = _loop0_75_rule(p)) // lambda_param_maybe_default* && @@ -22099,7 +22096,7 @@ invalid_lambda_parameters_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_lambda_parameters[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default* '(' ','.lambda_param+ ','? ')'")); - asdl_seq * _gather_130_var; + asdl_seq * _gather_129_var; asdl_seq * _loop0_71_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -22110,7 +22107,7 @@ invalid_lambda_parameters_rule(Parser *p) && (a = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_130_var = _gather_130_rule(p)) // ','.lambda_param+ + (_gather_129_var = _gather_129_rule(p)) // ','.lambda_param+ && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -22141,16 +22138,16 @@ invalid_lambda_parameters_rule(Parser *p) asdl_seq * _loop0_75_var_1; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_131_var; + void *_tmp_130_var; Token * a; if ( - (_opt_var = _tmp_128_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] + (_opt_var = _tmp_127_rule(p), !p->error_indicator) // [(lambda_slash_no_default | lambda_slash_with_default)] && (_loop0_75_var = _loop0_75_rule(p)) // lambda_param_maybe_default* && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_131_var = _tmp_131_rule(p)) // ',' | lambda_param_no_default + (_tmp_130_var = _tmp_130_rule(p)) // ',' | lambda_param_no_default && (_loop0_75_var_1 = _loop0_75_rule(p)) // lambda_param_maybe_default* && @@ -22293,11 +22290,11 @@ invalid_lambda_star_etc_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); Token * _literal; - void *_tmp_132_var; + void *_tmp_131_var; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_132_var = _tmp_132_rule(p)) // ':' | ',' (':' | '**') + (_tmp_131_var = _tmp_131_rule(p)) // ':' | ',' (':' | '**') ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (':' | ',' (':' | '**'))")); @@ -22351,19 +22348,19 @@ invalid_lambda_star_etc_rule(Parser *p) D(fprintf(stderr, "%*c> invalid_lambda_star_etc[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); Token * _literal; asdl_seq * _loop0_75_var; - void *_tmp_133_var; - void *_tmp_133_var_1; + void *_tmp_132_var; + void *_tmp_132_var_1; Token * a; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_133_var = _tmp_133_rule(p)) // lambda_param_no_default | ',' + (_tmp_132_var = _tmp_132_rule(p)) // lambda_param_no_default | ',' && (_loop0_75_var = _loop0_75_rule(p)) // lambda_param_maybe_default* && (a = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_133_var_1 = _tmp_133_rule(p)) // lambda_param_no_default | ',' + (_tmp_132_var_1 = _tmp_132_rule(p)) // lambda_param_no_default | ',' ) { D(fprintf(stderr, "%*c+ invalid_lambda_star_etc[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*' (lambda_param_no_default | ',') lambda_param_maybe_default* '*' (lambda_param_no_default | ',')")); @@ -22481,7 +22478,7 @@ invalid_lambda_kwds_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 12)) // token=',' && - (a = (Token*)_tmp_127_rule(p)) // '*' | '**' | '/' + (a = (Token*)_tmp_126_rule(p)) // '*' | '**' | '/' ) { D(fprintf(stderr, "%*c+ invalid_lambda_kwds[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**' lambda_param ',' ('*' | '**' | '/')")); @@ -22631,13 +22628,13 @@ invalid_for_if_clause_rule(Parser *p) Token * _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings - void *_tmp_134_var; + void *_tmp_133_var; if ( (_opt_var = _PyPegen_expect_token(p, 689), !p->error_indicator) // 'async'? && (_keyword = _PyPegen_expect_token(p, 685)) // token='for' && - (_tmp_134_var = _tmp_134_rule(p)) // bitwise_or ((',' bitwise_or))* ','? + (_tmp_133_var = _tmp_133_rule(p)) // bitwise_or ((',' bitwise_or))* ','? && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 686) // token='in' ) @@ -22812,14 +22809,14 @@ invalid_import_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_import[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'import' ','.dotted_name+ 'from' dotted_name")); - asdl_seq * _gather_136_var; + asdl_seq * _gather_135_var; Token * _keyword; Token * a; expr_ty dotted_name_var; if ( (a = _PyPegen_expect_token(p, 629)) // token='import' && - (_gather_136_var = _gather_136_rule(p)) // ','.dotted_name+ + (_gather_135_var = _gather_135_rule(p)) // ','.dotted_name+ && (_keyword = _PyPegen_expect_token(p, 628)) // token='from' && @@ -22966,7 +22963,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ NEWLINE")); - asdl_seq * _gather_138_var; + asdl_seq * _gather_137_var; Token * _keyword; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -22976,7 +22973,7 @@ invalid_with_stmt_rule(Parser *p) && (_keyword = _PyPegen_expect_token(p, 640)) // token='with' && - (_gather_138_var = _gather_138_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_137_var = _gather_137_rule(p)) // ','.(expression ['as' star_target])+ && (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) @@ -23000,7 +22997,7 @@ invalid_with_stmt_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' NEWLINE")); - asdl_seq * _gather_140_var; + asdl_seq * _gather_139_var; Token * _keyword; Token * _literal; Token * _literal_1; @@ -23016,7 +23013,7 @@ invalid_with_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_140_var = _gather_140_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_139_var = _gather_139_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -23065,7 +23062,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' ','.(expression ['as' star_target])+ ':' NEWLINE !INDENT")); - asdl_seq * _gather_138_var; + asdl_seq * _gather_137_var; Token * _literal; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -23076,7 +23073,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (a = _PyPegen_expect_token(p, 640)) // token='with' && - (_gather_138_var = _gather_138_rule(p)) // ','.(expression ['as' star_target])+ + (_gather_137_var = _gather_137_rule(p)) // ','.(expression ['as' star_target])+ && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && @@ -23104,7 +23101,7 @@ invalid_with_stmt_indent_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_with_stmt_indent[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'async'? 'with' '(' ','.(expressions ['as' star_target])+ ','? ')' ':' NEWLINE !INDENT")); - asdl_seq * _gather_140_var; + asdl_seq * _gather_139_var; Token * _literal; Token * _literal_1; Token * _literal_2; @@ -23121,7 +23118,7 @@ invalid_with_stmt_indent_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 7)) // token='(' && - (_gather_140_var = _gather_140_rule(p)) // ','.(expressions ['as' star_target])+ + (_gather_139_var = _gather_139_rule(p)) // ','.(expressions ['as' star_target])+ && (_opt_var_1 = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? && @@ -23218,7 +23215,7 @@ invalid_try_stmt_rule(Parser *p) && (block_var = block_rule(p)) // block && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_141_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_140_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_try_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'try' ':' block !('except' | 'finally')")); @@ -23243,7 +23240,7 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_142_var; + asdl_seq * _loop0_141_var; asdl_seq * _loop1_37_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -23255,7 +23252,7 @@ invalid_try_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_142_var = _loop0_142_rule(p)) // block* + (_loop0_141_var = _loop0_141_rule(p)) // block* && (_loop1_37_var = _loop1_37_rule(p)) // except_block+ && @@ -23292,7 +23289,7 @@ invalid_try_stmt_rule(Parser *p) Token * _keyword; Token * _literal; Token * _literal_1; - asdl_seq * _loop0_142_var; + asdl_seq * _loop0_141_var; asdl_seq * _loop1_38_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings @@ -23302,13 +23299,13 @@ invalid_try_stmt_rule(Parser *p) && (_literal = _PyPegen_expect_token(p, 11)) // token=':' && - (_loop0_142_var = _loop0_142_rule(p)) // block* + (_loop0_141_var = _loop0_141_rule(p)) // block* && (_loop1_38_var = _loop1_38_rule(p)) // except_star_block+ && (a = _PyPegen_expect_token(p, 670)) // token='except' && - (_opt_var = _tmp_143_rule(p), !p->error_indicator) // [expression ['as' NAME]] + (_opt_var = _tmp_142_rule(p), !p->error_indicator) // [expression ['as' NAME]] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' ) @@ -23593,14 +23590,14 @@ invalid_except_star_stmt_rule(Parser *p) } D(fprintf(stderr, "%*c> invalid_except_star_stmt[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); Token * _literal; - void *_tmp_144_var; + void *_tmp_143_var; Token * a; if ( (a = _PyPegen_expect_token(p, 670)) // token='except' && (_literal = _PyPegen_expect_token(p, 16)) // token='*' && - (_tmp_144_var = _tmp_144_rule(p)) // NEWLINE | ':' + (_tmp_143_var = _tmp_143_rule(p)) // NEWLINE | ':' ) { D(fprintf(stderr, "%*c+ invalid_except_star_stmt[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except' '*' (NEWLINE | ':')")); @@ -24197,7 +24194,7 @@ invalid_class_argument_pattern_rule(Parser *p) asdl_pattern_seq* a; asdl_seq* keyword_patterns_var; if ( - (_opt_var = _tmp_145_rule(p), !p->error_indicator) // [positional_patterns ','] + (_opt_var = _tmp_144_rule(p), !p->error_indicator) // [positional_patterns ','] && (keyword_patterns_var = keyword_patterns_rule(p)) // keyword_patterns && @@ -24961,7 +24958,7 @@ invalid_double_starred_kvpairs_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_146_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_145_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_double_starred_kvpairs[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -25071,7 +25068,7 @@ invalid_kvpair_rule(Parser *p) && (a = _PyPegen_expect_token(p, 11)) // token=':' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_146_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_145_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_kvpair[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ':' &('}' | ',')")); @@ -25359,7 +25356,7 @@ invalid_replacement_field_rule(Parser *p) && (annotated_rhs_var = annotated_rhs_rule(p)) // annotated_rhs && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_147_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_146_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs !('=' | '!' | ':' | '}')")); @@ -25391,7 +25388,7 @@ invalid_replacement_field_rule(Parser *p) && (_literal_1 = _PyPegen_expect_token(p, 22)) // token='=' && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_148_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_147_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '=' !('!' | ':' | '}')")); @@ -25455,9 +25452,9 @@ invalid_replacement_field_rule(Parser *p) && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_149_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_148_rule(p), !p->error_indicator) // ['!' NAME] && - _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_150_rule, p) + _PyPegen_lookahead(0, (void *(*)(Parser *)) _tmp_149_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_replacement_field[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{' annotated_rhs '='? ['!' NAME] !(':' | '}')")); @@ -25494,7 +25491,7 @@ invalid_replacement_field_rule(Parser *p) && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_149_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_148_rule(p), !p->error_indicator) // ['!' NAME] && (_literal_1 = _PyPegen_expect_token(p, 11)) // token=':' && @@ -25535,7 +25532,7 @@ invalid_replacement_field_rule(Parser *p) && (_opt_var = _PyPegen_expect_token(p, 22), !p->error_indicator) // '='? && - (_opt_var_1 = _tmp_149_rule(p), !p->error_indicator) // ['!' NAME] + (_opt_var_1 = _tmp_148_rule(p), !p->error_indicator) // ['!' NAME] && _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 26) // token='}' ) @@ -25582,7 +25579,7 @@ invalid_conversion_character_rule(Parser *p) if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' && - _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_150_rule, p) + _PyPegen_lookahead(1, (void *(*)(Parser *)) _tmp_149_rule, p) ) { D(fprintf(stderr, "%*c+ invalid_conversion_character[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' &(':' | '}')")); @@ -25649,14 +25646,14 @@ invalid_arithmetic_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_arithmetic[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "sum ('+' | '-' | '*' | '/' | '%' | '//' | '@') 'not' inversion")); - void *_tmp_151_var; + void *_tmp_150_var; Token * a; expr_ty b; expr_ty sum_var; if ( (sum_var = sum_rule(p)) // sum && - (_tmp_151_var = _tmp_151_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' + (_tmp_150_var = _tmp_150_rule(p)) // '+' | '-' | '*' | '/' | '%' | '//' | '@' && (a = _PyPegen_expect_token(p, 694)) // token='not' && @@ -25701,11 +25698,11 @@ invalid_factor_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> invalid_factor[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('+' | '-' | '~') 'not' factor")); - void *_tmp_152_var; + void *_tmp_151_var; Token * a; expr_ty b; if ( - (_tmp_152_var = _tmp_152_rule(p)) // '+' | '-' | '~' + (_tmp_151_var = _tmp_151_rule(p)) // '+' | '-' | '~' && (a = _PyPegen_expect_token(p, 694)) // token='not' && @@ -26479,12 +26476,12 @@ _loop1_12_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_12[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_153_var; + void *_tmp_152_var; while ( - (_tmp_153_var = _tmp_153_rule(p)) // star_targets '=' + (_tmp_152_var = _tmp_152_rule(p)) // star_targets '=' ) { - _res = _tmp_153_var; + _res = _tmp_152_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26817,12 +26814,12 @@ _loop0_18_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_18[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_154_var; + void *_tmp_153_var; while ( - (_tmp_154_var = _tmp_154_rule(p)) // '.' | '...' + (_tmp_153_var = _tmp_153_rule(p)) // '.' | '...' ) { - _res = _tmp_154_var; + _res = _tmp_153_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -26884,12 +26881,12 @@ _loop1_19_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_19[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('.' | '...')")); - void *_tmp_154_var; + void *_tmp_153_var; while ( - (_tmp_154_var = _tmp_154_rule(p)) // '.' | '...' + (_tmp_153_var = _tmp_153_rule(p)) // '.' | '...' ) { - _res = _tmp_154_var; + _res = _tmp_153_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -27236,12 +27233,12 @@ _loop1_25_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_25[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('@' named_expression NEWLINE)")); - void *_tmp_155_var; + void *_tmp_154_var; while ( - (_tmp_155_var = _tmp_155_rule(p)) // '@' named_expression NEWLINE + (_tmp_154_var = _tmp_154_rule(p)) // '@' named_expression NEWLINE ) { - _res = _tmp_155_var; + _res = _tmp_154_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29193,12 +29190,12 @@ _loop1_56_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_56[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_expression)")); - void *_tmp_156_var; + void *_tmp_155_var; while ( - (_tmp_156_var = _tmp_156_rule(p)) // ',' star_expression + (_tmp_155_var = _tmp_155_rule(p)) // ',' star_expression ) { - _res = _tmp_156_var; + _res = _tmp_155_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29382,12 +29379,12 @@ _loop1_59_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_59[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('or' conjunction)")); - void *_tmp_157_var; + void *_tmp_156_var; while ( - (_tmp_157_var = _tmp_157_rule(p)) // 'or' conjunction + (_tmp_156_var = _tmp_156_rule(p)) // 'or' conjunction ) { - _res = _tmp_157_var; + _res = _tmp_156_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29454,12 +29451,12 @@ _loop1_60_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_60[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('and' inversion)")); - void *_tmp_158_var; + void *_tmp_157_var; while ( - (_tmp_158_var = _tmp_158_rule(p)) // 'and' inversion + (_tmp_157_var = _tmp_157_rule(p)) // 'and' inversion ) { - _res = _tmp_158_var; + _res = _tmp_157_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -29646,7 +29643,7 @@ _loop0_63_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_159_rule(p)) // slice | starred_expression + (elem = _tmp_158_rule(p)) // slice | starred_expression ) { _res = elem; @@ -29711,7 +29708,7 @@ _gather_64_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_159_rule(p)) // slice | starred_expression + (elem = _tmp_158_rule(p)) // slice | starred_expression && (seq = _loop0_63_rule(p)) // _loop0_63 ) @@ -30697,12 +30694,12 @@ _loop1_79_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_79[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(fstring | string)")); - void *_tmp_160_var; + void *_tmp_159_var; while ( - (_tmp_160_var = _tmp_160_rule(p)) // fstring | string + (_tmp_159_var = _tmp_159_rule(p)) // fstring | string ) { - _res = _tmp_160_var; + _res = _tmp_159_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31007,12 +31004,12 @@ _loop0_84_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_84[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "('if' disjunction)")); - void *_tmp_161_var; + void *_tmp_160_var; while ( - (_tmp_161_var = _tmp_161_rule(p)) // 'if' disjunction + (_tmp_160_var = _tmp_160_rule(p)) // 'if' disjunction ) { - _res = _tmp_161_var; + _res = _tmp_160_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31138,7 +31135,7 @@ _loop0_86_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_162_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_161_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' ) { _res = elem; @@ -31204,7 +31201,7 @@ _gather_87_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_162_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' + (elem = _tmp_161_rule(p)) // starred_expression | (assignment_expression | expression !':=') !'=' && (seq = _loop0_86_rule(p)) // _loop0_86 ) @@ -31531,12 +31528,12 @@ _loop0_93_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop0_93[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_163_var; + void *_tmp_162_var; while ( - (_tmp_163_var = _tmp_163_rule(p)) // ',' star_target + (_tmp_162_var = _tmp_162_rule(p)) // ',' star_target ) { - _res = _tmp_163_var; + _res = _tmp_162_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -31715,12 +31712,12 @@ _loop1_96_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_96[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' star_target)")); - void *_tmp_163_var; + void *_tmp_162_var; while ( - (_tmp_163_var = _tmp_163_rule(p)) // ',' star_target + (_tmp_162_var = _tmp_162_rule(p)) // ',' star_target ) { - _res = _tmp_163_var; + _res = _tmp_162_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32095,13 +32092,13 @@ _tmp_103_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _tmp_103[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); - void *_tmp_164_var; + void *_tmp_163_var; if ( - (_tmp_164_var = _tmp_164_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs + (_tmp_163_var = _tmp_163_rule(p)) // ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs ) { D(fprintf(stderr, "%*c+ _tmp_103[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs)")); - _res = _tmp_164_var; + _res = _tmp_163_var; goto done; } p->mark = _mark; @@ -32166,7 +32163,7 @@ _loop0_104_rule(Parser *p) while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_165_rule(p)) // starred_expression !'=' + (elem = _tmp_164_rule(p)) // starred_expression !'=' ) { _res = elem; @@ -32231,7 +32228,7 @@ _gather_105_rule(Parser *p) void *elem; asdl_seq * seq; if ( - (elem = _tmp_165_rule(p)) // starred_expression !'=' + (elem = _tmp_164_rule(p)) // starred_expression !'=' && (seq = _loop0_104_rule(p)) // _loop0_104 ) @@ -32553,12 +32550,12 @@ _loop1_111_rule(Parser *p) return NULL; } D(fprintf(stderr, "%*c> _loop1_111[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(!STRING expression_without_invalid)")); - void *_tmp_166_var; + void *_tmp_165_var; while ( - (_tmp_166_var = _tmp_166_rule(p)) // !STRING expression_without_invalid + (_tmp_165_var = _tmp_165_rule(p)) // !STRING expression_without_invalid ) { - _res = _tmp_166_var; + _res = _tmp_165_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -32714,15 +32711,7 @@ _tmp_113_rule(Parser *p) return _res; } -// _tmp_114: -// | return_stmt -// | raise_stmt -// | pass_stmt -// | del_stmt -// | yield_stmt -// | assert_stmt -// | break_stmt -// | continue_stmt +// _tmp_114: pass_stmt | break_stmt | continue_stmt static void * _tmp_114_rule(Parser *p) { @@ -32735,44 +32724,6 @@ _tmp_114_rule(Parser *p) } void * _res = NULL; int _mark = p->mark; - { // return_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "return_stmt")); - stmt_ty return_stmt_var; - if ( - (return_stmt_var = return_stmt_rule(p)) // return_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "return_stmt")); - _res = return_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "return_stmt")); - } - { // raise_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "raise_stmt")); - stmt_ty raise_stmt_var; - if ( - (raise_stmt_var = raise_stmt_rule(p)) // raise_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "raise_stmt")); - _res = raise_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "raise_stmt")); - } { // pass_stmt if (p->error_indicator) { p->level--; @@ -32792,63 +32743,6 @@ _tmp_114_rule(Parser *p) D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); } - { // del_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "del_stmt")); - stmt_ty del_stmt_var; - if ( - (del_stmt_var = del_stmt_rule(p)) // del_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "del_stmt")); - _res = del_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "del_stmt")); - } - { // yield_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "yield_stmt")); - stmt_ty yield_stmt_var; - if ( - (yield_stmt_var = yield_stmt_rule(p)) // yield_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "yield_stmt")); - _res = yield_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "yield_stmt")); - } - { // assert_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_114[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "assert_stmt")); - stmt_ty assert_stmt_var; - if ( - (assert_stmt_var = assert_stmt_rule(p)) // assert_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_114[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "assert_stmt")); - _res = assert_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_114[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "assert_stmt")); - } { // break_stmt if (p->error_indicator) { p->level--; @@ -32893,85 +32787,9 @@ _tmp_114_rule(Parser *p) return _res; } -// _tmp_115: pass_stmt | break_stmt | continue_stmt +// _tmp_115: '=' | ':=' static void * _tmp_115_rule(Parser *p) -{ - if (p->level++ == MAXSTACK) { - _Pypegen_stack_overflow(p); - } - if (p->error_indicator) { - p->level--; - return NULL; - } - void * _res = NULL; - int _mark = p->mark; - { // pass_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "pass_stmt")); - stmt_ty pass_stmt_var; - if ( - (pass_stmt_var = pass_stmt_rule(p)) // pass_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "pass_stmt")); - _res = pass_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "pass_stmt")); - } - { // break_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "break_stmt")); - stmt_ty break_stmt_var; - if ( - (break_stmt_var = break_stmt_rule(p)) // break_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "break_stmt")); - _res = break_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "break_stmt")); - } - { // continue_stmt - if (p->error_indicator) { - p->level--; - return NULL; - } - D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "continue_stmt")); - stmt_ty continue_stmt_var; - if ( - (continue_stmt_var = continue_stmt_rule(p)) // continue_stmt - ) - { - D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "continue_stmt")); - _res = continue_stmt_var; - goto done; - } - p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "continue_stmt")); - } - _res = NULL; - done: - p->level--; - return _res; -} - -// _tmp_116: '=' | ':=' -static void * -_tmp_116_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -32987,18 +32805,18 @@ _tmp_116_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // ':=' @@ -33006,18 +32824,18 @@ _tmp_116_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c> _tmp_115[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 53)) // token=':=' ) { - D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); + D(fprintf(stderr, "%*c+ _tmp_115[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_115[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':='")); } _res = NULL; @@ -33026,9 +32844,9 @@ _tmp_116_rule(Parser *p) return _res; } -// _tmp_117: list | tuple | genexp | 'True' | 'None' | 'False' +// _tmp_116: list | tuple | genexp | 'True' | 'None' | 'False' static void * -_tmp_117_rule(Parser *p) +_tmp_116_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33044,18 +32862,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "list")); expr_ty list_var; if ( (list_var = list_rule(p)) // list ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "list")); _res = list_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "list")); } { // tuple @@ -33063,18 +32881,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "tuple")); expr_ty tuple_var; if ( (tuple_var = tuple_rule(p)) // tuple ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "tuple")); _res = tuple_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "tuple")); } { // genexp @@ -33082,18 +32900,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "genexp")); expr_ty genexp_var; if ( (genexp_var = genexp_rule(p)) // genexp ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "genexp")); _res = genexp_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "genexp")); } { // 'True' @@ -33101,18 +32919,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'True'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 617)) // token='True' ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'True'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'True'")); } { // 'None' @@ -33120,18 +32938,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'None'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 618)) // token='None' ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'None'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'None'")); } { // 'False' @@ -33139,18 +32957,18 @@ _tmp_117_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c> _tmp_116[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'False'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 619)) // token='False' ) { - D(fprintf(stderr, "%*c+ _tmp_117[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); + D(fprintf(stderr, "%*c+ _tmp_116[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'False'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_117[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_116[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'False'")); } _res = NULL; @@ -33159,9 +32977,9 @@ _tmp_117_rule(Parser *p) return _res; } -// _loop0_118: star_named_expressions +// _loop0_117: star_named_expressions static asdl_seq * -_loop0_118_rule(Parser *p) +_loop0_117_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33186,7 +33004,7 @@ _loop0_118_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); + D(fprintf(stderr, "%*c> _loop0_117[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_named_expressions")); asdl_expr_seq* star_named_expressions_var; while ( (star_named_expressions_var = star_named_expressions_rule(p)) // star_named_expressions @@ -33209,7 +33027,7 @@ _loop0_118_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_117[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_named_expressions")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33226,9 +33044,9 @@ _loop0_118_rule(Parser *p) return _seq; } -// _loop0_119: (star_targets '=') +// _loop0_118: (star_targets '=') static asdl_seq * -_loop0_119_rule(Parser *p) +_loop0_118_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33253,13 +33071,13 @@ _loop0_119_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); - void *_tmp_153_var; + D(fprintf(stderr, "%*c> _loop0_118[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(star_targets '=')")); + void *_tmp_152_var; while ( - (_tmp_153_var = _tmp_153_rule(p)) // star_targets '=' + (_tmp_152_var = _tmp_152_rule(p)) // star_targets '=' ) { - _res = _tmp_153_var; + _res = _tmp_152_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -33276,7 +33094,7 @@ _loop0_119_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_119[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_118[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(star_targets '=')")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33293,9 +33111,9 @@ _loop0_119_rule(Parser *p) return _seq; } -// _tmp_120: '[' | '(' | '{' +// _tmp_119: '[' | '(' | '{' static void * -_tmp_120_rule(Parser *p) +_tmp_119_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33311,18 +33129,18 @@ _tmp_120_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '(' @@ -33330,18 +33148,18 @@ _tmp_120_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'('")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 7)) // token='(' ) { - D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); + D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'('")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'('")); } { // '{' @@ -33349,18 +33167,18 @@ _tmp_120_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_119[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_119[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_119[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33369,9 +33187,9 @@ _tmp_120_rule(Parser *p) return _res; } -// _tmp_121: '[' | '{' +// _tmp_120: '[' | '{' static void * -_tmp_121_rule(Parser *p) +_tmp_120_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33387,18 +33205,18 @@ _tmp_121_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'['")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 9)) // token='[' ) { - D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); + D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'['")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'['")); } { // '{' @@ -33406,18 +33224,18 @@ _tmp_121_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c> _tmp_120[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'{'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 25)) // token='{' ) { - D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); + D(fprintf(stderr, "%*c+ _tmp_120[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'{'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_120[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'{'")); } _res = NULL; @@ -33426,9 +33244,9 @@ _tmp_121_rule(Parser *p) return _res; } -// _tmp_122: slash_no_default | slash_with_default +// _tmp_121: slash_no_default | slash_with_default static void * -_tmp_122_rule(Parser *p) +_tmp_121_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33444,18 +33262,18 @@ _tmp_122_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_no_default")); asdl_arg_seq* slash_no_default_var; if ( (slash_no_default_var = slash_no_default_rule(p)) // slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_no_default")); _res = slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_no_default")); } { // slash_with_default @@ -33463,18 +33281,18 @@ _tmp_122_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_121[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slash_with_default")); SlashWithDefault* slash_with_default_var; if ( (slash_with_default_var = slash_with_default_rule(p)) // slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_121[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slash_with_default")); _res = slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_121[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slash_with_default")); } _res = NULL; @@ -33483,9 +33301,9 @@ _tmp_122_rule(Parser *p) return _res; } -// _tmp_123: ',' | param_no_default +// _tmp_122: ',' | param_no_default static void * -_tmp_123_rule(Parser *p) +_tmp_122_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33501,18 +33319,18 @@ _tmp_123_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // param_no_default @@ -33520,18 +33338,18 @@ _tmp_123_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_122[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_122[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_122[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } _res = NULL; @@ -33540,9 +33358,9 @@ _tmp_123_rule(Parser *p) return _res; } -// _tmp_124: ')' | ',' +// _tmp_123: ')' | ',' static void * -_tmp_124_rule(Parser *p) +_tmp_123_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33558,18 +33376,18 @@ _tmp_124_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' @@ -33577,18 +33395,18 @@ _tmp_124_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_123[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_123[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_123[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -33597,9 +33415,9 @@ _tmp_124_rule(Parser *p) return _res; } -// _tmp_125: ')' | ',' (')' | '**') +// _tmp_124: ')' | ',' (')' | '**') static void * -_tmp_125_rule(Parser *p) +_tmp_124_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33615,18 +33433,18 @@ _tmp_125_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // ',' (')' | '**') @@ -33634,21 +33452,21 @@ _tmp_125_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + D(fprintf(stderr, "%*c> _tmp_124[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); Token * _literal; - void *_tmp_167_var; + void *_tmp_166_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_167_var = _tmp_167_rule(p)) // ')' | '**' + (_tmp_166_var = _tmp_166_rule(p)) // ')' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_167_var); + D(fprintf(stderr, "%*c+ _tmp_124[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (')' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_166_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_124[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (')' | '**')")); } _res = NULL; @@ -33657,9 +33475,9 @@ _tmp_125_rule(Parser *p) return _res; } -// _tmp_126: param_no_default | ',' +// _tmp_125: param_no_default | ',' static void * -_tmp_126_rule(Parser *p) +_tmp_125_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33675,18 +33493,18 @@ _tmp_126_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "param_no_default")); arg_ty param_no_default_var; if ( (param_no_default_var = param_no_default_rule(p)) // param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "param_no_default")); _res = param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "param_no_default")); } { // ',' @@ -33694,18 +33512,18 @@ _tmp_126_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_125[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_125[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_125[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -33714,9 +33532,9 @@ _tmp_126_rule(Parser *p) return _res; } -// _tmp_127: '*' | '**' | '/' +// _tmp_126: '*' | '**' | '/' static void * -_tmp_127_rule(Parser *p) +_tmp_126_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33732,18 +33550,18 @@ _tmp_127_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '**' @@ -33751,18 +33569,18 @@ _tmp_127_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } { // '/' @@ -33770,18 +33588,18 @@ _tmp_127_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_126[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_126[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_126[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } _res = NULL; @@ -33790,9 +33608,9 @@ _tmp_127_rule(Parser *p) return _res; } -// _tmp_128: lambda_slash_no_default | lambda_slash_with_default +// _tmp_127: lambda_slash_no_default | lambda_slash_with_default static void * -_tmp_128_rule(Parser *p) +_tmp_127_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33808,18 +33626,18 @@ _tmp_128_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); asdl_arg_seq* lambda_slash_no_default_var; if ( (lambda_slash_no_default_var = lambda_slash_no_default_rule(p)) // lambda_slash_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); + D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_no_default")); _res = lambda_slash_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_no_default")); } { // lambda_slash_with_default @@ -33827,18 +33645,18 @@ _tmp_128_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c> _tmp_127[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); SlashWithDefault* lambda_slash_with_default_var; if ( (lambda_slash_with_default_var = lambda_slash_with_default_rule(p)) // lambda_slash_with_default ) { - D(fprintf(stderr, "%*c+ _tmp_128[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); + D(fprintf(stderr, "%*c+ _tmp_127[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_slash_with_default")); _res = lambda_slash_with_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_128[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_127[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_slash_with_default")); } _res = NULL; @@ -33847,9 +33665,9 @@ _tmp_128_rule(Parser *p) return _res; } -// _loop0_129: ',' lambda_param +// _loop0_128: ',' lambda_param static asdl_seq * -_loop0_129_rule(Parser *p) +_loop0_128_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33874,7 +33692,7 @@ _loop0_129_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); + D(fprintf(stderr, "%*c> _loop0_128[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' lambda_param")); Token * _literal; arg_ty elem; while ( @@ -33906,7 +33724,7 @@ _loop0_129_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_129[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_128[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' lambda_param")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -33923,9 +33741,9 @@ _loop0_129_rule(Parser *p) return _seq; } -// _gather_130: lambda_param _loop0_129 +// _gather_129: lambda_param _loop0_128 static asdl_seq * -_gather_130_rule(Parser *p) +_gather_129_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33936,27 +33754,27 @@ _gather_130_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // lambda_param _loop0_129 + { // lambda_param _loop0_128 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_129")); + D(fprintf(stderr, "%*c> _gather_129[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_128")); arg_ty elem; asdl_seq * seq; if ( (elem = lambda_param_rule(p)) // lambda_param && - (seq = _loop0_129_rule(p)) // _loop0_129 + (seq = _loop0_128_rule(p)) // _loop0_128 ) { - D(fprintf(stderr, "%*c+ _gather_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_129")); + D(fprintf(stderr, "%*c+ _gather_129[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param _loop0_128")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_130[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_129")); + D(fprintf(stderr, "%*c%s _gather_129[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param _loop0_128")); } _res = NULL; done: @@ -33964,9 +33782,9 @@ _gather_130_rule(Parser *p) return _res; } -// _tmp_131: ',' | lambda_param_no_default +// _tmp_130: ',' | lambda_param_no_default static void * -_tmp_131_rule(Parser *p) +_tmp_130_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -33982,18 +33800,18 @@ _tmp_131_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } { // lambda_param_no_default @@ -34001,18 +33819,18 @@ _tmp_131_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_130[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_130[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_130[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } _res = NULL; @@ -34021,9 +33839,9 @@ _tmp_131_rule(Parser *p) return _res; } -// _tmp_132: ':' | ',' (':' | '**') +// _tmp_131: ':' | ',' (':' | '**') static void * -_tmp_132_rule(Parser *p) +_tmp_131_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34039,18 +33857,18 @@ _tmp_132_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // ',' (':' | '**') @@ -34058,21 +33876,21 @@ _tmp_132_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + D(fprintf(stderr, "%*c> _tmp_131[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); Token * _literal; - void *_tmp_168_var; + void *_tmp_167_var; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (_tmp_168_var = _tmp_168_rule(p)) // ':' | '**' + (_tmp_167_var = _tmp_167_rule(p)) // ':' | '**' ) { - D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); - _res = _PyPegen_dummy_name(p, _literal, _tmp_168_var); + D(fprintf(stderr, "%*c+ _tmp_131[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' (':' | '**')")); + _res = _PyPegen_dummy_name(p, _literal, _tmp_167_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_131[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (':' | '**')")); } _res = NULL; @@ -34081,9 +33899,9 @@ _tmp_132_rule(Parser *p) return _res; } -// _tmp_133: lambda_param_no_default | ',' +// _tmp_132: lambda_param_no_default | ',' static void * -_tmp_133_rule(Parser *p) +_tmp_132_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34099,18 +33917,18 @@ _tmp_133_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); arg_ty lambda_param_no_default_var; if ( (lambda_param_no_default_var = lambda_param_no_default_rule(p)) // lambda_param_no_default ) { - D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); + D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "lambda_param_no_default")); _res = lambda_param_no_default_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "lambda_param_no_default")); } { // ',' @@ -34118,18 +33936,18 @@ _tmp_133_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_132[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_132[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_132[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34138,9 +33956,9 @@ _tmp_133_rule(Parser *p) return _res; } -// _tmp_134: bitwise_or ((',' bitwise_or))* ','? +// _tmp_133: bitwise_or ((',' bitwise_or))* ','? static void * -_tmp_134_rule(Parser *p) +_tmp_133_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34156,25 +33974,25 @@ _tmp_134_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); - asdl_seq * _loop0_169_var; + D(fprintf(stderr, "%*c> _tmp_133[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); + asdl_seq * _loop0_168_var; void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty bitwise_or_var; if ( (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or && - (_loop0_169_var = _loop0_169_rule(p)) // ((',' bitwise_or))* + (_loop0_168_var = _loop0_168_rule(p)) // ((',' bitwise_or))* && (_opt_var = _PyPegen_expect_token(p, 12), !p->error_indicator) // ','? ) { - D(fprintf(stderr, "%*c+ _tmp_134[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); - _res = _PyPegen_dummy_name(p, bitwise_or_var, _loop0_169_var, _opt_var); + D(fprintf(stderr, "%*c+ _tmp_133[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); + _res = _PyPegen_dummy_name(p, bitwise_or_var, _loop0_168_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_134[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_133[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "bitwise_or ((',' bitwise_or))* ','?")); } _res = NULL; @@ -34183,9 +34001,9 @@ _tmp_134_rule(Parser *p) return _res; } -// _loop0_135: ',' dotted_name +// _loop0_134: ',' dotted_name static asdl_seq * -_loop0_135_rule(Parser *p) +_loop0_134_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34210,7 +34028,7 @@ _loop0_135_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name")); + D(fprintf(stderr, "%*c> _loop0_134[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' dotted_name")); Token * _literal; expr_ty elem; while ( @@ -34242,7 +34060,7 @@ _loop0_135_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_135[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_134[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' dotted_name")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34259,9 +34077,9 @@ _loop0_135_rule(Parser *p) return _seq; } -// _gather_136: dotted_name _loop0_135 +// _gather_135: dotted_name _loop0_134 static asdl_seq * -_gather_136_rule(Parser *p) +_gather_135_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34272,27 +34090,27 @@ _gather_136_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // dotted_name _loop0_135 + { // dotted_name _loop0_134 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_135")); + D(fprintf(stderr, "%*c> _gather_135[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_134")); expr_ty elem; asdl_seq * seq; if ( (elem = dotted_name_rule(p)) // dotted_name && - (seq = _loop0_135_rule(p)) // _loop0_135 + (seq = _loop0_134_rule(p)) // _loop0_134 ) { - D(fprintf(stderr, "%*c+ _gather_136[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_135")); + D(fprintf(stderr, "%*c+ _gather_135[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "dotted_name _loop0_134")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_136[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_135")); + D(fprintf(stderr, "%*c%s _gather_135[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "dotted_name _loop0_134")); } _res = NULL; done: @@ -34300,9 +34118,9 @@ _gather_136_rule(Parser *p) return _res; } -// _loop0_137: ',' (expression ['as' star_target]) +// _loop0_136: ',' (expression ['as' star_target]) static asdl_seq * -_loop0_137_rule(Parser *p) +_loop0_136_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34327,13 +34145,13 @@ _loop0_137_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_136[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expression ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_170_rule(p)) // expression ['as' star_target] + (elem = _tmp_169_rule(p)) // expression ['as' star_target] ) { _res = elem; @@ -34359,7 +34177,7 @@ _loop0_137_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_137[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_136[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expression ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34376,9 +34194,9 @@ _loop0_137_rule(Parser *p) return _seq; } -// _gather_138: (expression ['as' star_target]) _loop0_137 +// _gather_137: (expression ['as' star_target]) _loop0_136 static asdl_seq * -_gather_138_rule(Parser *p) +_gather_137_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34389,27 +34207,27 @@ _gather_138_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expression ['as' star_target]) _loop0_137 + { // (expression ['as' star_target]) _loop0_136 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_137")); + D(fprintf(stderr, "%*c> _gather_137[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_136")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_170_rule(p)) // expression ['as' star_target] + (elem = _tmp_169_rule(p)) // expression ['as' star_target] && - (seq = _loop0_137_rule(p)) // _loop0_137 + (seq = _loop0_136_rule(p)) // _loop0_136 ) { - D(fprintf(stderr, "%*c+ _gather_138[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_137")); + D(fprintf(stderr, "%*c+ _gather_137[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expression ['as' star_target]) _loop0_136")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_138[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_137")); + D(fprintf(stderr, "%*c%s _gather_137[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expression ['as' star_target]) _loop0_136")); } _res = NULL; done: @@ -34417,9 +34235,9 @@ _gather_138_rule(Parser *p) return _res; } -// _loop0_139: ',' (expressions ['as' star_target]) +// _loop0_138: ',' (expressions ['as' star_target]) static asdl_seq * -_loop0_139_rule(Parser *p) +_loop0_138_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34444,13 +34262,13 @@ _loop0_139_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); + D(fprintf(stderr, "%*c> _loop0_138[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' (expressions ['as' star_target])")); Token * _literal; void *elem; while ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' && - (elem = _tmp_171_rule(p)) // expressions ['as' star_target] + (elem = _tmp_170_rule(p)) // expressions ['as' star_target] ) { _res = elem; @@ -34476,7 +34294,7 @@ _loop0_139_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_139[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_138[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' (expressions ['as' star_target])")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34493,9 +34311,9 @@ _loop0_139_rule(Parser *p) return _seq; } -// _gather_140: (expressions ['as' star_target]) _loop0_139 +// _gather_139: (expressions ['as' star_target]) _loop0_138 static asdl_seq * -_gather_140_rule(Parser *p) +_gather_139_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34506,27 +34324,27 @@ _gather_140_rule(Parser *p) } asdl_seq * _res = NULL; int _mark = p->mark; - { // (expressions ['as' star_target]) _loop0_139 + { // (expressions ['as' star_target]) _loop0_138 if (p->error_indicator) { p->level--; return NULL; } - D(fprintf(stderr, "%*c> _gather_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_139")); + D(fprintf(stderr, "%*c> _gather_139[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_138")); void *elem; asdl_seq * seq; if ( - (elem = _tmp_171_rule(p)) // expressions ['as' star_target] + (elem = _tmp_170_rule(p)) // expressions ['as' star_target] && - (seq = _loop0_139_rule(p)) // _loop0_139 + (seq = _loop0_138_rule(p)) // _loop0_138 ) { - D(fprintf(stderr, "%*c+ _gather_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_139")); + D(fprintf(stderr, "%*c+ _gather_139[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(expressions ['as' star_target]) _loop0_138")); _res = _PyPegen_seq_insert_in_front(p, elem, seq); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _gather_140[%d-%d]: %s failed!\n", p->level, ' ', - p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_139")); + D(fprintf(stderr, "%*c%s _gather_139[%d-%d]: %s failed!\n", p->level, ' ', + p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(expressions ['as' star_target]) _loop0_138")); } _res = NULL; done: @@ -34534,9 +34352,9 @@ _gather_140_rule(Parser *p) return _res; } -// _tmp_141: 'except' | 'finally' +// _tmp_140: 'except' | 'finally' static void * -_tmp_141_rule(Parser *p) +_tmp_140_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34552,18 +34370,18 @@ _tmp_141_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'except'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 670)) // token='except' ) { - D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); + D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'except'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'except'")); } { // 'finally' @@ -34571,18 +34389,18 @@ _tmp_141_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c> _tmp_140[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'finally'")); Token * _keyword; if ( (_keyword = _PyPegen_expect_token(p, 666)) // token='finally' ) { - D(fprintf(stderr, "%*c+ _tmp_141[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); + D(fprintf(stderr, "%*c+ _tmp_140[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'finally'")); _res = _keyword; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_141[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_140[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'finally'")); } _res = NULL; @@ -34591,9 +34409,9 @@ _tmp_141_rule(Parser *p) return _res; } -// _loop0_142: block +// _loop0_141: block static asdl_seq * -_loop0_142_rule(Parser *p) +_loop0_141_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34618,7 +34436,7 @@ _loop0_142_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); + D(fprintf(stderr, "%*c> _loop0_141[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "block")); asdl_stmt_seq* block_var; while ( (block_var = block_rule(p)) // block @@ -34641,7 +34459,7 @@ _loop0_142_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_142[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_141[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "block")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -34658,9 +34476,9 @@ _loop0_142_rule(Parser *p) return _seq; } -// _tmp_143: expression ['as' NAME] +// _tmp_142: expression ['as' NAME] static void * -_tmp_143_rule(Parser *p) +_tmp_142_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34676,7 +34494,7 @@ _tmp_143_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c> _tmp_142[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; @@ -34686,12 +34504,12 @@ _tmp_143_rule(Parser *p) (_opt_var = _tmp_22_rule(p), !p->error_indicator) // ['as' NAME] ) { - D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); + D(fprintf(stderr, "%*c+ _tmp_142[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' NAME]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_142[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' NAME]")); } _res = NULL; @@ -34700,9 +34518,9 @@ _tmp_143_rule(Parser *p) return _res; } -// _tmp_144: NEWLINE | ':' +// _tmp_143: NEWLINE | ':' static void * -_tmp_144_rule(Parser *p) +_tmp_143_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34718,18 +34536,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "NEWLINE")); Token * newline_var; if ( (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "NEWLINE")); _res = newline_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "NEWLINE")); } { // ':' @@ -34737,18 +34555,18 @@ _tmp_144_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_143[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_143[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_143[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } _res = NULL; @@ -34757,9 +34575,9 @@ _tmp_144_rule(Parser *p) return _res; } -// _tmp_145: positional_patterns ',' +// _tmp_144: positional_patterns ',' static void * -_tmp_145_rule(Parser *p) +_tmp_144_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34775,7 +34593,7 @@ _tmp_145_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c> _tmp_144[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); Token * _literal; asdl_pattern_seq* positional_patterns_var; if ( @@ -34784,12 +34602,12 @@ _tmp_145_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); + D(fprintf(stderr, "%*c+ _tmp_144[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "positional_patterns ','")); _res = _PyPegen_dummy_name(p, positional_patterns_var, _literal); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_144[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "positional_patterns ','")); } _res = NULL; @@ -34798,9 +34616,9 @@ _tmp_145_rule(Parser *p) return _res; } -// _tmp_146: '}' | ',' +// _tmp_145: '}' | ',' static void * -_tmp_146_rule(Parser *p) +_tmp_145_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34816,18 +34634,18 @@ _tmp_146_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } { // ',' @@ -34835,18 +34653,18 @@ _tmp_146_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c> _tmp_145[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 12)) // token=',' ) { - D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); + D(fprintf(stderr, "%*c+ _tmp_145[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_145[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','")); } _res = NULL; @@ -34855,9 +34673,9 @@ _tmp_146_rule(Parser *p) return _res; } -// _tmp_147: '=' | '!' | ':' | '}' +// _tmp_146: '=' | '!' | ':' | '}' static void * -_tmp_147_rule(Parser *p) +_tmp_146_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34873,18 +34691,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'='")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'='")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'='")); } { // '!' @@ -34892,18 +34710,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } { // ':' @@ -34911,18 +34729,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -34930,18 +34748,18 @@ _tmp_147_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_146[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_146[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_146[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -34950,9 +34768,9 @@ _tmp_147_rule(Parser *p) return _res; } -// _tmp_148: '!' | ':' | '}' +// _tmp_147: '!' | ':' | '}' static void * -_tmp_148_rule(Parser *p) +_tmp_147_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -34968,18 +34786,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 54)) // token='!' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!'")); } { // ':' @@ -34987,18 +34805,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -35006,18 +34824,18 @@ _tmp_148_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_147[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_147[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_147[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -35026,9 +34844,9 @@ _tmp_148_rule(Parser *p) return _res; } -// _tmp_149: '!' NAME +// _tmp_148: '!' NAME static void * -_tmp_149_rule(Parser *p) +_tmp_148_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35044,7 +34862,7 @@ _tmp_149_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c> _tmp_148[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'!' NAME")); Token * _literal; expr_ty name_var; if ( @@ -35053,12 +34871,12 @@ _tmp_149_rule(Parser *p) (name_var = _PyPegen_name_token(p)) // NAME ) { - D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); + D(fprintf(stderr, "%*c+ _tmp_148[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'!' NAME")); _res = _PyPegen_dummy_name(p, _literal, name_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_148[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'!' NAME")); } _res = NULL; @@ -35067,9 +34885,9 @@ _tmp_149_rule(Parser *p) return _res; } -// _tmp_150: ':' | '}' +// _tmp_149: ':' | '}' static void * -_tmp_150_rule(Parser *p) +_tmp_149_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35085,18 +34903,18 @@ _tmp_150_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '}' @@ -35104,18 +34922,18 @@ _tmp_150_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c> _tmp_149[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'}'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 26)) // token='}' ) { - D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); + D(fprintf(stderr, "%*c+ _tmp_149[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'}'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_149[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'}'")); } _res = NULL; @@ -35124,9 +34942,9 @@ _tmp_150_rule(Parser *p) return _res; } -// _tmp_151: '+' | '-' | '*' | '/' | '%' | '//' | '@' +// _tmp_150: '+' | '-' | '*' | '/' | '%' | '//' | '@' static void * -_tmp_151_rule(Parser *p) +_tmp_150_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35142,18 +34960,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 14)) // token='+' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } { // '-' @@ -35161,18 +34979,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 15)) // token='-' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } { // '*' @@ -35180,18 +34998,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'*'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 16)) // token='*' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'*'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'*'")); } { // '/' @@ -35199,18 +35017,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'/'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 17)) // token='/' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'/'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'/'")); } { // '%' @@ -35218,18 +35036,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'%'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 24)) // token='%' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'%'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'%'")); } { // '//' @@ -35237,18 +35055,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'//'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 47)) // token='//' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'//'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'//'")); } { // '@' @@ -35256,18 +35074,18 @@ _tmp_151_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c> _tmp_150[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 49)) // token='@' ) { - D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); + D(fprintf(stderr, "%*c+ _tmp_150[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_150[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@'")); } _res = NULL; @@ -35276,9 +35094,9 @@ _tmp_151_rule(Parser *p) return _res; } -// _tmp_152: '+' | '-' | '~' +// _tmp_151: '+' | '-' | '~' static void * -_tmp_152_rule(Parser *p) +_tmp_151_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35294,18 +35112,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'+'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 14)) // token='+' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'+'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'+'")); } { // '-' @@ -35313,18 +35131,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'-'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 15)) // token='-' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'-'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'-'")); } { // '~' @@ -35332,18 +35150,18 @@ _tmp_152_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~'")); + D(fprintf(stderr, "%*c> _tmp_151[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'~'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 31)) // token='~' ) { - D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~'")); + D(fprintf(stderr, "%*c+ _tmp_151[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'~'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_151[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'~'")); } _res = NULL; @@ -35352,9 +35170,9 @@ _tmp_152_rule(Parser *p) return _res; } -// _tmp_153: star_targets '=' +// _tmp_152: star_targets '=' static void * -_tmp_153_rule(Parser *p) +_tmp_152_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35370,7 +35188,7 @@ _tmp_153_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c> _tmp_152[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "star_targets '='")); Token * _literal; expr_ty z; if ( @@ -35379,7 +35197,7 @@ _tmp_153_rule(Parser *p) (_literal = _PyPegen_expect_token(p, 22)) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); + D(fprintf(stderr, "%*c+ _tmp_152[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "star_targets '='")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35389,7 +35207,7 @@ _tmp_153_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_152[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "star_targets '='")); } _res = NULL; @@ -35398,9 +35216,9 @@ _tmp_153_rule(Parser *p) return _res; } -// _tmp_154: '.' | '...' +// _tmp_153: '.' | '...' static void * -_tmp_154_rule(Parser *p) +_tmp_153_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35416,18 +35234,18 @@ _tmp_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'.'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 23)) // token='.' ) { - D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'.'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'.'")); } { // '...' @@ -35435,18 +35253,18 @@ _tmp_154_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c> _tmp_153[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'...'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 52)) // token='...' ) { - D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); + D(fprintf(stderr, "%*c+ _tmp_153[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'...'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_153[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'...'")); } _res = NULL; @@ -35455,9 +35273,9 @@ _tmp_154_rule(Parser *p) return _res; } -// _tmp_155: '@' named_expression NEWLINE +// _tmp_154: '@' named_expression NEWLINE static void * -_tmp_155_rule(Parser *p) +_tmp_154_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35473,7 +35291,7 @@ _tmp_155_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c> _tmp_154[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); Token * _literal; expr_ty f; Token * newline_var; @@ -35485,7 +35303,7 @@ _tmp_155_rule(Parser *p) (newline_var = _PyPegen_expect_token(p, NEWLINE)) // token='NEWLINE' ) { - D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); + D(fprintf(stderr, "%*c+ _tmp_154[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'@' named_expression NEWLINE")); _res = f; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35495,7 +35313,7 @@ _tmp_155_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_154[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'@' named_expression NEWLINE")); } _res = NULL; @@ -35504,9 +35322,9 @@ _tmp_155_rule(Parser *p) return _res; } -// _tmp_156: ',' star_expression +// _tmp_155: ',' star_expression static void * -_tmp_156_rule(Parser *p) +_tmp_155_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35522,7 +35340,7 @@ _tmp_156_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c> _tmp_155[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_expression")); Token * _literal; expr_ty c; if ( @@ -35531,7 +35349,7 @@ _tmp_156_rule(Parser *p) (c = star_expression_rule(p)) // star_expression ) { - D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); + D(fprintf(stderr, "%*c+ _tmp_155[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_expression")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35541,7 +35359,7 @@ _tmp_156_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_155[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_expression")); } _res = NULL; @@ -35550,9 +35368,9 @@ _tmp_156_rule(Parser *p) return _res; } -// _tmp_157: 'or' conjunction +// _tmp_156: 'or' conjunction static void * -_tmp_157_rule(Parser *p) +_tmp_156_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35568,7 +35386,7 @@ _tmp_157_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c> _tmp_156[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); Token * _keyword; expr_ty c; if ( @@ -35577,7 +35395,7 @@ _tmp_157_rule(Parser *p) (c = conjunction_rule(p)) // conjunction ) { - D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); + D(fprintf(stderr, "%*c+ _tmp_156[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'or' conjunction")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35587,7 +35405,7 @@ _tmp_157_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_156[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'or' conjunction")); } _res = NULL; @@ -35596,9 +35414,9 @@ _tmp_157_rule(Parser *p) return _res; } -// _tmp_158: 'and' inversion +// _tmp_157: 'and' inversion static void * -_tmp_158_rule(Parser *p) +_tmp_157_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35614,7 +35432,7 @@ _tmp_158_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c> _tmp_157[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'and' inversion")); Token * _keyword; expr_ty c; if ( @@ -35623,7 +35441,7 @@ _tmp_158_rule(Parser *p) (c = inversion_rule(p)) // inversion ) { - D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); + D(fprintf(stderr, "%*c+ _tmp_157[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'and' inversion")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35633,7 +35451,7 @@ _tmp_158_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_157[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'and' inversion")); } _res = NULL; @@ -35642,9 +35460,9 @@ _tmp_158_rule(Parser *p) return _res; } -// _tmp_159: slice | starred_expression +// _tmp_158: slice | starred_expression static void * -_tmp_159_rule(Parser *p) +_tmp_158_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35660,18 +35478,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "slice")); expr_ty slice_var; if ( (slice_var = slice_rule(p)) // slice ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "slice")); _res = slice_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "slice")); } { // starred_expression @@ -35679,18 +35497,18 @@ _tmp_159_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_158[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_158[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_158[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } _res = NULL; @@ -35699,9 +35517,9 @@ _tmp_159_rule(Parser *p) return _res; } -// _tmp_160: fstring | string +// _tmp_159: fstring | string static void * -_tmp_160_rule(Parser *p) +_tmp_159_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35717,18 +35535,18 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "fstring")); expr_ty fstring_var; if ( (fstring_var = fstring_rule(p)) // fstring ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "fstring")); _res = fstring_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "fstring")); } { // string @@ -35736,18 +35554,18 @@ _tmp_160_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); + D(fprintf(stderr, "%*c> _tmp_159[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "string")); expr_ty string_var; if ( (string_var = string_rule(p)) // string ) { - D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); + D(fprintf(stderr, "%*c+ _tmp_159[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "string")); _res = string_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_159[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "string")); } _res = NULL; @@ -35756,9 +35574,9 @@ _tmp_160_rule(Parser *p) return _res; } -// _tmp_161: 'if' disjunction +// _tmp_160: 'if' disjunction static void * -_tmp_161_rule(Parser *p) +_tmp_160_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35774,7 +35592,7 @@ _tmp_161_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c> _tmp_160[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); Token * _keyword; expr_ty z; if ( @@ -35783,7 +35601,7 @@ _tmp_161_rule(Parser *p) (z = disjunction_rule(p)) // disjunction ) { - D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); + D(fprintf(stderr, "%*c+ _tmp_160[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'if' disjunction")); _res = z; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35793,7 +35611,7 @@ _tmp_161_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_160[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'if' disjunction")); } _res = NULL; @@ -35802,9 +35620,9 @@ _tmp_161_rule(Parser *p) return _res; } -// _tmp_162: starred_expression | (assignment_expression | expression !':=') !'=' +// _tmp_161: starred_expression | (assignment_expression | expression !':=') !'=' static void * -_tmp_162_rule(Parser *p) +_tmp_161_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35820,18 +35638,18 @@ _tmp_162_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression ) { - D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression")); } { // (assignment_expression | expression !':=') !'=' @@ -35839,7 +35657,7 @@ _tmp_162_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + D(fprintf(stderr, "%*c> _tmp_161[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); void *_tmp_85_var; if ( (_tmp_85_var = _tmp_85_rule(p)) // assignment_expression | expression !':=' @@ -35847,12 +35665,12 @@ _tmp_162_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); + D(fprintf(stderr, "%*c+ _tmp_161[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "(assignment_expression | expression !':=') !'='")); _res = _tmp_85_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_161[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(assignment_expression | expression !':=') !'='")); } _res = NULL; @@ -35861,9 +35679,9 @@ _tmp_162_rule(Parser *p) return _res; } -// _tmp_163: ',' star_target +// _tmp_162: ',' star_target static void * -_tmp_163_rule(Parser *p) +_tmp_162_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35879,7 +35697,7 @@ _tmp_163_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c> _tmp_162[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' star_target")); Token * _literal; expr_ty c; if ( @@ -35888,7 +35706,7 @@ _tmp_163_rule(Parser *p) (c = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); + D(fprintf(stderr, "%*c+ _tmp_162[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' star_target")); _res = c; if (_res == NULL && PyErr_Occurred()) { p->error_indicator = 1; @@ -35898,7 +35716,7 @@ _tmp_163_rule(Parser *p) goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_162[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' star_target")); } _res = NULL; @@ -35907,10 +35725,10 @@ _tmp_163_rule(Parser *p) return _res; } -// _tmp_164: +// _tmp_163: // | ','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs static void * -_tmp_164_rule(Parser *p) +_tmp_163_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35926,7 +35744,7 @@ _tmp_164_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); + D(fprintf(stderr, "%*c> _tmp_163[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); asdl_seq * _gather_87_var; Token * _literal; asdl_seq* kwargs_var; @@ -35938,12 +35756,12 @@ _tmp_164_rule(Parser *p) (kwargs_var = kwargs_rule(p)) // kwargs ) { - D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); + D(fprintf(stderr, "%*c+ _tmp_163[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); _res = _PyPegen_dummy_name(p, _gather_87_var, _literal, kwargs_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_163[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "','.(starred_expression | (assignment_expression | expression !':=') !'=')+ ',' kwargs")); } _res = NULL; @@ -35952,9 +35770,9 @@ _tmp_164_rule(Parser *p) return _res; } -// _tmp_165: starred_expression !'=' +// _tmp_164: starred_expression !'=' static void * -_tmp_165_rule(Parser *p) +_tmp_164_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -35970,7 +35788,7 @@ _tmp_165_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); + D(fprintf(stderr, "%*c> _tmp_164[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); expr_ty starred_expression_var; if ( (starred_expression_var = starred_expression_rule(p)) // starred_expression @@ -35978,12 +35796,12 @@ _tmp_165_rule(Parser *p) _PyPegen_lookahead_with_int(0, _PyPegen_expect_token, p, 22) // token='=' ) { - D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); + D(fprintf(stderr, "%*c+ _tmp_164[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "starred_expression !'='")); _res = starred_expression_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_164[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "starred_expression !'='")); } _res = NULL; @@ -35992,9 +35810,9 @@ _tmp_165_rule(Parser *p) return _res; } -// _tmp_166: !STRING expression_without_invalid +// _tmp_165: !STRING expression_without_invalid static void * -_tmp_166_rule(Parser *p) +_tmp_165_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36010,7 +35828,7 @@ _tmp_166_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!STRING expression_without_invalid")); + D(fprintf(stderr, "%*c> _tmp_165[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "!STRING expression_without_invalid")); expr_ty expression_without_invalid_var; if ( _PyPegen_lookahead(0, (void *(*)(Parser *)) _PyPegen_string_token, p) @@ -36018,12 +35836,12 @@ _tmp_166_rule(Parser *p) (expression_without_invalid_var = expression_without_invalid_rule(p)) // expression_without_invalid ) { - D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!STRING expression_without_invalid")); + D(fprintf(stderr, "%*c+ _tmp_165[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "!STRING expression_without_invalid")); _res = expression_without_invalid_var; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_165[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "!STRING expression_without_invalid")); } _res = NULL; @@ -36032,9 +35850,9 @@ _tmp_166_rule(Parser *p) return _res; } -// _tmp_167: ')' | '**' +// _tmp_166: ')' | '**' static void * -_tmp_167_rule(Parser *p) +_tmp_166_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36050,18 +35868,18 @@ _tmp_167_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "')'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 8)) // token=')' ) { - D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "')'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "')'")); } { // '**' @@ -36069,18 +35887,18 @@ _tmp_167_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_166[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_166[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_166[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -36089,9 +35907,9 @@ _tmp_167_rule(Parser *p) return _res; } -// _tmp_168: ':' | '**' +// _tmp_167: ':' | '**' static void * -_tmp_168_rule(Parser *p) +_tmp_167_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36107,18 +35925,18 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "':'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 11)) // token=':' ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); + D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "':'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "':'")); } { // '**' @@ -36126,18 +35944,18 @@ _tmp_168_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c> _tmp_167[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'**'")); Token * _literal; if ( (_literal = _PyPegen_expect_token(p, 35)) // token='**' ) { - D(fprintf(stderr, "%*c+ _tmp_168[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); + D(fprintf(stderr, "%*c+ _tmp_167[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'**'")); _res = _literal; goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_168[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_167[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'**'")); } _res = NULL; @@ -36146,9 +35964,9 @@ _tmp_168_rule(Parser *p) return _res; } -// _loop0_169: (',' bitwise_or) +// _loop0_168: (',' bitwise_or) static asdl_seq * -_loop0_169_rule(Parser *p) +_loop0_168_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36173,13 +35991,13 @@ _loop0_169_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _loop0_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' bitwise_or)")); - void *_tmp_172_var; + D(fprintf(stderr, "%*c> _loop0_168[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "(',' bitwise_or)")); + void *_tmp_171_var; while ( - (_tmp_172_var = _tmp_172_rule(p)) // ',' bitwise_or + (_tmp_171_var = _tmp_171_rule(p)) // ',' bitwise_or ) { - _res = _tmp_172_var; + _res = _tmp_171_var; if (_n == _children_capacity) { _children_capacity *= 2; void **_new_children = PyMem_Realloc(_children, _children_capacity*sizeof(void *)); @@ -36196,7 +36014,7 @@ _loop0_169_rule(Parser *p) _mark = p->mark; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _loop0_169[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _loop0_168[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "(',' bitwise_or)")); } asdl_seq *_seq = (asdl_seq*)_Py_asdl_generic_seq_new(_n, p->arena); @@ -36213,9 +36031,9 @@ _loop0_169_rule(Parser *p) return _seq; } -// _tmp_170: expression ['as' star_target] +// _tmp_169: expression ['as' star_target] static void * -_tmp_170_rule(Parser *p) +_tmp_169_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36231,22 +36049,22 @@ _tmp_170_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_169[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expression_var; if ( (expression_var = expression_rule(p)) // expression && - (_opt_var = _tmp_173_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_172_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_169[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expression ['as' star_target]")); _res = _PyPegen_dummy_name(p, expression_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_169[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expression ['as' star_target]")); } _res = NULL; @@ -36255,9 +36073,9 @@ _tmp_170_rule(Parser *p) return _res; } -// _tmp_171: expressions ['as' star_target] +// _tmp_170: expressions ['as' star_target] static void * -_tmp_171_rule(Parser *p) +_tmp_170_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36273,22 +36091,22 @@ _tmp_171_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c> _tmp_170[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); void *_opt_var; UNUSED(_opt_var); // Silence compiler warnings expr_ty expressions_var; if ( (expressions_var = expressions_rule(p)) // expressions && - (_opt_var = _tmp_173_rule(p), !p->error_indicator) // ['as' star_target] + (_opt_var = _tmp_172_rule(p), !p->error_indicator) // ['as' star_target] ) { - D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); + D(fprintf(stderr, "%*c+ _tmp_170[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "expressions ['as' star_target]")); _res = _PyPegen_dummy_name(p, expressions_var, _opt_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_170[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "expressions ['as' star_target]")); } _res = NULL; @@ -36297,9 +36115,9 @@ _tmp_171_rule(Parser *p) return _res; } -// _tmp_172: ',' bitwise_or +// _tmp_171: ',' bitwise_or static void * -_tmp_172_rule(Parser *p) +_tmp_171_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36315,7 +36133,7 @@ _tmp_172_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); + D(fprintf(stderr, "%*c> _tmp_171[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); Token * _literal; expr_ty bitwise_or_var; if ( @@ -36324,12 +36142,12 @@ _tmp_172_rule(Parser *p) (bitwise_or_var = bitwise_or_rule(p)) // bitwise_or ) { - D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); + D(fprintf(stderr, "%*c+ _tmp_171[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "',' bitwise_or")); _res = _PyPegen_dummy_name(p, _literal, bitwise_or_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_171[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "',' bitwise_or")); } _res = NULL; @@ -36338,9 +36156,9 @@ _tmp_172_rule(Parser *p) return _res; } -// _tmp_173: 'as' star_target +// _tmp_172: 'as' star_target static void * -_tmp_173_rule(Parser *p) +_tmp_172_rule(Parser *p) { if (p->level++ == MAXSTACK) { _Pypegen_stack_overflow(p); @@ -36356,7 +36174,7 @@ _tmp_173_rule(Parser *p) p->level--; return NULL; } - D(fprintf(stderr, "%*c> _tmp_173[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c> _tmp_172[%d-%d]: %s\n", p->level, ' ', _mark, p->mark, "'as' star_target")); Token * _keyword; expr_ty star_target_var; if ( @@ -36365,12 +36183,12 @@ _tmp_173_rule(Parser *p) (star_target_var = star_target_rule(p)) // star_target ) { - D(fprintf(stderr, "%*c+ _tmp_173[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); + D(fprintf(stderr, "%*c+ _tmp_172[%d-%d]: %s succeeded!\n", p->level, ' ', _mark, p->mark, "'as' star_target")); _res = _PyPegen_dummy_name(p, _keyword, star_target_var); goto done; } p->mark = _mark; - D(fprintf(stderr, "%*c%s _tmp_173[%d-%d]: %s failed!\n", p->level, ' ', + D(fprintf(stderr, "%*c%s _tmp_172[%d-%d]: %s failed!\n", p->level, ' ', p->error_indicator ? "ERROR!" : "-", _mark, p->mark, "'as' star_target")); } _res = NULL; From b1c0ab46224b8757d44eaeff1eb0ce8595f4e9bd Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Fri, 14 Feb 2025 00:53:11 +0500 Subject: [PATCH 13/16] Update doc-string in test_syntax --- Lib/test/test_syntax.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index bbee9fb65082c7..6155b61ad81633 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -168,6 +168,18 @@ Traceback (most recent call last): SyntaxError: expected 'else' after 'if' expression +>>> x = 1 if 1 else pass +Traceback (most recent call last): +SyntaxError: expected expression after 'else', but statement is given + +>>> x = pass if 1 else 1 +Traceback (most recent call last): +SyntaxError: expected expression before 'if', but statement is given + +>>> x = pass if 1 else pass +Traceback (most recent call last): +SyntaxError: expected expression before 'if', but statement is given + >>> if True: ... print("Hello" ... From a33a7058f7b447f8a242db31362b1e313f6440cd Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Sun, 16 Feb 2025 19:20:23 +0500 Subject: [PATCH 14/16] Update Doc/whatsnew/3.14.rst Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com> --- Doc/whatsnew/3.14.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index de4649e507c2e4..1ff1054d4befe0 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -178,8 +178,8 @@ Improved error messages * If a statement (:keyword:`pass`, :keyword:`del`, :keyword:`return`, :keyword:`yield`, :keyword:`raise`, :keyword:`break`, :keyword:`continue`, :keyword:`assert`, :keyword:`import`, :keyword:`from`) is passed to the - :ref:`if_expr` after :keyword:`else`, or one of the :keyword:`pass`, - :keyword:`break`, :keyword:`continue` is passed before :keyword:`if`, then the + :ref:`if_expr` after :keyword:`else`, or one of :keyword:`pass`, + :keyword:`break`, or :keyword:`continue` is passed before :keyword:`if`, then the error message highlights where the :token:`~python-grammar:expression` is required. (Contributed by Sergey Miryanov in :gh:`129515`.) From 9c711ae5c285f2fe8636d7b371e70dc8b032796c Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Mon, 17 Feb 2025 18:25:31 +0500 Subject: [PATCH 15/16] Update Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> --- .../2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst index 1d0f545e65a2e9..160b0190b43e76 100644 --- a/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-02-09-11-30-38.gh-issue-129515.3L3vmo.rst @@ -1,2 +1,2 @@ -Clarify syntax error messages for conditional expressions if statement -specified before ``if`` or after ``else`` keywords. +Clarify syntax error messages for conditional expressions when a statement +is specified before an :keyword:`if` or after an :keyword:`else` keyword. From b4a1c55ef01a8879b60f4ebe1890a73d290c9a4e Mon Sep 17 00:00:00 2001 From: Sergey Miryanov Date: Mon, 17 Feb 2025 19:04:32 +0500 Subject: [PATCH 16/16] Update tests and whatsnew entry --- Doc/whatsnew/3.14.rst | 2 +- Lib/test/test_syntax.py | 50 ++++++++++++++++++++++++----------------- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 1ff1054d4befe0..5df2d7aad1e40d 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -183,7 +183,7 @@ Improved error messages error message highlights where the :token:`~python-grammar:expression` is required. (Contributed by Sergey Miryanov in :gh:`129515`.) - .. code-block:: python + .. code-block:: pycon >>> x = 1 if True else pass Traceback (most recent call last): diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 6155b61ad81633..707d4fc6df16ea 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -2877,32 +2877,42 @@ def test_match_stmt_invalid_as_expr(self): def test_ifexp_else_stmt(self): msg = "expected expression after 'else', but statement is given" - self._check_error("x = 1 if 1 else pass", msg) - self._check_error("x = 1 if 1 else return", msg) - self._check_error("x = 1 if 1 else return 2", msg) - self._check_error("x = 1 if 1 else raise Exception('a')", msg) - self._check_error("x = 1 if 1 else del a", msg) - self._check_error("x = 1 if 1 else yield 2", msg) - self._check_error("x = 1 if 1 else assert False", msg) - self._check_error("x = 1 if 1 else break", msg) - self._check_error("x = 1 if 1 else continue", msg) - self._check_error("x = 1 if 1 else import", msg) - self._check_error("x = 1 if 1 else import ast", msg) - self._check_error("x = 1 if 1 else from", msg) - self._check_error("x = 1 if 1 else from ast import *", msg) + + for stmt in [ + "pass", + "return", + "return 2", + "raise Exception('a')", + "del a", + "yield 2", + "assert False", + "break", + "continue", + "import", + "import ast", + "from", + "from ast import *" + ]: + self._check_error(f"x = 1 if 1 else {stmt}", msg) def test_ifexp_body_stmt_else_expression(self): msg = "expected expression before 'if', but statement is given" - self._check_error("x = pass if 1 else 1", msg) - self._check_error("x = break if 1 else 1", msg) - self._check_error("x = continue if 1 else 1", msg) + + for stmt in [ + "pass", + "break", + "continue" + ]: + self._check_error(f"x = {stmt} if 1 else 1", msg) def test_ifexp_body_stmt_else_stmt(self): msg = "expected expression before 'if', but statement is given" - self._check_error("x = pass if 1 else pass", msg) - self._check_error("x = break if 1 else pass", msg) - self._check_error("x = continue if 1 else pass", msg) - self._check_error("x = continue if 1 else import ast", msg) + for lhs_stmt, rhs_stmt in [ + ("pass", "pass"), + ("break", "pass"), + ("continue", "import ast") + ]: + self._check_error(f"x = {lhs_stmt} if 1 else {rhs_stmt}", msg) def load_tests(loader, tests, pattern): tests.addTest(doctest.DocTestSuite())