showcase24stack.def 504 B

123456789101112131415161718
  1. GENERIC DEFINITION MODULE GStack (T : TYPE);
  2. (* A generic linked stack over a type parameter T. Instantiated as
  3. IntStack = GStack(INTEGER) and CharStack = GStack(CHAR). *)
  4. TYPE
  5. Node = POINTER TO NodeRec;
  6. NodeRec = RECORD
  7. val : T;
  8. next : Node;
  9. END;
  10. Stack = RECORD
  11. top : Node;
  12. depth : INTEGER;
  13. END;
  14. PROCEDURE Init(VAR s : Stack);
  15. PROCEDURE Push(VAR s : Stack; v : T);
  16. PROCEDURE Pop(VAR s : Stack; VAR v : T) : BOOLEAN;
  17. PROCEDURE Depth(VAR s : Stack) : INTEGER;
  18. END GStack.