diff Python/graminit.c @ 23538:9e67a0d5705f legacy-trunk

Disambiguate the grammar for backtick. The old syntax suggested that a trailing comma was OK inside backticks, but in fact (due to ideosyncrasies of pgen) it was not. Fix the grammar to avoid the ambiguity. Fred: you may want to update the refman.
author Guido van Rossum <guido@python.org>
date Fri, 24 May 2002 15:47:06 +0000
parents 2600cf7d33af
children 06f1e2fd05bc
line wrap: on
line diff
--- a/Python/graminit.c	Fri May 24 15:24:38 2002 +0000
+++ b/Python/graminit.c	Fri May 24 15:47:06 2002 +0000
@@ -1020,8 +1020,8 @@
 	{130, 3},
 	{133, 4},
 	{12, 5},
-	{134, 5},
-	{135, 6},
+	{135, 5},
+	{136, 6},
 };
 static arc arcs_49_1[2] = {
 	{9, 7},
@@ -1036,13 +1036,13 @@
 	{132, 5},
 };
 static arc arcs_49_4[1] = {
-	{9, 10},
+	{134, 10},
 };
 static arc arcs_49_5[1] = {
 	{0, 5},
 };
 static arc arcs_49_6[2] = {
-	{135, 6},
+	{136, 6},
 	{0, 6},
 };
 static arc arcs_49_7[1] = {
@@ -1074,7 +1074,7 @@
 	{21, 1},
 };
 static arc arcs_50_1[3] = {
-	{136, 2},
+	{137, 2},
 	{22, 3},
 	{0, 1},
 };
@@ -1097,7 +1097,7 @@
 	{2, arcs_50_4},
 };
 static arc arcs_51_0[1] = {
-	{137, 1},
+	{138, 1},
 };
 static arc arcs_51_1[2] = {
 	{17, 2},
@@ -1125,11 +1125,11 @@
 	{70, 3},
 };
 static arc arcs_52_1[2] = {
-	{138, 4},
+	{139, 4},
 	{18, 5},
 };
 static arc arcs_52_2[1] = {
-	{139, 6},
+	{140, 6},
 };
 static arc arcs_52_3[1] = {
 	{12, 5},
@@ -1153,14 +1153,14 @@
 	{1, arcs_52_6},
 };
 static arc arcs_53_0[1] = {
-	{140, 1},
+	{141, 1},
 };
 static arc arcs_53_1[2] = {
 	{22, 2},
 	{0, 1},
 };
 static arc arcs_53_2[2] = {
-	{140, 1},
+	{141, 1},
 	{0, 2},
 };
 static state states_53[3] = {
@@ -1182,14 +1182,14 @@
 };
 static arc arcs_54_3[3] = {
 	{21, 5},
-	{141, 6},
+	{142, 6},
 	{0, 3},
 };
 static arc arcs_54_4[1] = {
 	{70, 6},
 };
 static arc arcs_54_5[2] = {
-	{141, 6},
+	{142, 6},
 	{0, 5},
 };
 static arc arcs_54_6[1] = {
@@ -1301,7 +1301,7 @@
 	{2, arcs_59_4},
 };
 static arc arcs_60_0[1] = {
-	{143, 1},
+	{144, 1},
 };
 static arc arcs_60_1[1] = {
 	{12, 2},
@@ -1336,7 +1336,7 @@
 	{1, arcs_60_7},
 };
 static arc arcs_61_0[3] = {
-	{144, 1},
+	{145, 1},
 	{23, 2},
 	{24, 3},
 };
@@ -1351,7 +1351,7 @@
 	{21, 6},
 };
 static arc arcs_61_4[4] = {
-	{144, 1},
+	{145, 1},
 	{23, 2},
 	{24, 3},
 	{0, 4},
@@ -1396,8 +1396,8 @@
 	{1, arcs_62_3},
 };
 static arc arcs_63_0[2] = {
-	{136, 1},
-	{146, 1},
+	{137, 1},
+	{147, 1},
 };
 static arc arcs_63_1[1] = {
 	{0, 1},
@@ -1416,10 +1416,10 @@
 	{74, 3},
 };
 static arc arcs_64_3[1] = {
-	{142, 4},
+	{143, 4},
 };
 static arc arcs_64_4[2] = {
-	{145, 5},
+	{146, 5},
 	{0, 4},
 };
 static arc arcs_64_5[1] = {
@@ -1440,7 +1440,7 @@
 	{21, 2},
 };
 static arc arcs_65_2[2] = {
-	{145, 3},
+	{146, 3},
 	{0, 2},
 };
 static arc arcs_65_3[1] = {
@@ -1452,13 +1452,24 @@
 	{2, arcs_65_2},
 	{1, arcs_65_3},
 };
