Ada Int Stack Driver
--
-- A simple client of the IntStack package.
--
-- Gnat I/O comes with the Gnat compiler. It's not part of the Ada
-- standard, AFAIK.
with Gnat.Io; use Gnat.Io;
with IntStackPkg; use IntStackPkg;
procedure Driver is
IntIn: Integer; -- Integer read in.
Cnt: Integer; -- Uh... A counter.
IntOut1, IntOut2: Integer; -- Integers popped from the stack.
S1, S2: IntStack; -- Two test stacks.
begin
-- Read in integers until -1, and push each on one stack, and each
-- times the input ordinal on the other.
Cnt := 1;
loop
Put("> ");
Get(IntIn);
exit when IntIn = -1;
Push(S1, IntIn);
Push(S2, Cnt*IntIn);
Cnt := Cnt + 1;
end loop;
-- Pop 'em and print 'em
while not IsEmpty(S1) loop
Pop(S1, IntOut1);
Pop(S2, IntOut2);
Put(IntOut1);
Put(" ");
Put(IntOut2);
New_Line;
end loop;
end Driver;