]> git.saurik.com Git - bison.git/blobdiff - src/symtab.c
* data/glr.c: Reformat whitespace with tabs.
[bison.git] / src / symtab.c
index 84e59e92e6d3a36e9f903845684027348dfef147..bf231628a1da0f6bf603dae60a53699dca3d5062 100644 (file)
@@ -20,7 +20,7 @@
    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
    Boston, MA 02110-1301, USA.  */
 
-
+#include <config.h>
 #include "system.h"
 
 #include <hash.h>
@@ -80,15 +80,20 @@ symbol_new (uniqstr tag, location loc)
 
 #define SYMBOL_ATTR_PRINT(Attr)                                \
   if (s->Attr)                                         \
-    fprintf (stderr, " %s { %s }", #Attr, s->Attr)
+    fprintf (f, " %s { %s }", #Attr, s->Attr)
 
 void
-symbol_print (FILE *f, symbol *s)
+symbol_print (symbol *s, FILE *f)
 {
-  fprintf (stderr, "\"%s\"", s->tag);
-  SYMBOL_ATTR_PRINT (type_name);
-  SYMBOL_ATTR_PRINT (destructor);
-  SYMBOL_ATTR_PRINT (printer);
+  if (s)
+    {
+      fprintf (f, "\"%s\"", s->tag);
+      SYMBOL_ATTR_PRINT (type_name);
+      SYMBOL_ATTR_PRINT (destructor);
+      SYMBOL_ATTR_PRINT (printer);
+    }
+  else
+    fprintf (f, "<NULL>");
 }
 
 #undef SYMBOL_ATTR_PRINT
@@ -130,7 +135,7 @@ symbol_type_set (symbol *sym, uniqstr type_name, location loc)
 `------------------------------------------------------------------*/
 
 void
-symbol_destructor_set (symbol *sym, char *destructor, location loc)
+symbol_destructor_set (symbol *sym, const char *destructor, location loc)
 {
   if (destructor)
     {
@@ -147,7 +152,7 @@ symbol_destructor_set (symbol *sym, char *destructor, location loc)
 `---------------------------------------------------------------*/
 
 void
-symbol_printer_set (symbol *sym, char *printer, location loc)
+symbol_printer_set (symbol *sym, const char *printer, location loc)
 {
   if (printer)
     {