-static dfa dfas[66] = {
+static arc arcs_66_0[1] = {
+	{21, 1},
+};
+static arc arcs_66_1[2] = {
+	{22, 0},
+	{0, 1},
+};
+static state states_66[2] = {
+	{1, arcs_66_0},
+	{2, arcs_66_1},
+};
+static dfa dfas[67] = {
 	{256, "single_input", 0, 3, states_0,
-	 "\004\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\344\202\000"},
+	 "\004\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\244\005\001"},
 	{257, "file_input", 0, 2, states_1,
-	 "\204\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\344\202\000"},
+	 "\204\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\244\005\001"},
 	{258, "eval_input", 0, 3, states_2,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{259, "funcdef", 0, 6, states_3,
 	 "\000\010\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{260, "parameters", 0, 4, states_4,
@@ -1470,13 +1481,13 @@
 	{263, "fplist", 0, 3, states_7,
 	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{264, "stmt", 0, 2, states_8,
-	 "\000\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\344\202\000"},
+	 "\000\030\001\000\000\000\124\360\213\011\162\000\002\000\140\210\244\005\001"},
 	{265, "simple_stmt", 0, 4, states_9,
-	 "\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\244\005\000"},
 	{266, "small_stmt", 0, 2, states_10,
-	 "\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\244\005\000"},
 	{267, "expr_stmt", 0, 6, states_11,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{268, "augassign", 0, 2, states_12,
 	 "\000\000\000\000\300\377\003\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{269, "print_stmt", 0, 9, states_13,
@@ -1512,7 +1523,7 @@
 	{284, "assert_stmt", 0, 5, states_28,
 	 "\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000\000"},
 	{285, "compound_stmt", 0, 2, states_29,
-	 "\000\010\000\000\000\000\000\000\000\000\162\000\000\000\000\000\000\200\000"},
+	 "\000\010\000\000\000\000\000\000\000\000\162\000\000\000\000\000\000\000\001"},
 	{286, "if_stmt", 0, 8, states_30,
 	 "\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
 	{287, "while_stmt", 0, 8, states_31,
@@ -1524,69 +1535,71 @@
 	{290, "except_clause", 0, 5, states_34,
 	 "\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000"},
 	{291, "suite", 0, 5, states_35,
-	 "\004\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\344\002\000"},
+	 "\004\020\001\000\000\000\124\360\213\011\000\000\002\000\140\210\244\005\000"},
 	{292, "test", 0, 4, states_36,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{293, "and_test", 0, 2, states_37,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\001\000"},
 	{294, "not_test", 0, 3, states_38,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\001\000"},
 	{295, "comparison", 0, 2, states_39,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{296, "comp_op", 0, 4, states_40,
 	 "\000\000\000\000\000\000\000\000\000\004\000\000\362\017\000\000\000\000\000"},
 	{297, "expr", 0, 2, states_41,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{298, "xor_expr", 0, 2, states_42,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{299, "and_expr", 0, 2, states_43,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{300, "shift_expr", 0, 2, states_44,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{301, "arith_expr", 0, 2, states_45,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{302, "term", 0, 2, states_46,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{303, "factor", 0, 3, states_47,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{304, "power", 0, 4, states_48,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\244\001\000"},
 	{305, "atom", 0, 11, states_49,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\000\200\244\001\000"},
 	{306, "listmaker", 0, 5, states_50,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{307, "lambdef", 0, 5, states_51,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"},
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000"},
 	{308, "trailer", 0, 7, states_52,
 	 "\000\000\001\000\000\000\000\000\100\000\000\000\000\000\000\200\000\000\000"},
 	{309, "subscriptlist", 0, 3, states_53,
-	 "\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\244\005\000"},
 	{310, "subscript", 0, 7, states_54,
-	 "\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\120\001\000\000\000\000\000\100\000\000\000\002\000\140\210\244\005\000"},
 	{311, "sliceop", 0, 3, states_55,
 	 "\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{312, "exprlist", 0, 3, states_56,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\344\000\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\000\000\140\210\244\001\000"},
 	{313, "testlist", 0, 3, states_57,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{314, "testlist_safe", 0, 5, states_58,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{315, "dictmaker", 0, 5, states_59,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{316, "classdef", 0, 8, states_60,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000"},
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001"},
 	{317, "arglist", 0, 8, states_61,
-	 "\000\020\201\001\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\201\001\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{318, "argument", 0, 4, states_62,
-	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\344\002\000"},
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 	{319, "list_iter", 0, 2, states_63,
 	 "\000\000\000\000\000\000\000\000\000\000\042\000\000\000\000\000\000\000\000"},
 	{320, "list_for", 0, 6, states_64,
 	 "\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
 	{321, "list_if", 0, 4, states_65,
 	 "\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000"},
+	{322, "testlist1", 0, 2, states_66,
+	 "\000\020\001\000\000\000\000\000\000\000\000\000\002\000\140\210\244\005\000"},
 };
-static label labels[147] = {
+static label labels[148] = {
 	{0, "EMPTY"},
 	{256, 0},
 	{4, 0},
@@ -1721,6 +1734,7 @@
 	{315, 0},
 	{27, 0},
 	{25, 0},
+	{322, 0},
 	{2, 0},
 	{3, 0},
 	{320, 0},
@@ -1736,8 +1750,8 @@
 	{321, 0},
 };
 grammar _PyParser_Grammar = {
-	66,
+	67,
 	dfas,
-	{147, labels},
+	{148, labels},
 	256
 };