]> git.saurik.com Git - bison.git/blobdiff - src/reader.c
* src/bison.simple: Remove #line just before %%epilogue. It
[bison.git] / src / reader.c
index 8e7d99494a9d1a5bdb54689669e13eb4bdb77ab7..d42d90ecc9492b62c7f99761eef379c190feae57 100644 (file)
@@ -437,14 +437,12 @@ copy_definition (void)
   /* -1 while reading a character if prev char was %. */
   int after_percent;
 
-#if 0
   if (!no_lines_flag)
     {
       obstack_fgrow2 (&attrs_obstack, muscle_find ("linef"),
                      lineno, quotearg_style (c_quoting_style,
                                              muscle_find("filename")));
     }
-#endif
 
   after_percent = 0;
 
@@ -966,7 +964,7 @@ parse_muscle_decl (void)
 
 
 /*---------------------------------.
-| Parse a double quoted parameter. |       
+| Parse a double quoted parameter. |
 `---------------------------------*/
 
 static const char *
@@ -994,7 +992,7 @@ parse_dquoted_param (const char *from)
       else
        break;
     }
-  
+
   obstack_1grow (&param_obstack, '\0');
   param = obstack_finish (&param_obstack);
 
@@ -1014,7 +1012,7 @@ parse_dquoted_param (const char *from)
 | Parse what comes after %skeleton. |
 `----------------------------------*/
 
-void
+static void
 parse_skel_decl (void)
 {
   skeleton = parse_dquoted_param ("%skeleton");
@@ -1133,7 +1131,6 @@ copy_action (symbol_list *rule, int stack_offset)
 {
   int c;
   int count;
-  char buf[4096];
 
   /* offset is always 0 if parser has already popped the stack pointer */
   if (semantic_parser)
@@ -1691,6 +1688,13 @@ read_additionnal_code (void)
 
   obstack_init (&el_obstack);
 
+  if (!no_lines_flag)
+    {
+      obstack_fgrow2 (&el_obstack, muscle_find ("linef"),
+                     lineno, quotearg_style (c_quoting_style,
+                                             muscle_find("filename")));
+    }
+
   while ((c = getc (finput)) != EOF)
     obstack_1grow (&el_obstack, c);
 
@@ -1905,25 +1909,13 @@ symbols_output (void)
     obstack_free (&tokendefs, NULL);
   }
 
-#if 0
-  if (!no_parser_flag)
-    output_token_defines (&table_obstack);
-#endif
-
   if (defines_flag)
     {
       output_token_defines (&defines_obstack);
 
       if (!pure_parser)
-       {
-         if (spec_name_prefix)
-           obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
-                           spec_name_prefix);
-         else
-           obstack_sgrow (&defines_obstack,
-                                "\nextern YYSTYPE yylval;\n");
-       }
-
+       obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n",
+                       spec_name_prefix);
       if (semantic_parser)
        {
          int i;
@@ -1971,6 +1963,7 @@ packgram (void)
       rule_table[ruleno].lhs = p->sym->value;
       rule_table[ruleno].rhs = itemno;
       rule_table[ruleno].line = p->line;
+      rule_table[ruleno].useful = TRUE;
 
       p = p->next;
       while (p && p->sym)
@@ -2004,6 +1997,9 @@ packgram (void)
     }
 
   ritem[itemno] = 0;
+
+  if (trace_flag)
+    ritem_print (stderr);
 }
 \f
 /*-------------------------------------------------------------------.
@@ -2070,7 +2066,6 @@ reader (void)
   /* Assign the symbols their symbol numbers.  Write #defines for the
      token symbols into FDEFINES if requested.  */
   packsymbols ();
-  symbols_output ();
   /* Convert the grammar into the format described in gram.h.  */
   packgram ();
   /* Output the headers. */