Fix a bug in stack overflow error handling.  This fixes half of Bug
#115555.

The error from s_push() on stack overflow was -1, which was passed
through unchanged by push(), but not tested for by push()'s caller --
which only expected positive error codes.  Fixed by changing s_push()
to return E_NOMEM on stack overflow.  (Not quite the proper error code
either, but I can't be bothered adding a new E_STACKOVERFLOW error
code in all the right places.)
diff --git a/Parser/parser.c b/Parser/parser.c
index d379f60..6eaa925 100644
--- a/Parser/parser.c
+++ b/Parser/parser.c
@@ -40,7 +40,7 @@
 	register stackentry *top;
 	if (s->s_top == s->s_base) {
 		fprintf(stderr, "s_push: parser stack overflow\n");
-		return -1;
+		return E_NOMEM;
 	}
 	top = --s->s_top;
 	top->s_dfa = d;