Modula-2 || Compiler & Tools || Library || Search Engine
TYPE Stack;
PROCEDURE Create (VAR stack : Stack; noelem : CARDINAL; example : ARRAY OF BYTE); PROCEDURE Dispose (VAR stack : Stack); PROCEDURE Clear(stack : Stack); PROCEDURE Elems (stack : Stack) : CARDINAL; PROCEDURE Push (stack : Stack; elem : ARRAY OF BYTE) : BOOLEAN; PROCEDURE Pop (stack : Stack; VAR elem : ARRAY OF BYTE) : BOOLEAN; PROCEDURE Top(stack : Stack; pos : CARDINAL; VAR elem : ARRAY OF BYTE) : BOOLEAN; PROCEDURE Adr(stack : Stack; pos : CARDINAL; VAR adr : ADDRESS) : BOOLEAN;
Push and Pop behave in the expected manner. Push puts a further element elem onto stack Pop gets the element stored at last and removes it from the stack.
Top yields the last but pos'th element pushed onto stack without removing it.
An object on stack may be accessed by its storage address obtained from Adr, which sets adr to the address of the last but pos'th element stacked.
Using Top or Adr, pos = 0 always refers to the element on top of stack.
Modula-2 || Compiler & Tools || Library || Search Engine