ack/util/ncgg/lookup.h

39 lines
959 B
C

/*
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
* See the copyright notice in the ACK home directory, in the file "Copyright".
*/
/* $Id$ */
#ifndef LOOKUP_H_
#define LOOKUP_H_
typedef enum {
justlooking,mustexist,newsymbol,makeexist
} lookupstyle;
typedef enum {
symany,symkeyw,symconst,symsconst,symprop,symreg,symtok,symset,symproc
} symtype;
typedef struct symbol {
struct symbol *sy_next; /* pointer to hashchain */
char *sy_name; /* symbol */
symtype sy_type; /* type */
union {
long syv_cstval;
int syv_stringno;
int syv_keywno;
int syv_propno;
int syv_regno;
int syv_tokno;
int syv_setno;
int syv_procoff;
} sy_value;
} symbol;
#define NSYMHASH 61
extern symbol *symhash[NSYMHASH]; /* chained hashtable */
symbol *lookup(char *name, symtype type, lookupstyle style);
#endif /* LOOKUP_H_ */