diff options
author | Guido van Rossum <guido@python.org> | 2001-07-19 15:27:45 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2001-07-19 15:27:45 (GMT) |
commit | 3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3 (patch) | |
tree | bab14648c41c483ceec80cb2c1cb4dd0d01ae734 | |
parent | e31c2eeb410464084e6dc88beae03da766a68ee4 (diff) | |
download | cpython-3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3.zip cpython-3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3.tar.gz cpython-3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3.tar.bz2 |
Fis SF bug #442647: not all forms of legal future statements were
parsed correctly. Now they are.
-rw-r--r-- | Parser/parser.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/Parser/parser.c b/Parser/parser.c index 753c43a..a9125e2 100644 --- a/Parser/parser.c +++ b/Parser/parser.c @@ -175,15 +175,21 @@ future_hack(parser_state *ps) { node *n = ps->p_stack.s_top->s_parent; node *ch; + int i; if (strcmp(STR(CHILD(n, 0)), "from") != 0) return; ch = CHILD(n, 1); if (strcmp(STR(CHILD(ch, 0)), "__future__") != 0) return; - ch = CHILD(n, 3); - if (NCH(ch) == 1 && strcmp(STR(CHILD(ch, 0)), "generators") == 0) - ps->p_generators = 1; + for (i = 3; i < NCH(n); i += 2) { + ch = CHILD(n, i); + if (NCH(ch) >= 1 && TYPE(CHILD(ch, 0)) == NAME && + strcmp(STR(CHILD(ch, 0)), "generators") == 0) { + ps->p_generators = 1; + break; + } + } } int |