/*	stack.h
 *
 *  $Log$
 */

typedef struct {
	void **vector;				/* vector[ix]==NULL (ie null-term'd) */
	unsigned int ix;			/* ix=0 for empty list */
} STACK;

STACK	*new_stack	( void );
void	 del_stack	(STACK *stack, void (*fn)(void*), unsigned int levels );
void	 stack_push	(STACK *stack, void *value);
void	*stack_pop	(STACK *stack);
void	*stack_peek	(STACK *stack, unsigned int index);
void	*stack_index(STACK *stack, unsigned int index);
int		 stack_depth(STACK *stack);

