annotate gcc/ada/libgnat/s-ststop.ads @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ------------------------------------------------------------------------------
kono
parents:
diff changeset
2 -- --
kono
parents:
diff changeset
3 -- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
kono
parents:
diff changeset
4 -- --
kono
parents:
diff changeset
5 -- S Y S T E M . S T R I N G S . S T R E A M _ O P S --
kono
parents:
diff changeset
6 -- --
kono
parents:
diff changeset
7 -- S p e c --
kono
parents:
diff changeset
8 -- --
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
9 -- Copyright (C) 2009-2018, Free Software Foundation, Inc. --
111
kono
parents:
diff changeset
10 -- --
kono
parents:
diff changeset
11 -- GNAT is free software; you can redistribute it and/or modify it under --
kono
parents:
diff changeset
12 -- terms of the GNU General Public License as published by the Free Soft- --
kono
parents:
diff changeset
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
kono
parents:
diff changeset
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
kono
parents:
diff changeset
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
kono
parents:
diff changeset
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
kono
parents:
diff changeset
17 -- --
kono
parents:
diff changeset
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
kono
parents:
diff changeset
19 -- additional permissions described in the GCC Runtime Library Exception, --
kono
parents:
diff changeset
20 -- version 3.1, as published by the Free Software Foundation. --
kono
parents:
diff changeset
21 -- --
kono
parents:
diff changeset
22 -- You should have received a copy of the GNU General Public License and --
kono
parents:
diff changeset
23 -- a copy of the GCC Runtime Library Exception along with this program; --
kono
parents:
diff changeset
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
kono
parents:
diff changeset
25 -- <http://www.gnu.org/licenses/>. --
kono
parents:
diff changeset
26 -- --
kono
parents:
diff changeset
27 -- GNAT was originally developed by the GNAT team at New York University. --
kono
parents:
diff changeset
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
kono
parents:
diff changeset
29 -- --
kono
parents:
diff changeset
30 ------------------------------------------------------------------------------
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 -- This package provides subprogram implementations of stream attributes for
kono
parents:
diff changeset
33 -- the following types using a "block IO" approach in which the entire data
kono
parents:
diff changeset
34 -- item is written in one operation, instead of writing individual characters.
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 -- Ada.Stream_Element_Array
kono
parents:
diff changeset
37 -- Ada.String
kono
parents:
diff changeset
38 -- Ada.Wide_String
kono
parents:
diff changeset
39 -- Ada.Wide_Wide_String
kono
parents:
diff changeset
40 -- System.Storage_Array
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 -- Note: this routine is in Ada.Strings because historically it handled only
kono
parents:
diff changeset
43 -- the string types. It is not worth moving it at this stage.
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 -- The compiler will generate references to the subprograms in this package
kono
parents:
diff changeset
46 -- when expanding stream attributes for the above mentioned types. Example:
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 -- String'Output (Some_Stream, Some_String);
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 -- will be expanded into:
kono
parents:
diff changeset
51
kono
parents:
diff changeset
52 -- String_Output (Some_Stream, Some_String);
kono
parents:
diff changeset
53 -- or
kono
parents:
diff changeset
54 -- String_Output_Blk_IO (Some_Stream, Some_String);
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 -- String_Output form is used if pragma Restrictions (No_String_Optimziations)
kono
parents:
diff changeset
57 -- is active, which requires element by element operations. The BLK_IO form
kono
parents:
diff changeset
58 -- is used if this restriction is not set, allowing block optimization.
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 -- Note that if System.Stream_Attributes.Block_IO_OK is False, then the BLK_IO
kono
parents:
diff changeset
61 -- form is treated as equivalent to the normal case, so that the optimization
kono
parents:
diff changeset
62 -- is inhibited anyway, regardless of the setting of the restriction. This
kono
parents:
diff changeset
63 -- handles versions of System.Stream_Attributes (in particular the XDR version
kono
parents:
diff changeset
64 -- found in s-stratt-xdr) which do not permit block io optimization.
kono
parents:
diff changeset
65
kono
parents:
diff changeset
66 pragma Compiler_Unit_Warning;
kono
parents:
diff changeset
67
kono
parents:
diff changeset
68 with Ada.Streams;
kono
parents:
diff changeset
69
kono
parents:
diff changeset
70 with System.Storage_Elements;
kono
parents:
diff changeset
71
kono
parents:
diff changeset
72 package System.Strings.Stream_Ops is
kono
parents:
diff changeset
73
kono
parents:
diff changeset
74 -------------------------------------
kono
parents:
diff changeset
75 -- Storage_Array stream operations --
kono
parents:
diff changeset
76 -------------------------------------
kono
parents:
diff changeset
77
kono
parents:
diff changeset
78 function Storage_Array_Input
kono
parents:
diff changeset
79 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
80 return System.Storage_Elements.Storage_Array;
kono
parents:
diff changeset
81
kono
parents:
diff changeset
82 function Storage_Array_Input_Blk_IO
kono
parents:
diff changeset
83 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
84 return System.Storage_Elements.Storage_Array;
kono
parents:
diff changeset
85
kono
parents:
diff changeset
86 procedure Storage_Array_Output
kono
parents:
diff changeset
87 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
88 Item : System.Storage_Elements.Storage_Array);
kono
parents:
diff changeset
89
kono
parents:
diff changeset
90 procedure Storage_Array_Output_Blk_IO
kono
parents:
diff changeset
91 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
92 Item : System.Storage_Elements.Storage_Array);
kono
parents:
diff changeset
93
kono
parents:
diff changeset
94 procedure Storage_Array_Read
kono
parents:
diff changeset
95 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
96 Item : out System.Storage_Elements.Storage_Array);
kono
parents:
diff changeset
97
kono
parents:
diff changeset
98 procedure Storage_Array_Read_Blk_IO
kono
parents:
diff changeset
99 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
100 Item : out System.Storage_Elements.Storage_Array);
kono
parents:
diff changeset
101
kono
parents:
diff changeset
102 procedure Storage_Array_Write
kono
parents:
diff changeset
103 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
104 Item : System.Storage_Elements.Storage_Array);
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 procedure Storage_Array_Write_Blk_IO
kono
parents:
diff changeset
107 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
108 Item : System.Storage_Elements.Storage_Array);
kono
parents:
diff changeset
109
kono
parents:
diff changeset
110 --------------------------------------------
kono
parents:
diff changeset
111 -- Stream_Element_Array stream operations --
kono
parents:
diff changeset
112 --------------------------------------------
kono
parents:
diff changeset
113
kono
parents:
diff changeset
114 function Stream_Element_Array_Input
kono
parents:
diff changeset
115 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
116 return Ada.Streams.Stream_Element_Array;
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 function Stream_Element_Array_Input_Blk_IO
kono
parents:
diff changeset
119 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
120 return Ada.Streams.Stream_Element_Array;
kono
parents:
diff changeset
121
kono
parents:
diff changeset
122 procedure Stream_Element_Array_Output
kono
parents:
diff changeset
123 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
124 Item : Ada.Streams.Stream_Element_Array);
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 procedure Stream_Element_Array_Output_Blk_IO
kono
parents:
diff changeset
127 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
128 Item : Ada.Streams.Stream_Element_Array);
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 procedure Stream_Element_Array_Read
kono
parents:
diff changeset
131 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
132 Item : out Ada.Streams.Stream_Element_Array);
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 procedure Stream_Element_Array_Read_Blk_IO
kono
parents:
diff changeset
135 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
136 Item : out Ada.Streams.Stream_Element_Array);
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 procedure Stream_Element_Array_Write
kono
parents:
diff changeset
139 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
140 Item : Ada.Streams.Stream_Element_Array);
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 procedure Stream_Element_Array_Write_Blk_IO
kono
parents:
diff changeset
143 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
144 Item : Ada.Streams.Stream_Element_Array);
kono
parents:
diff changeset
145
kono
parents:
diff changeset
146 ------------------------------
kono
parents:
diff changeset
147 -- String stream operations --
kono
parents:
diff changeset
148 ------------------------------
kono
parents:
diff changeset
149
kono
parents:
diff changeset
150 function String_Input
kono
parents:
diff changeset
151 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
152 return String;
kono
parents:
diff changeset
153
kono
parents:
diff changeset
154 function String_Input_Blk_IO
kono
parents:
diff changeset
155 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
156 return String;
kono
parents:
diff changeset
157
kono
parents:
diff changeset
158 function String_Input_Tag
kono
parents:
diff changeset
159 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
160 return String;
kono
parents:
diff changeset
161 -- Same as String_Input_Blk_IO, except raises an exception for overly long
kono
parents:
diff changeset
162 -- Strings. See expansion of Attribute_Input in Exp_Attr for details.
kono
parents:
diff changeset
163
kono
parents:
diff changeset
164 procedure String_Output
kono
parents:
diff changeset
165 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
166 Item : String);
kono
parents:
diff changeset
167
kono
parents:
diff changeset
168 procedure String_Output_Blk_IO
kono
parents:
diff changeset
169 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
170 Item : String);
kono
parents:
diff changeset
171
kono
parents:
diff changeset
172 procedure String_Read
kono
parents:
diff changeset
173 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
174 Item : out String);
kono
parents:
diff changeset
175
kono
parents:
diff changeset
176 procedure String_Read_Blk_IO
kono
parents:
diff changeset
177 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
178 Item : out String);
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 procedure String_Write
kono
parents:
diff changeset
181 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
182 Item : String);
kono
parents:
diff changeset
183
kono
parents:
diff changeset
184 procedure String_Write_Blk_IO
kono
parents:
diff changeset
185 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
186 Item : String);
kono
parents:
diff changeset
187
kono
parents:
diff changeset
188 -----------------------------------
kono
parents:
diff changeset
189 -- Wide_String stream operations --
kono
parents:
diff changeset
190 -----------------------------------
kono
parents:
diff changeset
191
kono
parents:
diff changeset
192 function Wide_String_Input
kono
parents:
diff changeset
193 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
194 return Wide_String;
kono
parents:
diff changeset
195
kono
parents:
diff changeset
196 function Wide_String_Input_Blk_IO
kono
parents:
diff changeset
197 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
198 return Wide_String;
kono
parents:
diff changeset
199
kono
parents:
diff changeset
200 procedure Wide_String_Output
kono
parents:
diff changeset
201 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
202 Item : Wide_String);
kono
parents:
diff changeset
203
kono
parents:
diff changeset
204 procedure Wide_String_Output_Blk_IO
kono
parents:
diff changeset
205 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
206 Item : Wide_String);
kono
parents:
diff changeset
207
kono
parents:
diff changeset
208 procedure Wide_String_Read
kono
parents:
diff changeset
209 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
210 Item : out Wide_String);
kono
parents:
diff changeset
211
kono
parents:
diff changeset
212 procedure Wide_String_Read_Blk_IO
kono
parents:
diff changeset
213 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
214 Item : out Wide_String);
kono
parents:
diff changeset
215
kono
parents:
diff changeset
216 procedure Wide_String_Write
kono
parents:
diff changeset
217 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
218 Item : Wide_String);
kono
parents:
diff changeset
219
kono
parents:
diff changeset
220 procedure Wide_String_Write_Blk_IO
kono
parents:
diff changeset
221 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
222 Item : Wide_String);
kono
parents:
diff changeset
223
kono
parents:
diff changeset
224 ----------------------------------------
kono
parents:
diff changeset
225 -- Wide_Wide_String stream operations --
kono
parents:
diff changeset
226 ----------------------------------------
kono
parents:
diff changeset
227
kono
parents:
diff changeset
228 function Wide_Wide_String_Input
kono
parents:
diff changeset
229 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
230 return Wide_Wide_String;
kono
parents:
diff changeset
231
kono
parents:
diff changeset
232 function Wide_Wide_String_Input_Blk_IO
kono
parents:
diff changeset
233 (Strm : access Ada.Streams.Root_Stream_Type'Class)
kono
parents:
diff changeset
234 return Wide_Wide_String;
kono
parents:
diff changeset
235
kono
parents:
diff changeset
236 procedure Wide_Wide_String_Output
kono
parents:
diff changeset
237 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
238 Item : Wide_Wide_String);
kono
parents:
diff changeset
239
kono
parents:
diff changeset
240 procedure Wide_Wide_String_Output_Blk_IO
kono
parents:
diff changeset
241 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
242 Item : Wide_Wide_String);
kono
parents:
diff changeset
243
kono
parents:
diff changeset
244 procedure Wide_Wide_String_Read
kono
parents:
diff changeset
245 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
246 Item : out Wide_Wide_String);
kono
parents:
diff changeset
247
kono
parents:
diff changeset
248 procedure Wide_Wide_String_Read_Blk_IO
kono
parents:
diff changeset
249 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
250 Item : out Wide_Wide_String);
kono
parents:
diff changeset
251
kono
parents:
diff changeset
252 procedure Wide_Wide_String_Write
kono
parents:
diff changeset
253 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
254 Item : Wide_Wide_String);
kono
parents:
diff changeset
255
kono
parents:
diff changeset
256 procedure Wide_Wide_String_Write_Blk_IO
kono
parents:
diff changeset
257 (Strm : access Ada.Streams.Root_Stream_Type'Class;
kono
parents:
diff changeset
258 Item : Wide_Wide_String);
kono
parents:
diff changeset
259
kono
parents:
diff changeset
260 end System.Strings.Stream_Ops;