#ifndef	SYMTAB
#define	SYMTAB

#define	UNKNOWN		0
#define	TERMINAL	1
#define	NONTERMINAL	2

/* WARNING:  In addition to its internal use, UNDEFINED is also the default */
/*	     value of the error token.					    */
#define UNDEFINED	(-1)

typedef
  struct bucket
    {
      struct bucket *left;
      struct bucket *right;
      struct bucket *next;
      int length;
      char *key;
      char *tag;
      char *prname;
      short index;
      short value;
      short prec;
      char form;
      char class;
      char assoc;
      char used;
    }
  bucket;

extern bucket *first_symbol;
extern bucket *lookup();
extern bucket *make_bucket();
extern char *mk_prname();

#endif
