The Package Text_IO
Author: JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor

Contents Index Search Previous Next

# A.10.1 The Package Text_IO

#### Static Semantics

1
The library package Text_IO has the following declaration:
2
`with Ada.IO_Exceptions;
package Ada.Text_IO is`
3
`type File_Type is limited private;`
4
`type File_Mode is (In_File, Out_File, Append_File);`
5
`type Count is range 0 .. implementation-defined;
subtype Positive_Count is Count range 1 .. Count'Last;
Unbounded : constant Count := 0; -- line and page length`
6
`subtype Field is Integer range 0 .. implementation-defined;
subtype Number_Base is Integer range 2 .. 16;`
7
`type Type_Set is (Lower_Case, Upper_Case);`
8
`-- File Management`
9
`procedure Create (File : in out File_Type;
Mode : in File_Mode := Out_File;
Name : in String := "";
Form : in String := "");`
10
`procedure Open (File : in out File_Type;
Mode : in File_Mode;
Name : in String;
Form : in String := "");`
11
`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);`
12
`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;`
13
`function Is_Open(File : in File_Type) return Boolean;`
14
`-- Control of default input and output files`
15
`procedure Set_Input (File : in File_Type);
procedure Set_Output(File : in File_Type);
procedure Set_Error (File : in File_Type);`
16
`function Standard_Input return File_Type;
function Standard_Output return File_Type;
function Standard_Error return File_Type;`
17
`function Current_Input return File_Type;
function Current_Output return File_Type;
function Current_Error return File_Type;`
18
`type File_Access is access constant File_Type;`
19
`function Standard_Input return File_Access;
function Standard_Output return File_Access;
function Standard_Error return File_Access;`
20
`function Current_Input return File_Access;
function Current_Output return File_Access;
function Current_Error return File_Access;`
21/1
`--Buffer control
procedure Flush (File : in File_Type);
procedure Flush;`
22
`-- Specification of line and page lengths`
23
`procedure Set_Line_Length(File : in File_Type; To : in Count);
procedure Set_Line_Length(To : in Count);`
24
`procedure Set_Page_Length(File : in File_Type; To : in Count);
procedure Set_Page_Length(To : in Count);`
25
`function Line_Length(File : in File_Type) return Count;
function Line_Length return Count;`
26
`function Page_Length(File : in File_Type) return Count;
function Page_Length return Count;`
27
`-- Column, Line, and Page Control`
28
`procedure New_Line (File : in File_Type;
Spacing : in Positive_Count := 1);
procedure New_Line (Spacing : in Positive_Count := 1);`
29
`procedure Skip_Line (File : in File_Type;
Spacing : in Positive_Count := 1);
procedure Skip_Line (Spacing : in Positive_Count := 1);`
30
`function End_Of_Line(File : in File_Type) return Boolean;
function End_Of_Line return Boolean;`
31
`procedure New_Page (File : in File_Type);
procedure New_Page;`
32
`procedure Skip_Page (File : in File_Type);
procedure Skip_Page;`
33
`function End_Of_Page(File : in File_Type) return Boolean;
function End_Of_Page return Boolean;`
34
`function End_Of_File(File : in File_Type) return Boolean;
function End_Of_File return Boolean;`
35
`procedure Set_Col (File : in File_Type; To : in Positive_Count);
procedure Set_Col (To : in Positive_Count);`
36
`procedure Set_Line(File : in File_Type; To : in Positive_Count);
procedure Set_Line(To : in Positive_Count);`
37
`function Col (File : in File_Type) return Positive_Count;
function Col return Positive_Count;`
38
`function Line(File : in File_Type) return Positive_Count;
function Line return Positive_Count;`
39
`function Page(File : in File_Type) return Positive_Count;
function Page return Positive_Count;`
40
`-- Character Input-Output`
41
`procedure Get(File : in File_Type; Item : out Character);
procedure Get(Item : out Character);`
42
`procedure Put(File : in File_Type; Item : in Character);
procedure Put(Item : in Character);`
43
`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);`
44
`procedure Get_Immediate(File : in File_Type;
Item : out Character);
procedure Get_Immediate(Item : out Character);`
45
`procedure Get_Immediate(File : in File_Type;
Item : out Character;
Available : out Boolean);
procedure Get_Immediate(Item : out Character;
Available : out Boolean);`
46
`-- String Input-Output`
47
`procedure Get(File : in File_Type; Item : out String);
procedure Get(Item : out String);`
48
`procedure Put(File : in File_Type; Item : in String);
procedure Put(Item : in String);`
49
`procedure Get_Line(File : in File_Type;
Item : out String;
Last : out Natural);
procedure Get_Line(Item : out String; Last : out Natural);`
50
`procedure Put_Line(File : in File_Type; Item : in String);
procedure Put_Line(Item : in String);`
51
`-- Generic packages for Input-Output of Integer Types`
52
`generic
type Num is range <>;
package Integer_IO is`
53
`Default_Width : Field := Num'Width;
Default_Base : Number_Base := 10;`
54
`procedure Get(File : in File_Type;
Item : out Num;
Width : in Field := 0);
procedure Get(Item : out Num;
Width : in Field := 0);`
55
`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);`
56
`end Integer_IO;`
57
`generic
type Num is mod <>;
package Modular_IO is`
58
`Default_Width : Field := Num'Width;
Default_Base : Number_Base := 10;`
59
`procedure Get(File : in File_Type;
Item : out Num;
Width : in Field := 0);
procedure Get(Item : out Num;
Width : in Field := 0);`
60
`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);`
61
`end Modular_IO;`
62
`-- Generic packages for Input-Output of Real Types`
63
`generic
type Num is digits <>;
package Float_IO is`
64
`Default_Fore : Field := 2;
Default_Aft : Field := Num'Digits-1;
Default_Exp : Field := 3;`
65
`procedure Get(File : in File_Type;
Item : out Num;
Width : in Field := 0);
procedure Get(Item : out Num;
Width : in Field := 0);`
66
`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);`
67
`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;`
68
`generic
type Num is delta <>;
package Fixed_IO is`
69
`Default_Fore : Field := Num'Fore;
Default_Aft : Field := Num'Aft;
Default_Exp : Field := 0;`
70
`procedure Get(File : in File_Type;
Item : out Num;
Width : in Field := 0);
procedure Get(Item : out Num;
Width : in Field := 0);`
71
`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);`
72
`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;`
73
`generic
type Num is delta <> digits <>;
package Decimal_IO is`
74
`Default_Fore : Field := Num'Fore;
Default_Aft : Field := Num'Aft;
Default_Exp : Field := 0;`
75
`procedure Get(File : in File_Type;
Item : out Num;
Width : in Field := 0);
procedure Get(Item : out Num;
Width : in Field := 0);`
76
`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);`
77
`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;`
78
`-- Generic package for Input-Output of Enumeration Types`
79
`generic
type Enum is (<>);
package Enumeration_IO is`
80
`Default_Width : Field := 0;
Default_Setting : Type_Set := Upper_Case;`
81
`procedure Get(File : in File_Type;
Item : out Enum);
procedure Get(Item : out Enum);`
82
`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);`
83
`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;`
84
`-- Exceptions`
85
`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;`

Contents Index Search Previous Next Legal