]> git.saurik.com Git - bison.git/blobdiff - src/symlist.c
* tests/cxx-type.at: Construct a tree, count the parents of shared
[bison.git] / src / symlist.c
index 9d46d8a522dda81b83f525c807040fc54343d05a..7c3ebff6b637ae6ce2278bbdf7596b6e232e3a53 100644 (file)
@@ -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.
 
 
    You should have received a copy of the GNU General Public License
    along with Bison; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
+#include <config.h>
 #include "system.h"
 
 #include "complain.h"
@@ -32,7 +33,7 @@
 symbol_list *
 symbol_list_new (symbol *sym, location loc)
 {
-  symbol_list *res = XMALLOC (symbol_list, 1);
+  symbol_list *res = xmalloc (sizeof *res);
   res->next = NULL;
   res->sym = sym;
   res->location = loc;
@@ -44,6 +45,22 @@ symbol_list_new (symbol *sym, location loc)
 }
 
 
+/*------------------.
+| Print this list.  |
+`------------------*/
+
+void
+symbol_list_print (symbol_list *l, FILE *f)
+{
+  for (/* Nothing. */; l && l->sym; l = l->next)
+    {
+      symbol_print (l->sym, f);
+      if (l && l->sym)
+       fputc (' ', f);
+    }
+}
+
+
 /*---------------------------------.
 | Prepend SYM at LOC to the LIST.  |
 `---------------------------------*/
@@ -94,7 +111,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 +122,7 @@ 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);
          return NULL;
        }
       ++i;