]> git.saurik.com Git - bison.git/blobdiff - src/symlist.c
(_AT_TEST_GLR_CXXTYPES): Do not include <assert.h>.
[bison.git] / src / symlist.c
index 4ae5f0171d489abb275cecfa04cae1dee4ac2a2e..92d8513d46a620d0ed812e0adcc2205876bc9a26 100644 (file)
@@ -19,6 +19,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include "system.h"
+#include "complain.h"
 #include "symlist.h"
 
 
@@ -35,6 +36,8 @@ symbol_list_new (symbol_t *sym, location_t location)
   res->location = location;
   res->action = NULL;
   res->ruleprec = NULL;
+  res->dprec = 0;
+  res->merger = 0;
   return res;
 }
 
@@ -64,12 +67,26 @@ symbol_list_free (symbol_list_t *list)
 }
 
 
+/*--------------------.
+| Return its length.  |
+`--------------------*/
+
+unsigned int
+symbol_list_length (symbol_list_t *list)
+{
+  int res = 0;
+  for (/* Nothing. */; list; list = list->next)
+    ++res;
+  return res;
+}
+
+
 /*--------------------------------------------------------------.
 | Get the data type (alternative in the union) of the value for |
 | symbol N in rule RULE.                                        |
 `--------------------------------------------------------------*/
 
-char *
+struniq_t
 symbol_list_n_type_name_get (symbol_list_t *rule, location_t location, int n)
 {
   int i;