/*
 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 * See the copyright notice in the ACK home directory, in the file "Copyright".
 */
#ifndef LOOKUP_H_
#define LOOKUP_H_

#include "types.h"

#define IDL	100

struct sym {
	sym_p	s_next;
	offset	*s_rom;
	short	s_flags;
	short	s_frag;
	offset	s_value;
	char	s_name[2];	/* to be extended up to IDL */
};

/* contents of .s_flags */
#define SYMPRO		000001
#define SYMGLOBAL	000002
#define SYMKNOWN	000004
#define SYMOUT		000010
#define SYMDEF		000020
#define SYMSEEN		000040

#define NSYMHASH	127
extern sym_p symhash[NSYMHASH],symlookup();
#define OCCURRING	0
#define DEFINING	1
#define NOTHING		2

/** Return the hash value of the specified string. */
unsigned hash(char *string);
num_p numlookup(unsigned number);
/** Search the hash table for the specified name
 *  and symbol type specified in `flags`.
 */
sym_p symlookup(char *name, int status, int flags);


#endif /* LOOKUP_H_ */