OSDN Git Service

2009-02-27 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / gcc / ada / s-imgdec.ads
1 ------------------------------------------------------------------------------
2 --                                                                          --
3 --                         GNAT RUN-TIME COMPONENTS                         --
4 --                                                                          --
5 --                       S Y S T E M . I M G _ D E C                        --
6 --                                                                          --
7 --                                 S p e c                                  --
8 --                                                                          --
9 --          Copyright (C) 1992-2007, 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 2,  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.  See the GNU General Public License --
17 -- for  more details.  You should have  received  a copy of the GNU General --
18 -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
19 -- to  the  Free Software Foundation,  51  Franklin  Street,  Fifth  Floor, --
20 -- Boston, MA 02110-1301, USA.                                              --
21 --                                                                          --
22 -- As a special exception,  if other files  instantiate  generics from this --
23 -- unit, or you link  this unit with other files  to produce an executable, --
24 -- this  unit  does not  by itself cause  the resulting  executable  to  be --
25 -- covered  by the  GNU  General  Public  License.  This exception does not --
26 -- however invalidate  any other reasons why  the executable file  might be --
27 -- covered by the  GNU Public License.                                      --
28 --                                                                          --
29 -- GNAT was originally developed  by the GNAT team at  New York University. --
30 -- Extensive contributions were provided by Ada Core Technologies Inc.      --
31 --                                                                          --
32 ------------------------------------------------------------------------------
33
34 --  Image for decimal fixed types where the size of the corresponding integer
35 --  type does not exceed Integer'Size (also used for Text_IO.Decimal_IO output)
36
37 package System.Img_Dec is
38    pragma Pure;
39
40    procedure Image_Decimal
41      (V     : Integer;
42       S     : in out String;
43       P     : out Natural;
44       Scale : Integer);
45    --  Computes fixed_type'Image (V), where V is the integer value (in units of
46    --  delta) of a decimal type whose Scale is as given and stores the result
47    --  S (1 .. P), updating P to the value of L. The image is given by the
48    --  rules in RM 3.5(34) for fixed-point type image functions. The caller
49    --  guarantees that S is long enough to hold the result. S need not have a
50    --  lower bound of 1.
51
52    procedure Set_Image_Decimal
53      (V     : Integer;
54       S     : in out String;
55       P     : in out Natural;
56       Scale : Integer;
57       Fore  : Natural;
58       Aft   : Natural;
59       Exp   : Natural);
60    --  Sets the image of V, where V is the integer value (in units of delta)
61    --  of a decimal type with the given Scale, starting at S (P + 1), updating
62    --  P to point to the last character stored, the caller promises that the
63    --  buffer is large enough and no check is made for this. Constraint_Error
64    --  will not necessarily be raised if this requirement is violated, since
65    --  it is perfectly valid to compile this unit with checks off. The Fore,
66    --  Aft and Exp values can be set to any valid values for the case of use
67    --  by Text_IO.Decimal_IO. Note that there is no leading space stored.
68
69    procedure Set_Decimal_Digits
70      (Digs  : in out String;
71       NDigs : Natural;
72       S     : out String;
73       P     : in out Natural;
74       Scale : Integer;
75       Fore  : Natural;
76       Aft   : Natural;
77       Exp   : Natural);
78    --  This procedure has the same semantics as Set_Image_Decimal, except that
79    --  the value in Digs (1 .. NDigs) is given as a string of decimal digits
80    --  preceded by either a minus sign or a space (i.e. the integer image of
81    --  the value in units of delta). The call may destroy the value in Digs,
82    --  which is why Digs is in-out (this happens if rounding is required).
83    --  Set_Decimal_Digits is shared by all the decimal image routines.
84
85 end System.Img_Dec;