]> git.saurik.com Git - bison.git/blobdiff - src/bison.simple
* src/output.c (output_definitions): New function, which copies
[bison.git] / src / bison.simple
index de9da6c0a369b770aa14f6fd0fb3bb2fc4447b62..700a9edbda4b3a4fda410deb4155c7b37444a783 100644 (file)
@@ -33,6 +33,9 @@
 
 #include <stdio.h>
 
+/* Copy the user declarations.  */
+%%definitions
+
 #ifndef __cplusplus
 # ifndef __STDC__
 #  define const
@@ -65,7 +68,7 @@
        /* I don't know what this was needed for, but it pollutes the
          namespace.  So I turned it off.  rms, 2 May 1997.  */
        /* #include <malloc.h>  */
-#      pragma alloca
+ #pragma alloca
 #      define YYSTACK_USE_ALLOCA 1
 #     else /* not MSDOS, or __TURBOC__, or _AIX */
 #      if 0
@@ -483,11 +486,12 @@ int
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
 
-  yyssp = yyss - 1;
+  yyssp = yyss;
   yyvsp = yyvs;
 #if YYLSP_NEEDED
   yylsp = yyls;
 #endif
+  goto yysetstate;
 
 /*------------------------------------------------------------.
 | yynewstate -- Push a new state, which is found in yystate.  |
@@ -496,7 +500,10 @@ yynewstate:
   /* In all cases, when you get here, the value and location stacks
      have just been pushed. so pushing a state here evens the stacks.
      */
-  *++yyssp = yystate;
+  yyssp++;
+
+yysetstate:
+  *yyssp = yystate;
 
   if (yyssp >= yyss + yystacksize - 1)
     {