File : s-diflio.adb


   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-2015, 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 --                                                                          --
  19 --                                                                          --
  20 --                                                                          --
  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;