| 
 | 
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes | 
 
This is an automatic "excavation" of a thematic subset of
 See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software.  | 
top - metrics - downloadIndex: T V
    Length: 12261 (0x2fe5)
    Types: TextFile
    Names: »V«
└─⟦afbc8121e⟧ Bits:30000532 8mm tape, Rational 1000, MC68020_OS2000 7_2_2
    └─⟦77aa8350c⟧ »DATA« 
        └─⟦f794ecd1d⟧ 
            └─⟦4c85d69e2⟧ 
                └─⟦this⟧ 
-- This package is identical to that in the Reference Manual for the Ada
-- Programming Language, section 14.3.10, with the following exceptions:
--
-- 1)  Upper bound of the type Count is defined.
-- 2)  Upper bound of the type Field is defined.
-- 3)  Private parts added to include the implementation of the
--     limited private type File_Type, and pragmas to suppress
--     (guaranteed) unnecessary elaboration checks.
--
with Io_Exceptions;
pragma Elaborate (Io_Exceptions);
package Text_Io is
    type File_Type is limited private;
    type File_Mode is (In_File, Out_File);
    type    Count          is range 0 .. 1_000_000_000;
    subtype Positive_Count is Count range 1 .. Count'Last;
    Unbounded : constant Count := 0;  -- line and page length
    subtype Field       is Integer range 0 .. Integer'Last;
    subtype Number_Base is Integer range 2 .. 16;
    type Type_Set is (Lower_Case, Upper_Case);
    -- File Management
    procedure Create (File : in out File_Type;
                      Mode :        File_Mode := Out_File;
                      Name :        String    := "";
                      Form :        String    := "");
    procedure Open (File : in out File_Type;
                    Mode :        File_Mode := Out_File;
                    Name :        String;
                    Form :        String    := "");
    procedure Close  (File : in out File_Type);
    procedure Delete (File : in out File_Type);
    procedure Reset  (File : in out File_Type; Mode : File_Mode);
    procedure Reset  (File : in out File_Type);
    function Mode (File : File_Type) return File_Mode;
    function Name (File : File_Type) return String;
    function Form (File : File_Type) return String;
    function Is_Open (File : File_Type) return Boolean;
    -- Control of default input and output files
    procedure Set_Input  (File : File_Type);
    procedure Set_Output (File : File_Type);
    function Standard_Input  return File_Type;
    function Standard_Output return File_Type;
    function Current_Input  return File_Type;
    function Current_Output return File_Type;
    -- Specification of line and page lengths
    procedure Set_Line_Length (File : File_Type; To : Count);
    procedure Set_Line_Length (To : Count);
    procedure Set_Page_Length (File : File_Type; To : Count);
    procedure Set_Page_Length (To : Count);
    function Line_Length (File : File_Type) return Count;
    function Line_Length                    return Count;
    function Page_Length (File : File_Type) return Count;
    function Page_Length                    return Count;
    -- Column, Line and Page Control
    procedure New_Line (File : File_Type; Spacing : Positive_Count := 1);
    procedure New_Line (Spacing : Positive_Count := 1);
    procedure Skip_Line (File : File_Type; Spacing : Positive_Count := 1);
    procedure Skip_Line (Spacing : Positive_Count := 1);
    function End_Of_Line (File : File_Type) return Boolean;
    function End_Of_Line                    return Boolean;
    procedure New_Page (File : File_Type);
    procedure New_Page;
    procedure Skip_Page (File : File_Type);
    procedure Skip_Page;
    function End_Of_Page (File : File_Type) return Boolean;
    function End_Of_Page                    return Boolean;
    function End_Of_File (File : File_Type) return Boolean;
    function End_Of_File                    return Boolean;
    procedure Set_Col (File : File_Type; To : Positive_Count);
    procedure Set_Col (To : Positive_Count);
    procedure Set_Line (File : File_Type; To : Positive_Count);
    procedure Set_Line (To : Positive_Count);
    function Col (File : File_Type) return Positive_Count;
    function Col                    return Positive_Count;
    function Line (File : File_Type) return Positive_Count;
    function Line                    return Positive_Count;
    function Page (File : File_Type) return Positive_Count;
    function Page                    return Positive_Count;
    -- Character Input-Output
    procedure Get (File : File_Type; Item : out Character);
    procedure Get (Item : out Character);
    procedure Put (File : File_Type; Item : Character);
    procedure Put (Item : Character);
    -- String Input-Output
    procedure Get (File : File_Type; Item : out String);
    procedure Get (Item : out String);
    procedure Put (File : File_Type; Item : String);
    procedure Put (Item : String);
    procedure Get_Line
                 (File : File_Type; Item : out String; Last : out Natural);
    procedure Get_Line (Item : out String; Last : out Natural);
    procedure Put_Line (File : File_Type; Item : String);
    procedure Put_Line (Item : String);
    -- Generic package for Input-Output of Integer Types
    generic
        type Num is range <>;
    package Integer_Io is
        Default_Width : Field       := Num'Width;
        Default_Base  : Number_Base := 10;
        procedure Get (File : File_Type; Item : out Num; Width : Field := 0);
        procedure Get (Item : out Num; Width : Field := 0);
        procedure Put (File  : File_Type;
                       Item  : Num;
                       Width : Field       := Default_Width;
                       Base  : Number_Base := Default_Base);
        procedure Put (Item  : Num;
                       Width : Field       := Default_Width;
                       Base  : Number_Base := Default_Base);
        procedure Get (From : String; Item : out Num; Last : out Positive);
        procedure Put (To   : out String;
                       Item :     Num;
                       Base :     Number_Base := Default_Base);
    private
        pragma Suppress (Elaboration_Check, On => Get);
        pragma Suppress (Elaboration_Check, On => Put);
    end Integer_Io;
    -- Generic package for Input-Output of Floating Point Types
    generic
        type Num is digits <>;
    package Float_Io is
        Default_Fore : Field := 2;
        Default_Aft  : Field := Num'Digits - 1;
        Default_Exp  : Field := 3;
        procedure Get (File : File_Type; Item : out Num; Width : Field := 0);
        procedure Get (Item : out Num; Width : Field := 0);
        procedure Put (File : File_Type;
                       Item : Num;
                       Fore : Field := Default_Fore;
                       Aft  : Field := Default_Aft;
                       Exp  : Field := Default_Exp);
        procedure Put (Item : Num;
                       Fore : Field := Default_Fore;
                       Aft  : Field := Default_Aft;
                       Exp  : Field := Default_Exp);
        procedure Get (From : String; Item : out Num; Last : out Positive);
        procedure Put (To   : out String;
                       Item :     Num;
                       Aft  :     Field := Default_Aft;
                       Exp  :     Field := Default_Exp);
    private
        pragma Suppress (Elaboration_Check, On => Get);
        pragma Suppress (Elaboration_Check, On => Put);
    end Float_Io;
    -- Generic package for Input-Output of Fixed Point Types
    generic
        type Num is delta <>;
    package Fixed_Io is
        Default_Fore : Field := Num'Fore;
        Default_Aft  : Field := Num'Aft;
        Default_Exp  : Field := 0;
        procedure Get (File : File_Type; Item : out Num; Width : Field := 0);
        procedure Get (Item : out Num; Width : Field := 0);
        procedure Put (File : File_Type;
                       Item : Num;
                       Fore : Field := Default_Fore;
                       Aft  : Field := Default_Aft;
                       Exp  : Field := Default_Exp);
        procedure Put (Item : Num;
                       Fore : Field := Default_Fore;
                       Aft  : Field := Default_Aft;
                       Exp  : Field := Default_Exp);
        procedure Get (From : String; Item : out Num; Last : out Positive);
        procedure Put (To   : out String;
                       Item :     Num;
                       Aft  :     Field := Default_Aft;
                       Exp  :     Field := Default_Exp);
    private
        pragma Suppress (Elaboration_Check, On => Get);
        pragma Suppress (Elaboration_Check, On => Put);
    end Fixed_Io;
    -- Generic package for Input-Output of Enumeration Types
    generic
        type Enum is (<>);
    package Enumeration_Io is
        Default_Width   : Field    := 0;
        Default_Setting : Type_Set := Upper_Case;
        procedure Get (File : File_Type; Item : out Enum);
        procedure Get (Item : out Enum);
        procedure Put (File  : File_Type;
                       Item  : Enum;
                       Width : Field    := Default_Width;
                       Set   : Type_Set := Default_Setting);
        procedure Put (Item  : Enum;
                       Width : Field    := Default_Width;
                       Set   : Type_Set := Default_Setting);
        procedure Get (From : String; Item : out Enum; Last : out Positive);
        procedure Put (To   : out String;
                       Item :     Enum;
                       Set  :     Type_Set := Default_Setting);
    private
        pragma Suppress (Elaboration_Check, On => Get);
        pragma Suppress (Elaboration_Check, On => Put);
    end Enumeration_Io;
    -- Exceptions
    Status_Error : exception renames Io_Exceptions.Status_Error;
    Mode_Error   : exception renames Io_Exceptions.Mode_Error;
    Name_Error   : exception renames Io_Exceptions.Name_Error;
    Use_Error    : exception renames Io_Exceptions.Use_Error;
    Device_Error : exception renames Io_Exceptions.Device_Error;
    End_Error    : exception renames Io_Exceptions.End_Error;
    Data_Error   : exception renames Io_Exceptions.Data_Error;
    Layout_Error : exception renames Io_Exceptions.Layout_Error;
