]> git.saurik.com Git - bison.git/blobdiff - src/symlist.c
grammar: preserve token declaration order
[bison.git] / src / symlist.c
index 196db4c855f29fa3b0803bef823158a67054d298..13759e30f244112ad53f7d0ae102950dfb92a38c 100644 (file)
@@ -1,6 +1,6 @@
 /* Lists of symbols for Bison
 
-   Copyright (C) 2002, 2005-2007, 2009-2012 Free Software Foundation,
+   Copyright (C) 2002, 2005-2007, 2009-2013 Free Software Foundation,
    Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
@@ -107,6 +107,23 @@ symbol_list_prepend (symbol_list *list, symbol_list *node)
 }
 
 
+/*-------------------------.
+| Append NODE to the LIST. |
+`-------------------------*/
+
+symbol_list *
+symbol_list_append (symbol_list *list, symbol_list *node)
+{
+  if (!list)
+    return node;
+  symbol_list *next = list;
+  while (next->next)
+    next = next->next;
+  next->next = node;
+  return list;
+}
+
+
 /*-----------------------------------------------.
 | Free the LIST, but not the items it contains.  |
 `-----------------------------------------------*/
@@ -119,6 +136,8 @@ symbol_list_free (symbol_list *list)
     {
       next = node->next;
       named_ref_free (node->named_ref);
+      if (node->content_type == SYMLIST_TYPE)
+        free (node->content.sem_type);
       free (node);
     }
 }