X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/340ef489223a5d1f9c40674ea2973435cb8ecc1b..7ea5e9779b59230a43edfe24cf395a47841a3823:/src/symtab.h diff --git a/src/symtab.h b/src/symtab.h index 03ae90f4..c64e4079 100644 --- a/src/symtab.h +++ b/src/symtab.h @@ -1,5 +1,5 @@ /* Definitions for symtab.c and callers, part of bison, - Copyright (C) 1984, 1989, 1992, 2000 Free Software Foundation, Inc. + Copyright 1984, 1989, 1992, 2000, 2001 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -20,34 +20,43 @@ #ifndef SYMTAB_H_ # define SYMTAB_H_ +# include "gram.h" #define TABSIZE 1009 /* symbol classes */ -#define SUNKNOWN 0 -#define STOKEN 1 /* terminal symbol */ -#define SNTERM 2 /* non-terminal */ +typedef enum +{ + unknown_sym, + token_sym, /* terminal symbol */ + nterm_sym /* non-terminal */ +} symbol_class; +#define SUNDEF -1 /* For undefined user number. */ #define SALIAS -9991 /* for symbol generated with an alias */ typedef struct bucket { + /* Needed for the hash table. */ struct bucket *link; struct bucket *next; + + /* The key, name of the symbol. */ char *tag; + /* Its type. */ char *type_name; short value; short prec; - short assoc; + associativity assoc; short user_token_number; - /* special value SALIAS in the identifier half of the - identifier-symbol pair for an alias */ + + /* 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; - /* points to the other in the identifier-symbol pair for an alias */ - char class; -} -bucket; + symbol_class class; +} bucket; extern bucket *firstsymbol;