program printreverse;
{legge dei numeri naturali dallo schermo e li mette in una pila;
poi stampa la pila}

uses ustack,naturali;

var s:stack;

procedure fillstack(var s:stack);
{legge dei naturali e li mette in una pila}
var nextnum:nat;
begin
  writeln('Scrivi dei naturali e premi enter:');
  while not eoln do
    begin
    nextnum.legginat(input);
    s.push(nextnum)
    end;
end;

procedure displaystack(var s:stack);
{prende ogni elemento della pila e lo stampa}
var success:boolean;
    nextnum:nat;
begin
 while not s.isempty do
   begin
   s.pop(nextnum,success);
   nextnum.stampa; write(' ')
   end;
 writeln
end;

begin
  s.init;
  fillstack(s);
  displaystack(s);
  s.done
end.