Mercurial > hg > CbC > CbC_gcc
comparison gcc/ada/libgnat/a-sequio.ads @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | |
children | 84e7813d76e9 |
comparison
equal
deleted
inserted
replaced
68:561a7518be6b | 111:04ced10e8804 |
---|---|
1 ------------------------------------------------------------------------------ | |
2 -- -- | |
3 -- GNAT RUN-TIME COMPONENTS -- | |
4 -- -- | |
5 -- A D A . S E Q U E N T I A L _ I O -- | |
6 -- -- | |
7 -- S p e c -- | |
8 -- -- | |
9 -- Copyright (C) 1992-2017, Free Software Foundation, Inc. -- | |
10 -- -- | |
11 -- This specification is derived from the Ada Reference Manual for use with -- | |
12 -- GNAT. The copyright notice above, and the license provisions that follow -- | |
13 -- apply solely to the contents of the part following the private keyword. -- | |
14 -- -- | |
15 -- GNAT is free software; you can redistribute it and/or modify it under -- | |
16 -- terms of the GNU General Public License as published by the Free Soft- -- | |
17 -- ware Foundation; either version 3, or (at your option) any later ver- -- | |
18 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- | |
19 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- | |
20 -- or FITNESS FOR A PARTICULAR PURPOSE. -- | |
21 -- -- | |
22 -- As a special exception under Section 7 of GPL version 3, you are granted -- | |
23 -- additional permissions described in the GCC Runtime Library Exception, -- | |
24 -- version 3.1, as published by the Free Software Foundation. -- | |
25 -- -- | |
26 -- You should have received a copy of the GNU General Public License and -- | |
27 -- a copy of the GCC Runtime Library Exception along with this program; -- | |
28 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- | |
29 -- <http://www.gnu.org/licenses/>. -- | |
30 -- -- | |
31 -- GNAT was originally developed by the GNAT team at New York University. -- | |
32 -- Extensive contributions were provided by Ada Core Technologies Inc. -- | |
33 -- -- | |
34 ------------------------------------------------------------------------------ | |
35 | |
36 with Ada.IO_Exceptions; | |
37 | |
38 with System.Sequential_IO; | |
39 | |
40 generic | |
41 type Element_Type (<>) is private; | |
42 | |
43 package Ada.Sequential_IO is | |
44 | |
45 pragma Compile_Time_Warning | |
46 (Element_Type'Has_Access_Values, | |
47 "Element_Type for Sequential_IO instance has access values"); | |
48 | |
49 pragma Compile_Time_Warning | |
50 (Element_Type'Has_Tagged_Values, | |
51 "Element_Type for Sequential_IO instance has tagged values"); | |
52 | |
53 type File_Type is limited private; | |
54 | |
55 type File_Mode is (In_File, Out_File, Append_File); | |
56 | |
57 -- The following representation clause allows the use of unchecked | |
58 -- conversion for rapid translation between the File_Mode type | |
59 -- used in this package and System.File_IO. | |
60 | |
61 for File_Mode use | |
62 (In_File => 0, -- System.File_IO.File_Mode'Pos (In_File) | |
63 Out_File => 2, -- System.File_IO.File_Mode'Pos (Out_File) | |
64 Append_File => 3); -- System.File_IO.File_Mode'Pos (Append_File) | |
65 | |
66 --------------------- | |
67 -- File management -- | |
68 --------------------- | |
69 | |
70 procedure Create | |
71 (File : in out File_Type; | |
72 Mode : File_Mode := Out_File; | |
73 Name : String := ""; | |
74 Form : String := ""); | |
75 | |
76 procedure Open | |
77 (File : in out File_Type; | |
78 Mode : File_Mode; | |
79 Name : String; | |
80 Form : String := ""); | |
81 | |
82 procedure Close (File : in out File_Type); | |
83 procedure Delete (File : in out File_Type); | |
84 procedure Reset (File : in out File_Type; Mode : File_Mode); | |
85 procedure Reset (File : in out File_Type); | |
86 | |
87 function Mode (File : File_Type) return File_Mode; | |
88 function Name (File : File_Type) return String; | |
89 function Form (File : File_Type) return String; | |
90 | |
91 function Is_Open (File : File_Type) return Boolean; | |
92 | |
93 procedure Flush (File : File_Type); | |
94 | |
95 --------------------------------- | |
96 -- Input and output operations -- | |
97 --------------------------------- | |
98 | |
99 procedure Read (File : File_Type; Item : out Element_Type); | |
100 procedure Write (File : File_Type; Item : Element_Type); | |
101 | |
102 function End_Of_File (File : File_Type) return Boolean; | |
103 | |
104 ---------------- | |
105 -- Exceptions -- | |
106 ---------------- | |
107 | |
108 Status_Error : exception renames IO_Exceptions.Status_Error; | |
109 Mode_Error : exception renames IO_Exceptions.Mode_Error; | |
110 Name_Error : exception renames IO_Exceptions.Name_Error; | |
111 Use_Error : exception renames IO_Exceptions.Use_Error; | |
112 Device_Error : exception renames IO_Exceptions.Device_Error; | |
113 End_Error : exception renames IO_Exceptions.End_Error; | |
114 Data_Error : exception renames IO_Exceptions.Data_Error; | |
115 | |
116 private | |
117 | |
118 -- The following procedures have a File_Type formal of mode IN OUT because | |
119 -- they may close the original file. The Close operation may raise an | |
120 -- exception, but in that case we want any assignment to the formal to | |
121 -- be effective anyway, so it must be passed by reference (or the caller | |
122 -- will be left with a dangling pointer). | |
123 | |
124 pragma Export_Procedure | |
125 (Internal => Close, | |
126 External => "", | |
127 Mechanism => Reference); | |
128 pragma Export_Procedure | |
129 (Internal => Delete, | |
130 External => "", | |
131 Mechanism => Reference); | |
132 pragma Export_Procedure | |
133 (Internal => Reset, | |
134 External => "", | |
135 Parameter_Types => (File_Type), | |
136 Mechanism => Reference); | |
137 pragma Export_Procedure | |
138 (Internal => Reset, | |
139 External => "", | |
140 Parameter_Types => (File_Type, File_Mode), | |
141 Mechanism => (File => Reference)); | |
142 | |
143 type File_Type is new System.Sequential_IO.File_Type; | |
144 | |
145 -- All subprograms are inlined | |
146 | |
147 pragma Inline (Close); | |
148 pragma Inline (Create); | |
149 pragma Inline (Delete); | |
150 pragma Inline (End_Of_File); | |
151 pragma Inline (Form); | |
152 pragma Inline (Is_Open); | |
153 pragma Inline (Mode); | |
154 pragma Inline (Name); | |
155 pragma Inline (Open); | |
156 pragma Inline (Read); | |
157 pragma Inline (Reset); | |
158 pragma Inline (Write); | |
159 | |
160 end Ada.Sequential_IO; |