]> git.saurik.com Git - bison.git/blobdiff - src/symtab.c
yysyntax_error: fix for consistent error with lookahead.
[bison.git] / src / symtab.c
index 7d18f92d4da0a12b180a7964c4f0dc3ed8f7034f..b9eca1956e862cbde7ab6afc249a99b9d335b876 100644 (file)
@@ -1,8 +1,7 @@
 /* Symbol table manager for Bison.
 
    Copyright (C) 1984, 1989, 2000, 2001, 2002, 2004, 2005, 2006, 2007,
-   2008, 2009
-   Free Software Foundation, Inc.
+   2008, 2009, 2010 Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
@@ -184,24 +183,6 @@ symbol_type_set (symbol *sym, uniqstr type_name, location loc)
     }
 }
 
-/*-----------------------------------.
-| Get the CLASS associated with SYM. |
-`-----------------------------------*/
-
-const char *
-symbol_class_get_string (symbol *sym)
-{
-  if (sym->class)
-    {
-      if (sym->class == token_sym)
-       return "terminal";
-      else if (sym->class == nterm_sym)
-       return "nonterminal";
-    }
-  return "unknown";
-}
-
-
 /*-----------------------------------------.
 | Set the DESTRUCTOR associated with SYM.  |
 `-----------------------------------------*/
@@ -454,7 +435,7 @@ static inline void
 symbol_check_alias_consistency (symbol *this)
 {
   symbol *sym = this;
-  symbol *str  = this->alias;
+  symbol *str = this->alias;
 
   /* Check only the symbol in the symbol-string pair.  */
   if (!(this->alias
@@ -514,31 +495,11 @@ symbol_check_alias_consistency_processor (void *this,
 static inline bool
 symbol_pack (symbol *this)
 {
+  aver (this->number != NUMBER_UNDEFINED);
   if (this->class == nterm_sym)
-    {
-      this->number += ntokens;
-    }
-  else if (this->alias)
-    {
-      /* This symbol and its alias are a single token defn.
-        Allocate a tokno, and assign to both check agreement of
-        prec and assoc fields and make both the same */
-      if (this->number == NUMBER_UNDEFINED)
-       {
-         if (this == endtoken || this->alias == endtoken)
-           this->number = this->alias->number = 0;
-         else
-           {
-             aver (this->alias->number != NUMBER_UNDEFINED);
-             this->number = this->alias->number;
-           }
-       }
-      /* Do not do processing below for USER_NUMBER_HAS_STRING_ALIASes.  */
-      if (this->user_token_number == USER_NUMBER_HAS_STRING_ALIAS)
-       return true;
-    }
-  else /* this->class == token_sym */
-    aver (this->number != NUMBER_UNDEFINED);
+    this->number += ntokens;
+  else if (this->user_token_number == USER_NUMBER_HAS_STRING_ALIAS)
+    return true;
 
   symbols[this->number] = this;
   return true;