bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: Debugging tools


From: Akim Demaille
Subject: FYI: Debugging tools
Date: Tue, 12 Jul 2005 15:42:29 +0200
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        * 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-11  Paul Eggert  <address@hidden>
Index: src/symlist.c
===================================================================
RCS file: /cvsroot/bison/bison/src/symlist.c,v
retrieving revision 1.9
diff -u -u -r1.9 symlist.c
--- src/symlist.c 14 May 2005 06:49:48 -0000 1.9
+++ src/symlist.c 12 Jul 2005 13:41:14 -0000
@@ -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 @@
 }
 
 
+/*------------------.
+| 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 @@
 
   if (n < 0)
     {
-      complain_at (loc, _("invalid $ value"));
+      complain_at (loc, _("invalid $ value: $%d"), n);
       return NULL;
     }
 
@@ -105,7 +117,8 @@
       rp = rp->next;
       if (rp == NULL || rp->sym == NULL)
        {
-         complain_at (loc, _("invalid $ value"));
+         complain_at (loc, _("invalid $ value: $%d"), n);
          return NULL;
        }
       ++i;
Index: src/symlist.h
===================================================================
RCS file: /cvsroot/bison/bison/src/symlist.h,v
retrieving revision 1.8
diff -u -u -r1.8 symlist.h
--- src/symlist.h 14 May 2005 06:49:48 -0000 1.8
+++ src/symlist.h 12 Jul 2005 13:41:14 -0000
@@ -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.
 
@@ -43,6 +43,9 @@
 
 /* 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,
Index: src/symtab.c
===================================================================
RCS file: /cvsroot/bison/bison/src/symtab.c,v
retrieving revision 1.62
diff -u -u -r1.62 symtab.c
--- src/symtab.c 14 May 2005 06:49:48 -0000 1.62
+++ src/symtab.c 12 Jul 2005 13:41:14 -0000
@@ -74,6 +74,25 @@
 }
 
 
+/*-----------------.
+| 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: src/symtab.h
===================================================================
RCS file: /cvsroot/bison/bison/src/symtab.h,v
retrieving revision 1.55
diff -u -u -r1.55 symtab.h
--- src/symtab.h 14 May 2005 06:49:48 -0000 1.55
+++ src/symtab.h 12 Jul 2005 13:41:14 -0000
@@ -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 @@
 /* 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);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]