]> 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>
 
 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>
        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
 
 /* 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.
 
 
    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.  |
 `---------------------------------*/
 /*---------------------------------.
 | 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)
     {
 
   if (n < 0)
     {
-      complain_at (loc, _("invalid $ value"));
+      complain_at (loc, _("invalid $ value: $%d"), n);
       return NULL;
     }
 
       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)
        {
       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;
          return NULL;
        }
       ++i;
index aea5c144de9ec5a399d46655bbf0a54488d2ee14..135a8cd17b71a3cb5a2a99ae155286eef3455cd9 100644 (file)
@@ -1,6 +1,6 @@
 /* Lists of symbols for Bison
 
 /* 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.
 
 
    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);
 
 /* 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,
 /* 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.                                                         |
 /*------------------------------------------------------------------.
 | 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.
 
 /* 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.
    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)
 
 /* 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);
 
 /* Fetch (or create) the symbol associated to KEY.  */
 symbol *symbol_get (const char *key, location loc);