[BACK]Return to multprec_integer_numbers_io.adb CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Numbers

Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Numbers/multprec_integer_numbers_io.adb, Revision 1.1.1.1

1.1       maekawa     1: with integer_io;                         use integer_io;
                      2: with Characters_and_Numbers;             use Characters_and_Numbers;
                      3: with Multprec_Natural_Numbers;           use Multprec_Natural_Numbers;
                      4: with Multprec_Natural_Numbers_io;        use Multprec_Natural_Numbers_io;
                      5:
                      6: package body Multprec_Integer_Numbers_io is
                      7:
                      8:   procedure get ( lc : in out character; i : in out Integer_Number ) is
                      9:   begin
                     10:     get(Standard_Input,lc,i);
                     11:   end get;
                     12:
                     13:   procedure get ( file : in file_type;
                     14:                   lc : in out character;  i : in out Integer_Number ) is
                     15:
                     16:     n : Natural_Number;
                     17:     plus : boolean;
                     18:
                     19:   begin
                     20:     if lc = ' '
                     21:      then Skip_Spaces(file,lc);
                     22:     end if;
                     23:     if lc = '+'
                     24:      then plus := true;
                     25:           get(file,lc);
                     26:      elsif lc = '-'
                     27:          then plus := false;
                     28:               get(file,lc);
                     29:          else plus := true;
                     30:     end if;
                     31:     get(file,lc,n);
                     32:     Clear(i);
                     33:     i := Create(n);
                     34:     if not plus
                     35:      then Min(i);
                     36:     end if;
                     37:   end get;
                     38:
                     39:   procedure get ( i : in out Integer_Number ) is
                     40:   begin
                     41:     get(Standard_Input,i);
                     42:   end get;
                     43:
                     44:   procedure get ( file : in file_type; i : in out Integer_Number ) is
                     45:
                     46:     c : character := ' ';
                     47:
                     48:   begin
                     49:     Skip_Spaces(file,c);
                     50:     get(file,c,i);
                     51:   end get;
                     52:
                     53:   procedure put ( i : in Integer_Number ) is
                     54:   begin
                     55:     put(Standard_Output,i);
                     56:   end put;
                     57:
                     58:   procedure put ( file : in file_type; i : in Integer_Number ) is
                     59:   begin
                     60:     if Empty(i)
                     61:      then put(file,"0");
                     62:      else if Negative(i)
                     63:            then put(file,"-");
                     64:           end if;
                     65:           put(file,Unsigned(i));
                     66:     end if;
                     67:   end put;
                     68:
                     69:   procedure put ( i : in Integer_Number; dp : in natural ) is
                     70:   begin
                     71:     put(Standard_Output,i,dp);
                     72:   end put;
                     73:
                     74:   procedure put ( file : in file_type;
                     75:                   i : in Integer_Number; dp : in natural ) is
                     76:   begin
                     77:     if Empty(i)
                     78:      then for k in 1..dp-1 loop
                     79:             put(file," ");
                     80:           end loop;
                     81:           put(file,"0");
                     82:      else if Negative(i)
                     83:            then for k in 1..dp-Decimal_Places(i)-1 loop
                     84:                   put(file," ");
                     85:                 end loop;
                     86:                 put(file,"-");
                     87:                 put(file,Unsigned(i));
                     88:            else put(file,Unsigned(i),dp);
                     89:           end if;
                     90:           put(file,Unsigned(i));
                     91:     end if;
                     92:   end put;
                     93:
                     94: end Multprec_Integer_Numbers_io;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>