OSDN Git Service

* tree.c (free_lang_data_in_one_sizepos): New inline function.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gnat.dg / rep_clause5_pkg.ads
1 package Rep_Clause5_Pkg is
2
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;
7
8     type Func_ID is (No_Func, FUN_SGN, FUN_EXP, FUN_LOG, FUN_LOG10);
9
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
330     );
331
332     type Aux_Kind is (No_Aux, SID_Aux, FID_Aux, LNO_Aux);
333
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;
348
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;
357
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;  
361
362     type Line_Node is
363         record
364             Line :     Token_Line;
365             LNO :      LNumber_Type := 0;
366             Numbered : Boolean := False;
367         end record;
368
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;
372
373     type VString is
374         record
375             Max_Length : Natural := 0;
376             Fixed :      Boolean := False;
377         end record;
378
379     function To_Long(Object : VString; Radix : Natural) return Long_Type;
380
381     function Element (V : String_ID) return String;
382
383 end Rep_Clause5_Pkg;