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>
|
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.
|
b4_at_dollar and b4_dollar_dollar.
|
||||||
|
|
||||||
2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
|
2005-07-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
|||||||
@@ -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;
|
rp = rp->next;
|
||||||
if (rp == NULL || rp->sym == NULL)
|
if (rp == NULL || rp->sym == NULL)
|
||||||
{
|
{
|
||||||
complain_at (loc, _("invalid $ value"));
|
complain_at (loc, _("invalid $ value: $%d"), n);
|
||||||
|
fprintf (stderr, "\n");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
++i;
|
++i;
|
||||||
|
|||||||
@@ -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. */
|
/* Create a list containing SYM at LOC. */
|
||||||
symbol_list *symbol_list_new (symbol *sym, location 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. */
|
/* Prepend SYM at LOC to the LIST. */
|
||||||
symbol_list *symbol_list_prepend (symbol_list *list,
|
symbol_list *symbol_list_prepend (symbol_list *list,
|
||||||
symbol *sym,
|
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 |
|
| Complain that S's WHAT is redeclared at SECOND, and was first set |
|
||||||
| at FIRST. |
|
| at FIRST. |
|
||||||
|
|||||||
@@ -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.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of Bison, the GNU Compiler Compiler.
|
This file is part of Bison, the GNU Compiler Compiler.
|
||||||
@@ -91,6 +91,8 @@ struct symbol
|
|||||||
/* Undefined internal token number. */
|
/* Undefined internal token number. */
|
||||||
#define NUMBER_UNDEFINED (-1)
|
#define NUMBER_UNDEFINED (-1)
|
||||||
|
|
||||||
|
/* Print a symbol (for debugging). */
|
||||||
|
void symbol_print (FILE *f, symbol *s);
|
||||||
|
|
||||||
/* Fetch (or create) the symbol associated to KEY. */
|
/* Fetch (or create) the symbol associated to KEY. */
|
||||||
symbol *symbol_get (const char *key, location loc);
|
symbol *symbol_get (const char *key, location loc);
|
||||||
|
|||||||
Reference in New Issue
Block a user