Add new parser error code, E_OVERFLOW.  This error is returned when
the number of children of a node exceeds the max possible value for
the short that is used to count them.  The Python runtime converts
this parser error into the SyntaxError "expression too long."
diff --git a/Parser/parser.c b/Parser/parser.c
index 3b75dbc..00299af 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -153,11 +153,11 @@
 	int newstate;
 	int lineno;
 {
+	int err;
 	assert(!s_empty(s));
-	if (PyNode_AddChild(s->s_top->s_parent, type, str, lineno) == NULL) {
-		fprintf(stderr, "shift: no mem in addchild\n");
-		return -1;
-	}
+	err = PyNode_AddChild(s->s_top->s_parent, type, str, lineno);
+	if (err)
+		return err;
 	s->s_top->s_state = newstate;
 	return 0;
 }
@@ -172,13 +172,13 @@
 	int newstate;
 	int lineno;
 {
+	int err;
 	register node *n;
 	n = s->s_top->s_parent;
 	assert(!s_empty(s));
-	if (PyNode_AddChild(n, type, (char *)NULL, lineno) == NULL) {
-		fprintf(stderr, "push: no mem in addchild\n");
-		return -1;
-	}
+	err = PyNode_AddChild(n, type, (char *)NULL, lineno);
+	if (err)
+		return err;
 	s->s_top->s_state = newstate;
 	return s_push(s, d, CHILD(n, NCH(n)-1));
 }
@@ -233,6 +233,7 @@
 	int lineno;
 {
 	register int ilabel;
+	int err;
 	
 	D(printf("Token %s/'%s' ... ", _PyParser_TokenNames[type], str));
 	
@@ -260,20 +261,20 @@
 					int arrow = x & ((1<<7)-1);
 					dfa *d1 = PyGrammar_FindDFA(
 						ps->p_grammar, nt);
-					if (push(&ps->p_stack, nt, d1,
-						arrow, lineno) < 0) {
+					if ((err = push(&ps->p_stack, nt, d1,
+						arrow, lineno)) > 0) {
 						D(printf(" MemError: push\n"));
-						return E_NOMEM;
+						return err;
 					}
 					D(printf(" Push ...\n"));
 					continue;
 				}
 				
 				/* Shift the token */
-				if (shift(&ps->p_stack, type, str,
-						x, lineno) < 0) {
+				if ((err = shift(&ps->p_stack, type, str,
+						x, lineno)) > 0) {
 					D(printf(" MemError: shift.\n"));
-					return E_NOMEM;
+					return err;
 				}
 				D(printf(" Shift.\n"));
 				/* Pop while we are in an accept-only state */