diff Parser/parser.c @ 36742:658f8ff2a442 legacy-trunk

Make 'as' an actual keyword when with's future statement is used. Not actually necessary for functionality, but good for transition.
author Thomas Wouters <thomas@python.org>
date Tue, 28 Feb 2006 22:42:15 +0000
parents bbf16fd024df
children 57322cb2ca11
line wrap: on
line diff
--- a/Parser/parser.c	Tue Feb 28 22:41:29 2006 +0000
+++ b/Parser/parser.c	Tue Feb 28 22:42:15 2006 +0000
@@ -144,18 +144,20 @@
 		register label *l = g->g_ll.ll_label;
 		register int i;
 		for (i = n; i > 0; i--, l++) {
-			if (l->lb_type == NAME && l->lb_str != NULL &&
-					l->lb_str[0] == s[0] &&
-					strcmp(l->lb_str, s) == 0) {
+			if (l->lb_type != NAME || l->lb_str == NULL ||
+			    l->lb_str[0] != s[0] ||
+			    strcmp(l->lb_str, s) != 0)
+				continue;
 #ifdef PY_PARSER_REQUIRES_FUTURE_KEYWORD
-				if (!(ps->p_flags & CO_FUTURE_WITH_STATEMENT) &&
-				    s[0] == 'w' &&
-				    strcmp(s, "with") == 0)
-					break; /* not a keyword */
+			if (!(ps->p_flags & CO_FUTURE_WITH_STATEMENT)) {
+				if (s[0] == 'w' && strcmp(s, "with") == 0)
+					break; /* not a keyword yet */
+				else if (s[0] == 'a' && strcmp(s, "as") == 0)
+					break; /* not a keyword yet */
+			}
 #endif
-				D(printf("It's a keyword\n"));
-				return n - i;
-			}
+			D(printf("It's a keyword\n"));
+			return n - i;
 		}
 	}