OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [a-ztedit.ads] - Rev 827

Go to most recent revision | Compare with Previous | Blame | View Log

------------------------------------------------------------------------------
--                                                                          --
--                         GNAT RUN-TIME COMPONENTS                         --
--                                                                          --
--        A D A . W I D E _ W I D E _ T E X T _ I O . E D I T I N G         --
--                                                                          --
--                                 S p e c                                  --
--                                                                          --
--          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
--                                                                          --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
-- apply solely to the  contents of the part following the private keyword. --
--                                                                          --
-- GNAT is free software;  you can  redistribute it  and/or modify it under --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --
--                                                                          --
-- As a special exception under Section 7 of GPL version 3, you are granted --
-- additional permissions described in the GCC Runtime Library Exception,   --
-- version 3.1, as published by the Free Software Foundation.               --
--                                                                          --
-- You should have received a copy of the GNU General Public License and    --
-- a copy of the GCC Runtime Library Exception along with this program;     --
-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --
-- <http://www.gnu.org/licenses/>.                                          --
--                                                                          --
-- GNAT was originally developed  by the GNAT team at  New York University. --
-- Extensive contributions were provided by Ada Core Technologies Inc.      --
--                                                                          --
------------------------------------------------------------------------------
 
package Ada.Wide_Wide_Text_IO.Editing is
 
   type Picture is private;
 
   function Valid
     (Pic_String      : String;
      Blank_When_Zero : Boolean := False) return Boolean;
 
   function To_Picture
     (Pic_String      : String;
      Blank_When_Zero : Boolean := False) return Picture;
 
   function Pic_String      (Pic : Picture) return String;
   function Blank_When_Zero (Pic : Picture) return Boolean;
 
   Max_Picture_Length : constant := 64;
 
   Picture_Error : exception;
 
   Default_Currency   : constant Wide_Wide_String    := "$";
   Default_Fill       : constant Wide_Wide_Character := ' ';
   Default_Separator  : constant Wide_Wide_Character := ',';
   Default_Radix_Mark : constant Wide_Wide_Character := '.';
 
   generic
      type Num is delta <> digits <>;
      Default_Currency   : Wide_Wide_String :=
                                Wide_Wide_Text_IO.Editing.Default_Currency;
      Default_Fill       : Wide_Wide_Character :=
                                Wide_Wide_Text_IO.Editing.Default_Fill;
      Default_Separator  : Wide_Wide_Character :=
                                Wide_Wide_Text_IO.Editing.Default_Separator;
      Default_Radix_Mark : Wide_Wide_Character :=
                                Wide_Wide_Text_IO.Editing.Default_Radix_Mark;
 
   package Decimal_Output is
 
      function Length
        (Pic      : Picture;
         Currency : Wide_Wide_String := Default_Currency) return Natural;
 
      function Valid
        (Item     : Num;
         Pic      : Picture;
         Currency : Wide_Wide_String := Default_Currency) return Boolean;
 
      function Image
        (Item       : Num;
         Pic        : Picture;
         Currency   : Wide_Wide_String    := Default_Currency;
         Fill       : Wide_Wide_Character := Default_Fill;
         Separator  : Wide_Wide_Character := Default_Separator;
         Radix_Mark : Wide_Wide_Character := Default_Radix_Mark)
         return Wide_Wide_String;
 
      procedure Put
        (File       : File_Type;
         Item       : Num;
         Pic        : Picture;
         Currency   : Wide_Wide_String    := Default_Currency;
         Fill       : Wide_Wide_Character := Default_Fill;
         Separator  : Wide_Wide_Character := Default_Separator;
         Radix_Mark : Wide_Wide_Character := Default_Radix_Mark);
 
      procedure Put
        (Item       : Num;
         Pic        : Picture;
         Currency   : Wide_Wide_String    := Default_Currency;
         Fill       : Wide_Wide_Character := Default_Fill;
         Separator  : Wide_Wide_Character := Default_Separator;
         Radix_Mark : Wide_Wide_Character := Default_Radix_Mark);
 
      procedure Put
        (To         : out Wide_Wide_String;
         Item       : Num;
         Pic        : Picture;
         Currency   : Wide_Wide_String    := Default_Currency;
         Fill       : Wide_Wide_Character := Default_Fill;
         Separator  : Wide_Wide_Character := Default_Separator;
         Radix_Mark : Wide_Wide_Character := Default_Radix_Mark);
 
   end Decimal_Output;
 
private
   MAX_PICSIZE      : constant := 50;
   MAX_MONEYSIZE    : constant := 10;
   Invalid_Position : constant := -1;
 
   subtype Pic_Index is Natural range 0 .. MAX_PICSIZE;
 
   type Picture_Record (Length : Pic_Index := 0) is record
      Expanded : String (1 .. Length);
   end record;
 
   type Format_Record is record
      Picture              : Picture_Record;
      --  Read only
 
      Blank_When_Zero      : Boolean;
      --  Read/write
 
      Original_BWZ         : Boolean;
 
      --  The following components get written
 
      Star_Fill            : Boolean := False;
 
      Radix_Position       : Integer := Invalid_Position;
 
      Sign_Position,
      Second_Sign          : Integer := Invalid_Position;
 
      Start_Float,
      End_Float            : Integer := Invalid_Position;
 
      Start_Currency,
      End_Currency         : Integer := Invalid_Position;
 
      Max_Leading_Digits   : Integer := 0;
 
      Max_Trailing_Digits  : Integer := 0;
 
      Max_Currency_Digits  : Integer := 0;
 
      Floater              : Wide_Wide_Character := '!';
      --  Initialized to illegal value
 
   end record;
 
   type Picture is record
      Contents : Format_Record;
   end record;
 
   type Number_Attributes is record
      Negative     : Boolean := False;
 
      Has_Fraction : Boolean := False;
 
      Start_Of_Int,
      End_Of_Int,
      Start_Of_Fraction,
      End_Of_Fraction : Integer := Invalid_Position;    -- invalid value
   end record;
 
   function Parse_Number_String (Str : String) return Number_Attributes;
   --  Assumed format is 'IMAGE or Fixed_IO.Put format (depends on no
   --  trailing blanks...)
 
   procedure Precalculate (Pic : in out Format_Record);
   --  Precalculates fields from the user supplied data
 
   function Format_Number
     (Pic                 : Format_Record;
      Number              : String;
      Currency_Symbol     : Wide_Wide_String;
      Fill_Character      : Wide_Wide_Character;
      Separator_Character : Wide_Wide_Character;
      Radix_Point         : Wide_Wide_Character) return Wide_Wide_String;
   --  Formats number according to Pic
 
   function Expand (Picture : String) return String;
 
end Ada.Wide_Wide_Text_IO.Editing;
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.