private
    -- In order to have the spec of Text_Io not be compilation dependent
    -- on any non-LRM packages, File_Type is declared as a dummy access.
    -- Unchecked_Conversion is used in the body of Text_Io to convert to
    -- the actual file type;
    type File_Type is access Integer;
    -- suppress creation of a collection for File_Type
    for File_Type'Storage_Size use 0;
    pragma Suppress (Elaboration_Check, On => Create);
    pragma Suppress (Elaboration_Check, On => Open);
    pragma Suppress (Elaboration_Check, On => Close);
    pragma Suppress (Elaboration_Check, On => Delete);
    pragma Suppress (Elaboration_Check, On => Reset);
    pragma Suppress (Elaboration_Check, On => Mode);
    pragma Suppress (Elaboration_Check, On => Name);
    pragma Suppress (Elaboration_Check, On => Form);
    pragma Suppress (Elaboration_Check, On => Is_Open);
    pragma Suppress (Elaboration_Check, On => Set_Input);
    pragma Suppress (Elaboration_Check, On => Set_Output);
    pragma Suppress (Elaboration_Check, On => Standard_Input);
    pragma Suppress (Elaboration_Check, On => Standard_Output);
    pragma Suppress (Elaboration_Check, On => Current_Input);
    pragma Suppress (Elaboration_Check, On => Current_Output);
    pragma Suppress (Elaboration_Check, On => Set_Line_Length);
    pragma Suppress (Elaboration_Check, On => Set_Page_Length);
    pragma Suppress (Elaboration_Check, On => Line_Length);
    pragma Suppress (Elaboration_Check, On => Page_Length);
    pragma Suppress (Elaboration_Check, On => New_Line);
    pragma Suppress (Elaboration_Check, On => Skip_Line);
    pragma Suppress (Elaboration_Check, On => End_Of_Line);
    pragma Suppress (Elaboration_Check, On => New_Page);
    pragma Suppress (Elaboration_Check, On => Skip_Page);
    pragma Suppress (Elaboration_Check, On => End_Of_Page);
    pragma Suppress (Elaboration_Check, On => End_Of_File);
    pragma Suppress (Elaboration_Check, On => Set_Col);
    pragma Suppress (Elaboration_Check, On => Set_Line);
    pragma Suppress (Elaboration_Check, On => Col);
    pragma Suppress (Elaboration_Check, On => Line);
    pragma Suppress (Elaboration_Check, On => Page);
    pragma Suppress (Elaboration_Check, On => Get);
    pragma Suppress (Elaboration_Check, On => Put);
    pragma Suppress (Elaboration_Check, On => Get_Line);
    pragma Suppress (Elaboration_Check, On => Put_Line);
end Text_Io;