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