-- This is the specification for an integer stack abstract data type. package IntStackPkg is type StackType is limited private; Stack_Is_Empty, Stack_Is_Full : Exception; function IsEmpty (S : StackType) return Boolean; function IsFull (S : StackType) return Boolean; procedure Push (I : Integer; S : in out StackType); procedure Pop (S : in out StackType); function Top (S : StackType) return Integer; private MaxSize : Constant Integer := 1_000; type ElementArray is array(1 .. MaxSize) of Integer; type StackType is record Elements : ElementArray; TheTop : Integer range 0 .. MaxSize := 0; end record; end IntStackPkg;