The Ada Program: generic_stack.ads

  1 -- generic_stack.ads:  Ada generic package specification for stack
  2 
  3 generic
  4    Stack_Size: in Integer;
  5    type Item_Type is private;
  6 
  7 package Generic_Stack is
  8 
  9    type Stack_Type is private;
 10    procedure Push (Item: in Item_Type; Stack: in out Stack_Type);
 11    procedure Pop (Item: out Item_Type; Stack: in out Stack_Type);
 12 
 13 private
 14    type Item_List_Type is array (1 .. Stack_Size) of Item_Type;
 15 
 16    type Stack_Type is
 17       record
 18          Top      : Integer range 0 .. Stack_Size := 0;
 19          Elements : Item_List_Type;
 20       end record;
 21 
 22 end Generic_Stack;