]> git.saurik.com Git - bison.git/commitdiff
* src/symtab.h, src/symtab.c (symbol_print): New.
authorAkim Demaille <akim@epita.fr>
Tue, 12 Jul 2005 13:41:58 +0000 (13:41 +0000)
committerAkim Demaille <akim@epita.fr>
Tue, 12 Jul 2005 13:41:58 +0000 (13:41 +0000)
* src/symlist.h, src/symlist.c (symbol_list_print): New.
* src/symlist.c (symbol_list_n_type_name_get): Report the culprit.

ChangeLog
src/symlist.c
src/symlist.h
src/symtab.c
src/symtab.h

index 2ce92bec37eb747a6ba23310023ed4142d8d5e51..e8c2016a80cb9a678b0e05caeae68d3c990340b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
 2005-07-12  Akim Demaille  <akim@epita.fr>
 
-       * data/glr.c (b4_syncline): Fix (swap) the definition of
+       * src/symtab.h, src/symtab.c (symbol_print): New.
+       * src/symlist.h, src/symlist.c (symbol_list_print): New.
+       * src/symlist.c (symbol_list_n_type_name_get): Report the culprit.
+
+2005-07-12  Akim Demaille  <akim@epita.fr>
+
+       * data/glr.c (b4_syncline): Fix (swap) the definitions of
        b4_at_dollar and b4_dollar_dollar.
 
 2005-07-11  Paul Eggert  <eggert@cs.ucla.edu>
index 40bac872a3164f04145318322f83b43e1f0c08ac..3615626117d2d031c15d6aa507521144d1623b2f 100644 (file)
@@ -1,6 +1,6 @@
 /* Lists of symbols for Bison
 
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -44,6 +44,18 @@ symbol_list_new (symbol *sym, location loc)
 }
 
 
+/*------------------.
+| Print this list.  |
+`------------------*/
+
+void
+symbol_list_print (FILE *f, symbol_list *l)
+{
+  for (/* Nothing. */; l; l = l->next)
+    symbol_print (f, l->sym);
+}
+
+
 /*---------------------------------.
 | Prepend SYM at LOC to the LIST.  |
 `---------------------------------*/
@@ -94,7 +106,7 @@ symbol_list_n_type_name_get (symbol_list *rp, location loc, int n)
 
   if (n < 0)
     {
-      complain_at (loc, _("invalid $ value"));
+      complain_at (loc, _("invalid $ value: $%d"), n);
       return NULL;
     }
 
@@ -105,7 +117,8 @@ symbol_list_n_type_name_get (symbol_list *rp, location loc, int n)
       rp = rp->next;
       if (rp == NULL || rp->sym == NULL)
        {
-         complain_at (loc, _("invalid $ value"));
+         complain_at (loc, _("invalid $ value: $%d"), n);
+         fprintf (stderr, "\n");
          return NULL;
        }
       ++i;
index aea5c144de9ec5a399d46655bbf0a54488d2ee14..135a8cd17b71a3cb5a2a99ae155286eef3455cd9 100644 (file)
@@ -1,6 +1,6 @@
 /* Lists of symbols for Bison
 
-   Copyright (C) 2002 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2005 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -44,6 +44,9 @@ typedef struct symbol_list
 /* Create a list containing SYM at LOC.  */
 symbol_list *symbol_list_new (symbol *sym, location loc);
 
+/* Print it.  */
+void symbol_list_print (FILE *f, symbol_list *l);
+
 /* Prepend SYM at LOC to the LIST.  */
 symbol_list *symbol_list_prepend (symbol_list *list,
                                  symbol *sym,
index aabf3343e5fb534b05badfb766e31637e8f687a2..84e59e92e6d3a36e9f903845684027348dfef147 100644 (file)
@@ -74,6 +74,25 @@ symbol_new (uniqstr tag, location loc)
 }
 
 
+/*-----------------.
+| Print a symbol.  |
+`-----------------*/
+
+#define SYMBOL_ATTR_PRINT(Attr)                                \
+  if (s->Attr)                                         \
+    fprintf (stderr, " %s { %s }", #Attr, s->Attr)
+
+void
+symbol_print (FILE *f, symbol *s)
+{
+  fprintf (stderr, "\"%s\"", s->tag);
+  SYMBOL_ATTR_PRINT (type_name);
+  SYMBOL_ATTR_PRINT (destructor);
+  SYMBOL_ATTR_PRINT (printer);
+}
+
+#undef SYMBOL_ATTR_PRINT
+
 /*------------------------------------------------------------------.
 | Complain that S's WHAT is redeclared at SECOND, and was first set |
 | at FIRST.                                                         |
index fe06297ad8145b388a1d822442142c88405dc556..725b6cb8eed6a46c4adde4b324c7ebf4451df639 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions for symtab.c and callers, part of Bison.
 
-   Copyright (C) 1984, 1989, 1992, 2000, 2001, 2002, 2004
+   Copyright (C) 1984, 1989, 1992, 2000, 2001, 2002, 2004, 2005
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
@@ -91,6 +91,8 @@ struct symbol
 /* Undefined internal token number.  */
 #define NUMBER_UNDEFINED (-1)
 
+/* Print a symbol (for debugging). */
+void symbol_print (FILE *f, symbol *s);
 
 /* Fetch (or create) the symbol associated to KEY.  */
 symbol *symbol_get (const char *key, location loc);