Issue #2335: Backport set literals syntax from Python 3.x.
diff --git a/Python/graminit.c b/Python/graminit.c
index 2e3e9e8..8c8fa38 100644
--- a/Python/graminit.c
+++ b/Python/graminit.c
@@ -1548,258 +1548,298 @@
 	{2, arcs_72_4},
 };
 static arc arcs_73_0[1] = {
-	{161, 1},
+	{28, 1},
 };
-static arc arcs_73_1[1] = {
-	{21, 2},
+static arc arcs_73_1[3] = {
+	{23, 2},
+	{29, 3},
+	{0, 1},
 };
-static arc arcs_73_2[2] = {
-	{13, 3},
-	{23, 4},
+static arc arcs_73_2[1] = {
+	{28, 4},
 };
 static arc arcs_73_3[2] = {
-	{9, 5},
-	{15, 6},
+	{28, 5},
+	{0, 3},
 };
-static arc arcs_73_4[1] = {
-	{24, 7},
+static arc arcs_73_4[2] = {
+	{29, 6},
+	{0, 4},
 };
-static arc arcs_73_5[1] = {
-	{15, 6},
+static arc arcs_73_5[2] = {
+	{29, 3},
+	{0, 5},
 };
-static arc arcs_73_6[1] = {
-	{23, 4},
+static arc arcs_73_6[2] = {
+	{28, 7},
+	{0, 6},
 };
 static arc arcs_73_7[1] = {
-	{0, 7},
+	{23, 2},
 };
 static state states_73[8] = {
 	{1, arcs_73_0},
-	{1, arcs_73_1},
-	{2, arcs_73_2},
+	{3, arcs_73_1},
+	{1, arcs_73_2},
 	{2, arcs_73_3},
-	{1, arcs_73_4},
-	{1, arcs_73_5},
-	{1, arcs_73_6},
+	{2, arcs_73_4},
+	{2, arcs_73_5},
+	{2, arcs_73_6},
 	{1, arcs_73_7},
 };
-static arc arcs_74_0[3] = {
+static arc arcs_74_0[1] = {
 	{162, 1},
+};
+static arc arcs_74_1[1] = {
+	{21, 2},
+};
+static arc arcs_74_2[2] = {
+	{13, 3},
+	{23, 4},
+};
+static arc arcs_74_3[2] = {
+	{9, 5},
+	{15, 6},
+};
+static arc arcs_74_4[1] = {
+	{24, 7},
+};
+static arc arcs_74_5[1] = {
+	{15, 6},
+};
+static arc arcs_74_6[1] = {
+	{23, 4},
+};
+static arc arcs_74_7[1] = {
+	{0, 7},
+};
+static state states_74[8] = {
+	{1, arcs_74_0},
+	{1, arcs_74_1},
+	{2, arcs_74_2},
+	{2, arcs_74_3},
+	{1, arcs_74_4},
+	{1, arcs_74_5},
+	{1, arcs_74_6},
+	{1, arcs_74_7},
+};
+static arc arcs_75_0[3] = {
+	{163, 1},
 	{30, 2},
 	{31, 3},
 };
-static arc arcs_74_1[2] = {
+static arc arcs_75_1[2] = {
 	{29, 4},
 	{0, 1},
 };
-static arc arcs_74_2[1] = {
+static arc arcs_75_2[1] = {
 	{28, 5},
 };
-static arc arcs_74_3[1] = {
+static arc arcs_75_3[1] = {
 	{28, 6},
 };
-static arc arcs_74_4[4] = {
-	{162, 1},
+static arc arcs_75_4[4] = {
+	{163, 1},
 	{30, 2},
 	{31, 3},
 	{0, 4},
 };
-static arc arcs_74_5[2] = {
+static arc arcs_75_5[2] = {
 	{29, 7},
 	{0, 5},
 };
-static arc arcs_74_6[1] = {
+static arc arcs_75_6[1] = {
 	{0, 6},
 };
-static arc arcs_74_7[2] = {
-	{162, 5},
+static arc arcs_75_7[2] = {
+	{163, 5},
 	{31, 3},
 };
-static state states_74[8] = {
-	{3, arcs_74_0},
-	{2, arcs_74_1},
-	{1, arcs_74_2},
-	{1, arcs_74_3},
-	{4, arcs_74_4},
-	{2, arcs_74_5},
-	{1, arcs_74_6},
-	{2, arcs_74_7},
+static state states_75[8] = {
+	{3, arcs_75_0},
+	{2, arcs_75_1},
+	{1, arcs_75_2},
+	{1, arcs_75_3},
+	{4, arcs_75_4},
+	{2, arcs_75_5},
+	{1, arcs_75_6},
+	{2, arcs_75_7},
 };
-static arc arcs_75_0[1] = {
+static arc arcs_76_0[1] = {
 	{28, 1},
 };
-static arc arcs_75_1[3] = {
+static arc arcs_76_1[3] = {
 	{157, 2},
 	{27, 3},
 	{0, 1},
 };
-static arc arcs_75_2[1] = {
+static arc arcs_76_2[1] = {
 	{0, 2},
 };
-static arc arcs_75_3[1] = {
+static arc arcs_76_3[1] = {
 	{28, 2},
 };
-static state states_75[4] = {
-	{1, arcs_75_0},
-	{3, arcs_75_1},
-	{1, arcs_75_2},
-	{1, arcs_75_3},
+static state states_76[4] = {
+	{1, arcs_76_0},
+	{3, arcs_76_1},
+	{1, arcs_76_2},
+	{1, arcs_76_3},
 };
-static arc arcs_76_0[2] = {
+static arc arcs_77_0[2] = {
 	{156, 1},
-	{164, 1},
-};
-static arc arcs_76_1[1] = {
-	{0, 1},
-};
-static state states_76[2] = {
-	{2, arcs_76_0},
-	{1, arcs_76_1},
-};
-static arc arcs_77_0[1] = {
-	{96, 1},
+	{165, 1},
 };
 static arc arcs_77_1[1] = {
-	{61, 2},
+	{0, 1},
 };
-static arc arcs_77_2[1] = {
-	{85, 3},
-};
-static arc arcs_77_3[1] = {
-	{105, 4},
-};
-static arc arcs_77_4[2] = {
-	{163, 5},
-	{0, 4},
-};
-static arc arcs_77_5[1] = {
-	{0, 5},
-};
-static state states_77[6] = {
-	{1, arcs_77_0},
+static state states_77[2] = {
+	{2, arcs_77_0},
 	{1, arcs_77_1},
-	{1, arcs_77_2},
-	{1, arcs_77_3},
-	{2, arcs_77_4},
-	{1, arcs_77_5},
 };
 static arc arcs_78_0[1] = {
-	{92, 1},
-};
-static arc arcs_78_1[1] = {
-	{106, 2},
-};
-static arc arcs_78_2[2] = {
-	{163, 3},
-	{0, 2},
-};
-static arc arcs_78_3[1] = {
-	{0, 3},
-};
-static state states_78[4] = {
-	{1, arcs_78_0},
-	{1, arcs_78_1},
-	{2, arcs_78_2},
-	{1, arcs_78_3},
-};
-static arc arcs_79_0[2] = {
-	{157, 1},
-	{166, 1},
-};
-static arc arcs_79_1[1] = {
-	{0, 1},
-};
-static state states_79[2] = {
-	{2, arcs_79_0},
-	{1, arcs_79_1},
-};
-static arc arcs_80_0[1] = {
 	{96, 1},
 };
-static arc arcs_80_1[1] = {
+static arc arcs_78_1[1] = {
 	{61, 2},
 };
-static arc arcs_80_2[1] = {
+static arc arcs_78_2[1] = {
 	{85, 3},
 };
-static arc arcs_80_3[1] = {
-	{107, 4},
+static arc arcs_78_3[1] = {
+	{105, 4},
 };
-static arc arcs_80_4[2] = {
-	{165, 5},
+static arc arcs_78_4[2] = {
+	{164, 5},
 	{0, 4},
 };
-static arc arcs_80_5[1] = {
+static arc arcs_78_5[1] = {
 	{0, 5},
 };
-static state states_80[6] = {
-	{1, arcs_80_0},
-	{1, arcs_80_1},
-	{1, arcs_80_2},
-	{1, arcs_80_3},
-	{2, arcs_80_4},
-	{1, arcs_80_5},
+static state states_78[6] = {
+	{1, arcs_78_0},
+	{1, arcs_78_1},
+	{1, arcs_78_2},
+	{1, arcs_78_3},
+	{2, arcs_78_4},
+	{1, arcs_78_5},
 };
-static arc arcs_81_0[1] = {
+static arc arcs_79_0[1] = {
 	{92, 1},
 };
-static arc arcs_81_1[1] = {
+static arc arcs_79_1[1] = {
 	{106, 2},
 };
-static arc arcs_81_2[2] = {
-	{165, 3},
+static arc arcs_79_2[2] = {
+	{164, 3},
 	{0, 2},
 };
-static arc arcs_81_3[1] = {
+static arc arcs_79_3[1] = {
 	{0, 3},
 };
-static state states_81[4] = {
-	{1, arcs_81_0},
-	{1, arcs_81_1},
-	{2, arcs_81_2},
-	{1, arcs_81_3},
+static state states_79[4] = {
+	{1, arcs_79_0},
+	{1, arcs_79_1},
+	{2, arcs_79_2},
+	{1, arcs_79_3},
 };
-static arc arcs_82_0[1] = {
-	{28, 1},
+static arc arcs_80_0[2] = {
+	{157, 1},
+	{167, 1},
 };
-static arc arcs_82_1[2] = {
-	{29, 0},
+static arc arcs_80_1[1] = {
 	{0, 1},
 };
-static state states_82[2] = {
+static state states_80[2] = {
+	{2, arcs_80_0},
+	{1, arcs_80_1},
+};
+static arc arcs_81_0[1] = {
+	{96, 1},
+};
+static arc arcs_81_1[1] = {
+	{61, 2},
+};
+static arc arcs_81_2[1] = {
+	{85, 3},
+};
+static arc arcs_81_3[1] = {
+	{107, 4},
+};
+static arc arcs_81_4[2] = {
+	{166, 5},
+	{0, 4},
+};
+static arc arcs_81_5[1] = {
+	{0, 5},
+};
+static state states_81[6] = {
+	{1, arcs_81_0},
+	{1, arcs_81_1},
+	{1, arcs_81_2},
+	{1, arcs_81_3},
+	{2, arcs_81_4},
+	{1, arcs_81_5},
+};
+static arc arcs_82_0[1] = {
+	{92, 1},
+};
+static arc arcs_82_1[1] = {
+	{106, 2},
+};
+static arc arcs_82_2[2] = {
+	{166, 3},
+	{0, 2},
+};
+static arc arcs_82_3[1] = {
+	{0, 3},
+};
+static state states_82[4] = {
 	{1, arcs_82_0},
-	{2, arcs_82_1},
+	{1, arcs_82_1},
+	{2, arcs_82_2},
+	{1, arcs_82_3},
 };
 static arc arcs_83_0[1] = {
-	{21, 1},
+	{28, 1},
 };
-static arc arcs_83_1[1] = {
+static arc arcs_83_1[2] = {
+	{29, 0},
 	{0, 1},
 };
 static state states_83[2] = {
 	{1, arcs_83_0},
-	{1, arcs_83_1},
+	{2, arcs_83_1},
 };
 static arc arcs_84_0[1] = {
-	{168, 1},
+	{21, 1},
 };
-static arc arcs_84_1[2] = {
+static arc arcs_84_1[1] = {
+	{0, 1},
+};
+static state states_84[2] = {
+	{1, arcs_84_0},
+	{1, arcs_84_1},
+};
+static arc arcs_85_0[1] = {
+	{169, 1},
+};
+static arc arcs_85_1[2] = {
 	{9, 2},
 	{0, 1},
 };
-static arc arcs_84_2[1] = {
+static arc arcs_85_2[1] = {
 	{0, 2},
 };
-static state states_84[3] = {
-	{1, arcs_84_0},
-	{2, arcs_84_1},
-	{1, arcs_84_2},
+static state states_85[3] = {
+	{1, arcs_85_0},
+	{2, arcs_85_1},
+	{1, arcs_85_2},
 };
-static dfa dfas[85] = {
+static dfa dfas[86] = {
 	{256, "single_input", 0, 3, states_0,
-	 "\004\050\060\000\000\000\000\124\360\024\114\220\023\040\010\000\200\041\044\015\002\001"},
+	 "\004\050\060\000\000\000\000\124\360\024\114\220\023\040\010\000\200\041\044\015\004\002"},
 	{257, "file_input", 0, 2, states_1,
-	 "\204\050\060\000\000\000\000\124\360\024\114\220\023\040\010\000\200\041\044\015\002\001"},
+	 "\204\050\060\000\000\000\000\124\360\024\114\220\023\040\010\000\200\041\044\015\004\002"},
 	{258, "eval_input", 0, 3, states_2,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
 	{259, "decorator", 0, 7, states_3,
@@ -1819,11 +1859,11 @@
 	{266, "fplist", 0, 3, states_10,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{267, "stmt", 0, 2, states_11,
-	 "\000\050\060\000\000\000\000\124\360\024\114\220\023\040\010\000\200\041\044\015\002\001"},
+	 "\000\050\060\000\000\000\000\124\360\024\114\220\023\040\010\000\200\041\044\015\004\002"},
 	{268, "simple_stmt", 0, 4, states_12,
-	 "\000\040\040\000\000\000\000\124\360\024\114\000\000\040\010\000\200\041\044\015\000\001"},
+	 "\000\040\040\000\000\000\000\124\360\024\114\000\000\040\010\000\200\041\044\015\000\002"},
 	{269, "small_stmt", 0, 2, states_13,
-	 "\000\040\040\000\000\000\000\124\360\024\114\000\000\040\010\000\200\041\044\015\000\001"},
+	 "\000\040\040\000\000\000\000\124\360\024\114\000\000\040\010\000\200\041\044\015\000\002"},
 	{270, "expr_stmt", 0, 6, states_14,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
 	{271, "augassign", 0, 2, states_15,
@@ -1835,7 +1875,7 @@
 	{274, "pass_stmt", 0, 2, states_18,
 	 "\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{275, "flow_stmt", 0, 2, states_19,
-	 "\000\000\000\000\000\000\000\000\360\000\000\000\000\000\000\000\000\000\000\000\000\001"},
+	 "\000\000\000\000\000\000\000\000\360\000\000\000\000\000\000\000\000\000\000\000\000\002"},
 	{276, "break_stmt", 0, 2, states_20,
 	 "\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{277, "continue_stmt", 0, 2, states_21,
@@ -1843,7 +1883,7 @@
 	{278, "return_stmt", 0, 3, states_22,
 	 "\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{279, "yield_stmt", 0, 2, states_23,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001"},
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002"},
 	{280, "raise_stmt", 0, 7, states_24,
 	 "\000\000\000\000\000\000\000\000\200\000\000\000\000\000\000\000\000\000\000\000\000\000"},
 	{281, "import_stmt", 0, 2, states_25,
@@ -1869,7 +1909,7 @@
 	{291, "assert_stmt", 0, 5, states_35,
 	 "\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
 	{292, "compound_stmt", 0, 2, states_36,
-	 "\000\010\020\000\000\000\000\000\000\000\000\220\023\000\000\000\000\000\000\000\002\000"},
+	 "\000\010\020\000\000\000\000\000\000\000\000\220\023\000\000\000\000\000\000\000\004\000"},
 	{293, "if_stmt", 0, 8, states_37,
 	 "\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000"},
 	{294, "while_stmt", 0, 8, states_38,
@@ -1885,7 +1925,7 @@
 	{299, "except_clause", 0, 5, states_43,
 	 "\000\000\000\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000"},
 	{300, "suite", 0, 5, states_44,
-	 "\004\040\040\000\000\000\000\124\360\024\114\000\000\040\010\000\200\041\044\015\000\001"},
+	 "\004\040\040\000\000\000\000\124\360\024\114\000\000\040\010\000\200\041\044\015\000\002"},
 	{301, "testlist_safe", 0, 5, states_45,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
 	{302, "old_test", 0, 2, states_46,
@@ -1942,32 +1982,34 @@
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
 	{328, "dictmaker", 0, 5, states_72,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
-	{329, "classdef", 0, 8, states_73,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"},
-	{330, "arglist", 0, 8, states_74,
+	{329, "dictorsetmaker", 0, 8, states_73,
+	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
+	{330, "classdef", 0, 8, states_74,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000"},
+	{331, "arglist", 0, 8, states_75,
 	 "\000\040\040\300\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
-	{331, "argument", 0, 4, states_75,
+	{332, "argument", 0, 4, states_76,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
-	{332, "list_iter", 0, 2, states_76,
+	{333, "list_iter", 0, 2, states_77,
 	 "\000\000\000\000\000\000\000\000\000\000\000\020\001\000\000\000\000\000\000\000\000\000"},
-	{333, "list_for", 0, 6, states_77,
+	{334, "list_for", 0, 6, states_78,
 	 "\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000"},
-	{334, "list_if", 0, 4, states_78,
+	{335, "list_if", 0, 4, states_79,
 	 "\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000"},
-	{335, "gen_iter", 0, 2, states_79,
+	{336, "gen_iter", 0, 2, states_80,
 	 "\000\000\000\000\000\000\000\000\000\000\000\020\001\000\000\000\000\000\000\000\000\000"},
-	{336, "gen_for", 0, 6, states_80,
+	{337, "gen_for", 0, 6, states_81,
 	 "\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000"},
-	{337, "gen_if", 0, 4, states_81,
+	{338, "gen_if", 0, 4, states_82,
 	 "\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000"},
-	{338, "testlist1", 0, 2, states_82,
+	{339, "testlist1", 0, 2, states_83,
 	 "\000\040\040\000\000\000\000\000\000\000\000\000\000\040\010\000\200\041\044\015\000\000"},
-	{339, "encoding_decl", 0, 2, states_83,
+	{340, "encoding_decl", 0, 2, states_84,
 	 "\000\000\040\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"},
-	{340, "yield_expr", 0, 3, states_84,
-	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001"},
+	{341, "yield_expr", 0, 3, states_85,
+	 "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002"},
 };
-static label labels[169] = {
+static label labels[170] = {
 	{0, "EMPTY"},
 	{256, 0},
 	{4, 0},
@@ -1982,11 +2024,11 @@
 	{50, 0},
 	{288, 0},
 	{7, 0},
-	{330, 0},
+	{331, 0},
 	{8, 0},
 	{260, 0},
 	{261, 0},
-	{329, 0},
+	{330, 0},
 	{262, 0},
 	{1, "def"},
 	{1, 0},
@@ -2013,7 +2055,7 @@
 	{290, 0},
 	{291, 0},
 	{271, 0},
-	{340, 0},
+	{341, 0},
 	{37, 0},
 	{38, 0},
 	{39, 0},
@@ -2118,29 +2160,30 @@
 	{319, 0},
 	{10, 0},
 	{26, 0},
-	{328, 0},
+	{329, 0},
 	{27, 0},
 	{25, 0},
-	{338, 0},
+	{339, 0},
 	{2, 0},
 	{3, 0},
-	{333, 0},
-	{336, 0},
+	{334, 0},
+	{337, 0},
 	{323, 0},
 	{324, 0},
 	{325, 0},
+	{328, 0},
 	{1, "class"},
-	{331, 0},
 	{332, 0},
-	{334, 0},
+	{333, 0},
 	{335, 0},
-	{337, 0},
-	{339, 0},
+	{336, 0},
+	{338, 0},
+	{340, 0},
 	{1, "yield"},
 };
 grammar _PyParser_Grammar = {
-	85,
+	86,
 	dfas,
-	{169, labels},
+	{170, labels},
 	256
 };