]> git.saurik.com Git - bison.git/blobdiff - src/symtab.h
* data/m4sugar/m4sugar.m4: Update from CVS Autoconf.
[bison.git] / src / symtab.h
index fd355e1fc4515d9df9e0e19a6325493c19313400..591c6b8e4057b87dc21ab7d7e88a3b2cc618485b 100644 (file)
@@ -41,34 +41,42 @@ typedef enum
   nterm_sym            /* non-terminal */
 } symbol_class;
 
+/* Internal token numbers. */
+typedef short token_number_t;
+
 #define SUNDEF  -1              /* For undefined user number. */
 #define SALIAS -9991           /* for symbol generated with an alias */
 
-typedef struct bucket
+#define NUMBER_UNDEFINED ((token_number_t) -1)
+
+struct symbol_s
 {
   /* The key, name of the symbol. */
   char *tag;
   /* Its type. */
   char *type_name;
-  short number;
+
+  token_number_t number;
   short prec;
   associativity assoc;
-  short user_token_number;
+  int user_token_number;
 
   /* Points to the other in the identifier-symbol pair for an
      alias. Special value SALIAS in the identifier half of the
      identifier-symbol pair for an alias.  */
-  struct bucket *alias;
+  struct symbol_s *alias;
   symbol_class class;
-} bucket;
+};
+
+typedef struct symbol_s symbol_t;
 
 /* A function to apply to each symbol. */
-typedef bool (*bucket_processor) PARAMS ((bucket *));
+typedef bool (*symbol_processor) PARAMS ((symbol_t *));
 
-bucket *getsym PARAMS ((const char *));
+symbol_t *getsym PARAMS ((const char *));
 
-void buckets_new PARAMS ((void));
-void buckets_do PARAMS ((bucket_processor processor, void *processor_data));
-void buckets_free PARAMS ((void));
+void symbols_new PARAMS ((void));
+void symbols_do PARAMS ((symbol_processor processor, void *processor_data));
+void symbols_free PARAMS ((void));
 
 #endif /* !SYMTAB_H_ */