]> git.saurik.com Git - bison.git/blobdiff - src/output.c
* src/output.c (output_definitions): New function, which copies
[bison.git] / src / output.c
index 72e4048a22feacd2b7614625a9fedc85f7481047..78496932c88c06f5e70bd242a3f95a7377323776 100644 (file)
@@ -1009,6 +1009,8 @@ output_parser (void)
              obstack_sgrow (&table_obstack, macro_key);
            }
        }
+      else
+       obstack_1grow (&table_obstack, '%');
     }
 
   /* End. */
@@ -1101,19 +1103,8 @@ prepare (void)
 void
 output (void)
 {
-  obstack_init (&macro_obstack);
   obstack_init (&output_obstack);
 
-#if 0
-  /* If using a simple parser the definition of YYSTYPE are put into
-     TABLE_OBSTACK.  */
-  if (!semantic_parser)
-    {
-      size_t size = obstack_object_size (&attrs_obstack);
-      obstack_grow (&table_obstack, obstack_finish (&attrs_obstack), size);
-    }
-#endif
-
   /* reader_output_yylsp (&table_obstack); */
   free_itemsets ();
 
@@ -1128,6 +1119,8 @@ output (void)
 
   /* if (!no_parser_flag) */
   prepare ();
+  /* Copy definitions in directive.  */
+  macro_insert ("definitions", obstack_finish (&attrs_obstack));
   output_parser ();
   output_program ();