summaryrefslogtreecommitdiffstats
path: root/Parser
diff options
context:
space:
mode:
authorNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-03-22 23:38:11 (GMT)
committerNeil Schemenauer <nascheme@enme.ucalgary.ca>2002-03-22 23:38:11 (GMT)
commitc155dd4ca91403469a4bd46528b592d940f43fb3 (patch)
tree80572aad6344e45eea3fcf7ae7d7f05fb06c1d5a /Parser
parent558ba52f10ed609001bfb3263690c251ffbd4655 (diff)
downloadcpython-c155dd4ca91403469a4bd46528b592d940f43fb3.zip
cpython-c155dd4ca91403469a4bd46528b592d940f43fb3.tar.gz
cpython-c155dd4ca91403469a4bd46528b592d940f43fb3.tar.bz2
Disable the parser hacks that allowed the "yield" keyword to be enabled
by a future statement.
Diffstat (limited to 'Parser')
-rw-r--r--Parser/parser.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/Parser/parser.c b/Parser/parser.c
index 3914143..686161b 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -79,7 +79,9 @@ PyParser_New(grammar *g, int start)
if (ps == NULL)
return NULL;
ps->p_grammar = g;
+#if 0 /* future keyword */
ps->p_generators = 0;
+#endif
ps->p_tree = PyNode_New(start);
if (ps->p_tree == NULL) {
PyMem_DEL(ps);
@@ -145,10 +147,12 @@ classify(parser_state *ps, int type, char *str)
if (l->lb_type == NAME && l->lb_str != NULL &&
l->lb_str[0] == s[0] &&
strcmp(l->lb_str, s) == 0) {
+#if 0 /* future keyword */
if (!ps->p_generators &&
s[0] == 'y' &&
strcmp(s, "yield") == 0)
break; /* not a keyword */
+#endif
D(printf("It's a keyword\n"));
return n - i;
}
@@ -170,6 +174,7 @@ classify(parser_state *ps, int type, char *str)
return -1;
}
+#if 0 /* future keyword */
static void
future_hack(parser_state *ps)
{
@@ -191,6 +196,7 @@ future_hack(parser_state *ps)
}
}
}
+#endif /* future keyword */
int
PyParser_AddToken(register parser_state *ps, register int type, char *str,
@@ -249,10 +255,12 @@ PyParser_AddToken(register parser_state *ps, register int type, char *str,
"Direct pop.\n",
d->d_name,
ps->p_stack.s_top->s_state));
+#if 0 /* future keyword */
if (d->d_name[0] == 'i' &&
strcmp(d->d_name,
"import_stmt") == 0)
future_hack(ps);
+#endif
s_pop(&ps->p_stack);
if (s_empty(&ps->p_stack)) {
D(printf(" ACCEPT.\n"));
@@ -265,9 +273,11 @@ PyParser_AddToken(register parser_state *ps, register int type, char *str,
}
if (s->s_accept) {
+#if 0 /* future keyword */
if (d->d_name[0] == 'i' &&
strcmp(d->d_name, "import_stmt") == 0)
future_hack(ps);
+#endif
/* Pop this dfa and try again */
s_pop(&ps->p_stack);
D(printf(" Pop ...\n"));