mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
* 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.
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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,
|
||||
|
||||
19
src/symtab.c
19
src/symtab.c
@@ -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. |
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user