/*
 * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
 * See the copyright notice in the ACK home directory, in the file "Copyright".
 */
/* $Header$ */
/* IDENTIFIER STACK DEFINITIONS */

/*	The identifier stack is implemented as a stack of sets.
	The stack is implemented by a doubly linked list,
	the sets by singly linked lists.
*/

struct stack_level	{
	struct stack_level *next;
	struct stack_level *sl_next;		/* upward link		*/
	struct stack_level *sl_previous;	/* downward link	*/
	struct stack_entry *sl_entry;		/* sideward link	*/
	arith sl_local_offset;		/* @ for first coming object	*/
	arith sl_max_block;		/* maximum size of sub-block	*/
	int sl_level;
};

/* ALLOCDEF "stack_level" 5 */

struct stack_entry	{
	struct stack_entry *next;
	struct idf *se_idf;
};

/* ALLOCDEF "stack_entry" 5 */

extern struct stack_level *local_level;
extern struct stack_level *stack_level_of();
extern int level;