summaryrefslogtreecommitdiffstats
path: root/Python/graminit.c
diff options
context:
space:
mode:
authorNeal Norwitz <nnorwitz@gmail.com>2005-10-21 06:24:02 (GMT)
committerNeal Norwitz <nnorwitz@gmail.com>2005-10-21 06:24:02 (GMT)
commit37c0844b35b9a4d68f7ddf3a8b38d3e013f17d78 (patch)
tree345859c3266fdc71bf64f076ed16507c2d3051de /Python/graminit.c
parentc0d5faa9b4a763befbeab0159d2241a9ddf85b56 (diff)
downloadcpython-37c0844b35b9a4d68f7ddf3a8b38d3e013f17d78.zip
cpython-37c0844b35b9a4d68f7ddf3a8b38d3e013f17d78.tar.gz
cpython-37c0844b35b9a4d68f7ddf3a8b38d3e013f17d78.tar.bz2
Fix SF bug #1167751, Argument genexp corner case
Incorrect code was generated for: foo(a = i for i in range(10)) This should have generated a SyntaxError. Fix the Grammar so it raises a SyntaxError and test it. I'm uncertain whether this should be backported. It makes something that was Syntactically valid invalid. However, the code would either be completely broken or do the wrong thing.
Diffstat (limited to 'Python/graminit.c')
-rw-r--r--Python/graminit.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/Python/graminit.c b/Python/graminit.c
index 91d20f2..769532a 100644
--- a/Python/graminit.c
+++ b/Python/graminit.c
@@ -1496,26 +1496,34 @@ static arc arcs_69_0[1] = {
{26, 1},
};
static arc arcs_69_1[3] = {
- {25, 2},
- {147, 3},
+ {147, 2},
+ {25, 3},
{0, 1},
};
static arc arcs_69_2[1] = {
- {26, 4},
+ {0, 2},
};
static arc arcs_69_3[1] = {
- {0, 3},
+ {26, 4},
};
static arc arcs_69_4[2] = {
- {147, 3},
+ {13, 5},
{0, 4},
};
-static state states_69[5] = {
+static arc arcs_69_5[1] = {
+ {147, 6},
+};
+static arc arcs_69_6[1] = {
+ {15, 2},
+};
+static state states_69[7] = {
{1, arcs_69_0},
{3, arcs_69_1},
{1, arcs_69_2},
{1, arcs_69_3},
{2, arcs_69_4},
+ {1, arcs_69_5},
+ {1, arcs_69_6},
};
static arc arcs_70_0[2] = {
{146, 1},
@@ -1806,7 +1814,7 @@ static dfa dfas[79] = {
"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000"},
{324, "arglist", 0, 8, states_68,
"\000\040\010\060\000\000\000\000\000\000\000\000\000\002\000\140\010\111\023\000\000"},
- {325, "argument", 0, 5, states_69,
+ {325, "argument", 0, 7, states_69,
"\000\040\010\000\000\000\000\000\000\000\000\000\000\002\000\140\010\111\023\000\000"},
{326, "list_iter", 0, 2, states_70,
"\000\000\000\000\000\000\000\000\000\000\000\042\000\000\000\000\000\000\000\000\000"},