From 3c033230ec2f81c9d61ba1b1f19a99f8bf4f4bd3 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Thu, 19 Jul 2001 15:27:45 +0000 Subject: Fis SF bug #442647: not all forms of legal future statements were parsed correctly. Now they are. --- Parser/parser.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'Parser/parser.c') diff --git a/Parser/parser.c b/Parser/parser.c index 753c43ac9c..a9125e29a9 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 -- cgit v1.2.1