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>