* snames.ads-tmpl (Name_Ivdep): New pragma-related name.
[official-gcc.git] / gcc / testsuite / gnat.dg / rep_clause5_pkg.ads
blobe3496c4a2b7f8227cfd5c39877086ab4228b48ad
1 package Rep_Clause5_Pkg is
3 type ID_Type is mod 65536;
4 type String_ID is new ID_Type;
5 type LNumber_Type is range 0..99999;
6 subtype Long_Type is Integer;
8 type Func_ID is (No_Func, FUN_SGN, FUN_EXP, FUN_LOG, FUN_LOG10);
10 type Token_Kind is (
11 No_Token,
12 LEX_BINARY,
13 LEX_SECTION,
14 LEX_003,
15 LEX_004,
16 LEX_005,
17 LEX_006,
18 LEX_007,
19 LEX_008,
20 LEX_009,
21 LEX_LF,
22 LEX_011,
23 LEX_012,
24 LEX_013,
25 LEX_014,
26 LEX_015,
27 LEX_016,
28 LEX_017,
29 LEX_018,
30 LEX_019,
31 LEX_020,
32 LEX_021,
33 LEX_022,
34 LEX_023,
35 LEX_024,
36 LEX_025,
37 LEX_026,
38 LEX_027,
39 LEX_028,
40 LEX_029,
41 LEX_030,
42 LEX_031,
43 LEX_032,
44 '!',
45 '"',
46 '#',
47 '$',
48 '%',
49 '&',
50 ''',
51 '(',
52 ')',
53 '*',
54 '+',
55 ',',
56 '-',
57 '.',
58 '/',
59 '0',
60 '1',
61 '2',
62 '3',
63 '4',
64 '5',
65 '6',
66 '7',
67 '8',
68 '9',
69 ':',
70 ';',
71 '<',
72 '=',
73 '>',
74 '?',
75 '@',
76 'A',
77 'B',
78 'C',
79 'D',
80 'E',
81 'F',
82 'G',
83 'H',
84 'I',
85 'J',
86 'K',
87 'L',
88 'M',
89 'N',
90 'O',
91 'P',
92 'Q',
93 'R',
94 'S',
95 'T',
96 'U',
97 'V',
98 'W',
99 'X',
100 'Y',
101 'Z',
102 '[',
103 '\',
104 ']',
105 '^',
106 '_',
107 '`',
108 'a',
109 'b',
110 'c',
111 'd',
112 'e',
113 'f',
114 'g',
115 'h',
116 'i',
117 'j',
118 'k',
119 'l',
120 'm',
121 'n',
122 'o',
123 LEX_SFUN3,
124 LEX_SFUN2,
125 LEX_SFUN1,
126 LEX_SFUNN,
127 LEX_FUN3,
128 LEX_FUN2,
129 LEX_FUN1,
130 LEX_FUNN,
131 'x',
132 'y',
133 'z',
134 '{',
135 '|',
136 '}',
137 '~',
138 LEX_CRTA,
139 LEX_ISNULL,
140 LEX_USING,
141 LEX_HANDLE,
142 LEX_CALLX,
143 LEX_COMPLEX,
144 LEX_FIXED,
145 LEX_ENV,
146 LEX_SPARSE,
147 LEX_SUBROUTINE,
148 LEX_CALL,
149 LEX_BOX,
150 LEX_VLINE,
151 LEX_HLINE,
152 LEX_MAXLENGTH,
153 LEX_DLENGTH,
154 LEX_INPUT,
155 LEX_INITIALIZE,
156 LEX_OUTPUT,
157 LEX_UNLINK,
158 LEX_SEEK,
159 LEX_EXIT,
160 LEX_NOT,
161 LEX_COMMON,
162 LEX_CHAIN,
163 LEX_DEF,
164 LEX_ARITY,
165 LEX_RESUME,
166 LEX_PIC_S,
167 LEX_BG,
168 LEX_FG,
169 LEX_PC,
170 LEX_CRT,
171 LEX_ENUM,
172 LEX_DECLARE,
173 LEX_CURSOR,
174 LEX_DROP,
175 LEX_CURRENT,
176 LEX_ISOLATION,
177 LEX_SET,
178 LEX_TRANSACTION,
179 LEX_COMMIT,
180 LEX_ABORT,
181 LEX_BEGIN,
182 LEX_PREVIOUS,
183 LEX_LAST,
184 LEX_FIRST,
185 LEX_KEY,
186 LEX_START,
187 LEX_REWRITE,
188 LEX_INDEX,
189 LEX_SECONDARY,
190 LEX_PRIMARY,
191 LEX_COLUMN,
192 LEX_TEMP,
193 LEX_TABLE,
194 LEX_CREATE,
195 LEX_HASH,
196 LEX_BTREE,
197 LEX_UPDATE,
198 LEX_ERROR,
199 LEX_ACCEPT,
200 LEX_AVG,
201 LEX_MAX,
202 LEX_MIN,
203 LEX_FIELD,
204 LEX_RESTORE,
205 LEX_END,
206 LEX_STEP,
207 LEX_NEXT,
208 LEX_FOR,
209 LEX_RETURN,
210 LEX_GOSUB,
211 LEX_RANGE,
212 LEX_EXPON,
213 LEX_XOR,
214 LEX_OR,
215 LEX_AND,
216 LEX_SHIFTR,
217 LEX_GE,
218 LEX_NE,
219 LEX_SHIFTL,
220 LEX_LE,
221 LEX_VARYING,
222 LEX_LENGTH,
223 LEX_PRINT,
224 LEX_IF,
225 LEX_GOTO,
226 LEX_ON,
227 LEX_THEN,
228 LEX_DELETE,
229 LEX_TO,
230 LEX_SEQUENCE,
231 LEX_NONUNIQUE,
232 LEX_UNIQUE,
233 LEX_FILE,
234 LEX_CLOSE,
235 LEX_OPEN,
236 LEX_DATABASE,
237 LEX_RECORD,
238 LEX_DATA,
239 LEX_WRITE,
240 LEX_READ,
241 LEX_STOP,
242 LEX_LET,
243 LEX_MOD,
244 LEX_LONG,
245 LEX_DIM,
246 LEX_SHORT,
247 LEX_REM,
248 LEX_SHELL,
249 LEX_TOKEN,
250 LEX_FLOAT,
251 LEX_SIDENT,
252 LEX_INLREM,
253 LEX_ENDLIT,
254 LEX_STRLIT,
255 LEX_IDENT,
256 LEX_LNUMBER,
257 LEX_HEX,
258 LEX_NUMBER,
259 LEX_EOF,
260 LEX_QUIT,
261 LEX_LIST,
262 LEX_REMOVE,
263 LEX_RENUMBER,
264 LEX_CONTINUE,
265 LEX_RUN,
266 LEX_MERGE,
267 LEX_ENTER,
268 LEX_NEW,
269 LEX_RESET,
270 LEX_SYMTAB,
271 LEX_CLS,
272 LEX_EDIT,
273 LEX_SAVE,
274 LEX_RESAVE,
275 LEX_LOAD,
276 LEX_NAME,
277 LEX_LISTP,
278 LEX_SHOW,
279 LEX_STACK,
280 LEX_STATUS,
281 LEX_CACHE,
282 LEX_INSPECT,
283 LEX_STOW,
284 LEX_PKGRUN,
285 LEX_POP,
286 LEX_CHECK,
287 LEX_INSERT,
288 LEX_INTO,
289 LEX_VALUES,
290 LEX_NULL,
291 LEX_WHERE,
292 LEX_FROM,
293 LEX_EXEC,
294 LEX_SELECT,
295 LEX_AS,
296 LEX_ALL,
297 LEX_BY,
298 LEX_CROSS,
299 LEX_DESC,
300 LEX_FULL,
301 LEX_GROUP,
302 LEX_INNER,
303 LEX_JOIN,
304 LEX_LEFT,
305 LEX_LIMIT,
306 LEX_NATURAL,
307 LEX_OFFSET,
308 LEX_ORDER,
309 LEX_OUTER,
310 LEX_RIGHT,
311 LEX_FETCH,
312 LEX_DISTINCT,
313 LEX_DEFAULT,
314 LEX_RETURNING,
315 LEX_LEVEL,
316 LEX_COMMITTED,
317 LEX_SERIALIZABLE,
318 LEX_ONLY,
319 LEX_HOLD,
320 LEX_FORWARD,
321 LEX_WITH,
322 LEX_PRIOR,
323 LEX_RELATIVE,
324 LEX_BACKWARD,
325 LEX_OF,
326 LEX_SCROLL,
327 LEX_NOWAIT,
328 LEX_HAVING,
329 LEX_END_TOKENS
332 type Aux_Kind is (No_Aux, SID_Aux, FID_Aux, LNO_Aux);
334 type Token_Type(Aux : Aux_Kind := No_Aux) is
335 record
336 Token : Token_Kind := No_Token;
337 case Aux is
338 when SID_Aux =>
339 SID : String_ID;
340 when FID_Aux =>
341 FID : Func_ID;
342 when LNO_Aux =>
343 LNO : LNumber_Type;
344 when No_Aux =>
345 null;
346 end case;
347 end record;
349 for Token_Type use
350 record
351 Aux at 0 range 0..2;
352 Token at 0 range 3..12;
353 SID at 0 range 16..31;
354 FID at 0 range 16..31;
355 LNO at 0 range 13..31;
356 end record;
358 type Tokens_Index is range 0..999999;
359 type Token_Array is array(Tokens_Index range <>) of Token_Type;
360 type Token_Line is access all Token_Array;
362 type Line_Node is
363 record
364 Line : Token_Line;
365 LNO : LNumber_Type := 0;
366 Numbered : Boolean := False;
367 end record;
369 type Nodes_Index is range 0..999999;
370 type LNodes_Array is array(Nodes_Index range <>) of Line_Node;
371 type LNodes_Ptr is access all LNodes_Array;
373 type VString is
374 record
375 Max_Length : Natural := 0;
376 Fixed : Boolean := False;
377 end record;
379 function To_Long(Object : VString; Radix : Natural) return Long_Type;
381 function Element (V : String_ID) return String;
383 end Rep_Clause5_Pkg;