with integer_io; use integer_io; with Characters_and_Numbers; use Characters_and_Numbers; with Multprec_Natural_Numbers; use Multprec_Natural_Numbers; with Multprec_Natural_Numbers_io; use Multprec_Natural_Numbers_io; package body Multprec_Integer_Numbers_io is procedure get ( lc : in out character; i : in out Integer_Number ) is begin get(Standard_Input,lc,i); end get; procedure get ( file : in file_type; lc : in out character; i : in out Integer_Number ) is n : Natural_Number; plus : boolean; begin if lc = ' ' then Skip_Spaces(file,lc); end if; if lc = '+' then plus := true; get(file,lc); elsif lc = '-' then plus := false; get(file,lc); else plus := true; end if; get(file,lc,n); Clear(i); i := Create(n); if not plus then Min(i); end if; end get; procedure get ( i : in out Integer_Number ) is begin get(Standard_Input,i); end get; procedure get ( file : in file_type; i : in out Integer_Number ) is c : character := ' '; begin Skip_Spaces(file,c); get(file,c,i); end get; procedure put ( i : in Integer_Number ) is begin put(Standard_Output,i); end put; procedure put ( file : in file_type; i : in Integer_Number ) is begin if Empty(i) then put(file,"0"); else if Negative(i) then put(file,"-"); end if; put(file,Unsigned(i)); end if; end put; procedure put ( i : in Integer_Number; dp : in natural ) is begin put(Standard_Output,i,dp); end put; procedure put ( file : in file_type; i : in Integer_Number; dp : in natural ) is begin if Empty(i) then for k in 1..dp-1 loop put(file," "); end loop; put(file,"0"); else if Negative(i) then for k in 1..dp-Decimal_Places(i)-1 loop put(file," "); end loop; put(file,"-"); put(file,Unsigned(i)); else put(file,Unsigned(i),dp); end if; put(file,Unsigned(i)); end if; end put; end Multprec_Integer_Numbers_io;