DocAda(tm) is a productivity tool of KSCE

____ | Up | Next | Back | Forward
About DocAda Light: Preface / Preliminary / Help / TOC / Copyright
DocAda Online at the Ada Home: Complete RM95 / Updates / News

A.10.1 The Package Text_IO

Static Semantics

The library package Text_IO has the following declaration:

   
       with Ada.IO_Exceptions;
       package Ada.Text_IO is

          type File_Type is limited private;

          type File_Mode is (In_File, Out_File, Append_File);

          type Count is range 0 .. implementation-defined;
          subtype Positive_Count is Count range 1 .. Count'Last;
          Unbounded : constant Count := 0; -- line and page length

          subtype Field       is Integer range 0 .. implementation-defined;
          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 : in File_Mode := Out_File;
                            Name : in String    := "";
                            Form : in String    := "");

          procedure Open   (File : in out File_Type;
                            Mode : in File_Mode;
                            Name : in String;
                            Form : in String := "");

          procedure Close  (File : in out File_Type);
          procedure Delete (File : in out File_Type);
          procedure Reset  (File : in out File_Type; Mode : in File_Mode);
          procedure Reset  (File : in out File_Type);

          function  Mode   (File : in File_Type) return File_Mode;
          function  Name   (File : in File_Type) return String;
          function  Form   (File : in File_Type) return String;

          function  Is_Open(File : in File_Type) return Boolean;

          -- Control of default input and output files

          procedure Set_Input (File : in File_Type);
          procedure Set_Output(File : in File_Type);
          procedure Set_Error (File : in File_Type);

          function Standard_Input  return File_Type;
          function Standard_Output return File_Type;
          function Standard_Error  return File_Type;

          function Current_Input   return File_Type;
          function Current_Output  return File_Type;
          function Current_Error   return File_Type;

          type File_Access is access constant File_Type;

          function Standard_Input  return File_Access;
          function Standard_Output return File_Access;
          function Standard_Error  return File_Access;

          function Current_Input   return File_Access;
          function Current_Output  return File_Access;
          function Current_Error   return File_Access;

       --Buffer control
          procedure Flush (File : in out File_Type);
          procedure Flush;

          -- Specification of line and page lengths

          procedure Set_Line_Length(File : in File_Type; To : in Count);
          procedure Set_Line_Length(To   : in Count);

          procedure Set_Page_Length(File : in File_Type; To : in Count);
          procedure Set_Page_Length(To   : in Count);

          function  Line_Length(File : in File_Type) return Count;
          function  Line_Length return Count;

          function  Page_Length(File : in File_Type) return Count;
          function  Page_Length return Count;

          -- Column, Line, and Page Control

          procedure New_Line   (File    : in File_Type;
                                Spacing : in Positive_Count := 1);
          procedure New_Line   (Spacing : in Positive_Count := 1);

          procedure Skip_Line  (File    : in File_Type;
                                Spacing : in Positive_Count := 1);
          procedure Skip_Line  (Spacing : in Positive_Count := 1);

          function  End_Of_Line(File : in File_Type) return Boolean;
          function  End_Of_Line return Boolean;

          procedure New_Page   (File : in File_Type);
          procedure New_Page;

          procedure Skip_Page  (File : in File_Type);
          procedure Skip_Page;

          function  End_Of_Page(File : in File_Type) return Boolean;
          function  End_Of_Page return Boolean;

          function  End_Of_File(File : in File_Type) return Boolean;
          function  End_Of_File return Boolean;

          procedure Set_Col (File : in File_Type; To : in Positive_Count);
          procedure Set_Col (To   : in Positive_Count);

          procedure Set_Line(File : in File_Type; To : in Positive_Count);
          procedure Set_Line(To   : in Positive_Count);

          function Col (File : in File_Type) return Positive_Count;
          function Col  return Positive_Count;

          function Line(File : in File_Type) return Positive_Count;
          function Line return Positive_Count;

          function Page(File : in File_Type) return Positive_Count;
          function Page return Positive_Count;

          -- Character Input-Output

          procedure Get(File : in  File_Type; Item : out Character);
          procedure Get(Item : out Character);

          procedure Put(File : in  File_Type; Item : in Character);
          procedure Put(Item : in  Character);

          procedure Look_Ahead (File        : in  File_Type;
                                Item        : out Character;
                                End_Of_Line : out Boolean);
          procedure Look_Ahead (Item        : out Character;
                                End_Of_Line : out Boolean);

          procedure Get_Immediate(File      : in  File_Type;
                                  Item      : out Character);
          procedure Get_Immediate(Item      : out Character);

          procedure Get_Immediate(File      : in  File_Type;
                                  Item      : out Character;
                                  Available : out Boolean);
          procedure Get_Immediate(Item      : out Character;
                                  Available : out Boolean);

          -- String Input-Output

          procedure Get(File : in  File_Type; Item : out String);
          procedure Get(Item : out String);

          procedure Put(File : in  File_Type; Item : in String);
          procedure Put(Item : in  String);

          procedure Get_Line(File : in  File_Type;
                             Item : out String;
                             Last : out Natural);
          procedure Get_Line(Item : out String; Last : out Natural);

          procedure Put_Line(File : in  File_Type; Item : in String);
          procedure Put_Line(Item : in  String);

       -- Generic packages 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  : in  File_Type;
                           Item  : out Num;
                           Width : in Field := 0);
             procedure Get(Item  : out Num;
                           Width : in  Field := 0);

             procedure Put(File  : in File_Type;
                           Item  : in Num;
                           Width : in Field := Default_Width;
                           Base  : in Number_Base := Default_Base);
             procedure Put(Item  : in Num;
                           Width : in Field := Default_Width;
                           Base  : in Number_Base := Default_Base);
             procedure Get(From : in  String;
                           Item : out Num;
                           Last : out Positive);
             procedure Put(To   : out String;
                           Item : in Num;
                           Base : in Number_Base := Default_Base);

          end Integer_IO;

          generic
             type Num is mod <>;
          package Modular_IO is

             Default_Width : Field := Num'Width;
             Default_Base  : Number_Base := 10;

             procedure Get(File  : in  File_Type;
                           Item  : out Num;
                           Width : in Field := 0);
             procedure Get(Item  : out Num;
                           Width : in  Field := 0);

             procedure Put(File  : in File_Type;
                           Item  : in Num;
                           Width : in Field := Default_Width;
                           Base  : in Number_Base := Default_Base);
             procedure Put(Item  : in Num;
                           Width : in Field := Default_Width;
                           Base  : in Number_Base := Default_Base);
             procedure Get(From : in  String;
                           Item : out Num;
                           Last : out Positive);
             procedure Put(To   : out String;
                           Item : in Num;
                           Base : in Number_Base := Default_Base);

          end Modular_IO;

          -- Generic packages for Input-Output of Real 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  : in  File_Type;
                           Item  : out Num;
                           Width : in  Field := 0);
             procedure Get(Item  : out Num;
                           Width : in  Field := 0);

             procedure Put(File : in File_Type;
                           Item : in Num;
                           Fore : in Field := Default_Fore;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);
             procedure Put(Item : in Num;
                           Fore : in Field := Default_Fore;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);

             procedure Get(From : in String;
                           Item : out Num;
                           Last : out Positive);
             procedure Put(To   : out String;
                           Item : in Num;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);
          end Float_IO;

          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  : in  File_Type;
                           Item  : out Num;
                           Width : in  Field := 0);
             procedure Get(Item  : out Num;
                           Width : in  Field := 0);

             procedure Put(File : in File_Type;
                           Item : in Num;
                           Fore : in Field := Default_Fore;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);
             procedure Put(Item : in Num;
                           Fore : in Field := Default_Fore;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);

             procedure Get(From : in  String;
                           Item : out Num;
                           Last : out Positive);
             procedure Put(To   : out String;
                           Item : in Num;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);
          end Fixed_IO;

          generic
             type Num is delta <> digits <>;
          package Decimal_IO is

             Default_Fore : Field := Num'Fore;
             Default_Aft  : Field := Num'Aft;
             Default_Exp  : Field := 0;

             procedure Get(File  : in  File_Type;
                           Item  : out Num;
                           Width : in  Field := 0);
             procedure Get(Item  : out Num;
                           Width : in  Field := 0);

             procedure Put(File : in File_Type;
                           Item : in Num;
                           Fore : in Field := Default_Fore;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);
             procedure Put(Item : in Num;
                           Fore : in Field := Default_Fore;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);

             procedure Get(From : in  String;
                           Item : out Num;
                           Last : out Positive);
             procedure Put(To   : out String;
                           Item : in Num;
                           Aft  : in Field := Default_Aft;
                           Exp  : in Field := Default_Exp);
          end Decimal_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 : in  File_Type;
                           Item : out Enum);
             procedure Get(Item : out Enum);

             procedure Put(File  : in File_Type;
                           Item  : in Enum;
                           Width : in Field    := Default_Width;
                           Set   : in Type_Set := Default_Setting);
             procedure Put(Item  : in Enum;
                           Width : in Field    := Default_Width;
                           Set   : in Type_Set := Default_Setting);

             procedure Get(From : in  String;
                           Item : out Enum;
                           Last : out Positive);
             procedure Put(To   : out String;
                           Item : in  Enum;
                           Set  : in  Type_Set := Default_Setting);
          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
          ... -- not specified by the language
       end Ada.Text_IO;

About DocAda Light: Preface / Preliminary / Help / TOC / Copyright
DocAda Online at the Ada Home: Complete RM95 / Updates / News
____ | Up | Next | Back | Forward


Copyright © 1994-1997 by Kempe Software Capital Enterprises. All Rights Reserved. For comments on this DocAda(tm) hypertext document, please write to KSCE, at docada@ksce.com