* 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 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>
/* 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.
}
+/*------------------.
+| 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. |
`---------------------------------*/
if (n < 0)
{
- complain_at (loc, _("invalid $ value"));
+ complain_at (loc, _("invalid $ value: $%d"), n);
return 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;
/* 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.
/* 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,
}
+/*-----------------.
+| 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. |
/* 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.
/* 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);