111
|
1 ------------------------------------------------------------------------------
|
|
2 -- --
|
|
3 -- GNAT RUN-TIME COMPONENTS --
|
|
4 -- --
|
|
5 -- S Y S T E M . D I M . F L O A T _ I O --
|
|
6 -- --
|
|
7 -- B o d y --
|
|
8 -- --
|
|
9 -- Copyright (C) 2011-2017, Free Software Foundation, Inc. --
|
|
10 -- --
|
|
11 -- GNAT is free software; you can redistribute it and/or modify it under --
|
|
12 -- terms of the GNU General Public License as published by the Free Soft- --
|
|
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
|
|
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
|
|
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
|
|
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
|
|
17 -- --
|
|
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
|
|
19 -- additional permissions described in the GCC Runtime Library Exception, --
|
|
20 -- version 3.1, as published by the Free Software Foundation. --
|
|
21 -- --
|
|
22 -- You should have received a copy of the GNU General Public License and --
|
|
23 -- a copy of the GCC Runtime Library Exception along with this program; --
|
|
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
|
|
25 -- <http://www.gnu.org/licenses/>. --
|
|
26 -- --
|
|
27 -- GNAT was originally developed by the GNAT team at New York University. --
|
|
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
|
|
29 -- --
|
|
30 ------------------------------------------------------------------------------
|
|
31
|
|
32 package body System.Dim.Float_IO is
|
|
33
|
|
34 package Num_Dim_Float_IO is new Ada.Text_IO.Float_IO (Num_Dim_Float);
|
|
35
|
|
36 ---------
|
|
37 -- Put --
|
|
38 ---------
|
|
39
|
|
40 procedure Put
|
|
41 (File : File_Type;
|
|
42 Item : Num_Dim_Float;
|
|
43 Fore : Field := Default_Fore;
|
|
44 Aft : Field := Default_Aft;
|
|
45 Exp : Field := Default_Exp;
|
|
46 Symbol : String := "")
|
|
47 is
|
|
48 begin
|
|
49 Num_Dim_Float_IO.Put (File, Item, Fore, Aft, Exp);
|
|
50 Ada.Text_IO.Put (File, Symbol);
|
|
51 end Put;
|
|
52
|
|
53 procedure Put
|
|
54 (Item : Num_Dim_Float;
|
|
55 Fore : Field := Default_Fore;
|
|
56 Aft : Field := Default_Aft;
|
|
57 Exp : Field := Default_Exp;
|
|
58 Symbol : String := "")
|
|
59 is
|
|
60 begin
|
|
61 Num_Dim_Float_IO.Put (Item, Fore, Aft, Exp);
|
|
62 Ada.Text_IO.Put (Symbol);
|
|
63 end Put;
|
|
64
|
|
65 procedure Put
|
|
66 (To : out String;
|
|
67 Item : Num_Dim_Float;
|
|
68 Aft : Field := Default_Aft;
|
|
69 Exp : Field := Default_Exp;
|
|
70 Symbol : String := "")
|
|
71 is
|
|
72 Ptr : constant Natural := Symbol'Length;
|
|
73
|
|
74 begin
|
|
75 Num_Dim_Float_IO.Put (To (To'First .. To'Last - Ptr), Item, Aft, Exp);
|
|
76 To (To'Last - Ptr + 1 .. To'Last) := Symbol;
|
|
77 end Put;
|
|
78
|
|
79 ----------------
|
|
80 -- Put_Dim_Of --
|
|
81 ----------------
|
|
82
|
|
83 pragma Warnings (Off);
|
|
84 -- kill warnings on unreferenced formals
|
|
85
|
|
86 procedure Put_Dim_Of
|
|
87 (File : File_Type;
|
|
88 Item : Num_Dim_Float;
|
|
89 Symbol : String := "")
|
|
90 is
|
|
91 begin
|
|
92 Ada.Text_IO.Put (File, Symbol);
|
|
93 end Put_Dim_Of;
|
|
94
|
|
95 procedure Put_Dim_Of
|
|
96 (Item : Num_Dim_Float;
|
|
97 Symbol : String := "")
|
|
98 is
|
|
99 begin
|
|
100 Ada.Text_IO.Put (Symbol);
|
|
101 end Put_Dim_Of;
|
|
102
|
|
103 procedure Put_Dim_Of
|
|
104 (To : out String;
|
|
105 Item : Num_Dim_Float;
|
|
106 Symbol : String := "")
|
|
107 is
|
|
108 begin
|
|
109 To (1 .. Symbol'Length) := Symbol;
|
|
110 end Put_Dim_Of;
|
|
111
|
|
112 -----------
|
|
113 -- Image --
|
|
114 -----------
|
|
115
|
|
116 function Image
|
|
117 (Item : Num_Dim_Float;
|
|
118 Aft : Field := Default_Aft;
|
|
119 Exp : Field := Default_Exp;
|
|
120 Symbol : String := "") return String
|
|
121 is
|
|
122 Buffer : String (1 .. 50);
|
|
123
|
|
124 begin
|
|
125 Put (Buffer, Item, Aft, Exp);
|
|
126 for I in Buffer'Range loop
|
|
127 if Buffer (I) /= ' ' then
|
|
128 return Buffer (I .. Buffer'Last) & Symbol;
|
|
129 end if;
|
|
130 end loop;
|
|
131 end Image;
|
|
132 end System.Dim.Float_IO;
|