/* stack.c: simple fixed-size stack (FILO) in LPC 3.0 -- by Truilkan@TMI - 92/01/31 query_stack added 930215, Zak@UD */ private mixed *stack; private int sptr, size; void empty() { sptr = 0; } mixed *query_stack() { if (!sptr) return ({ }); else return stack[0..sptr-1]; } mixed pop() { if (sptr < 1) return -1; return stack[--sptr]; /* predecrement */ } int push(mixed elt) { if (sptr >= size) return -1; stack[sptr++] = elt; /* post increment */ return 0; } void alloc(int s) { sptr = 0; size = s; stack = allocate(size); } void remove() { destruct(this_object()); }