summaryrefslogtreecommitdiff
path: root/ortho/agcc/agcc-trees.ads.in
blob: 5eb2d584486a78a4c88582b5cb21d33458cbebc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
--  Ada bindings for GCC internals. -*- Ada -*-
--  Copyright (C) 2002, 2003, 2004, 2005 Tristan Gingold
--
--  GHDL is free software; you can redistribute it and/or modify it under
--  the terms of the GNU General Public License as published by the Free
--  Software Foundation; either version 2, or (at your option) any later
--  version.
--
--  GHDL is distributed in the hope that it will be useful, but WITHOUT ANY
--  WARRANTY; without even the implied warranty of MERCHANTABILITY or
--  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
--  for more details.
--
--  You should have received a copy of the GNU General Public License
--  along with GCC; see the file COPYING.  If not, write to the Free
--  Software Foundation, 59 Temple Place - Suite 330, Boston, MA
--  02111-1307, USA.

-- This file is preprocessed by gen_tree to create agcc-trees.ads
-- gen_tree adds enumerations from GCC C files.

with System; use System;
with Agcc.Hwint; use Agcc.Hwint;
with Agcc.Real; use Agcc.Real;
with Agcc.Machmode; use Agcc.Machmode;

package Agcc.Trees is
   --pragma No_Elaboration_Code (Agcc.Trees);

   type Tree is new System.Address;

   NULL_TREE : constant Tree;

   type Tree_Code is
     (
@tree_code
     );
   pragma Convention (C, Tree_Code);

   type Built_In_Class is
     (NOT_BUILT_IN, BUILT_IN_FRONTEND, BUILT_IN_MD, BUILT_IN_NORMAL);
   pragma Convention (C, Built_In_Class);

   type Built_In_Function is
     (
@built_in_function
     );
   pragma Convention (C, Built_In_Function);

   type Tree_Index is
     (
@tree_index
     );

   type Type_Qual_Type is new Integer;
@type_qual

   type Global_Trees_Array is array (Tree_Index) of Tree;
   pragma Convention (C, Global_Trees_Array);
   Global_Trees : Global_Trees_Array;
   pragma Import (C, Global_Trees);

   Error_Mark_Node : Tree renames Global_Trees (TI_ERROR_MARK);
   Void_Type_Node : Tree renames Global_Trees (TI_VOID_TYPE);
   Ptr_Type_Node : Tree renames Global_Trees (TI_PTR_TYPE);
   Const_Ptr_Type_Node : Tree renames Global_Trees (TI_CONST_PTR_TYPE);
   Integer_Zero_Node : Tree renames Global_Trees (TI_INTEGER_ZERO);
   Integer_One_Node : Tree renames Global_Trees (TI_INTEGER_ONE);
   Size_Zero_Node : Tree renames Global_Trees (TI_SIZE_ZERO);

   type Size_Type_Kind is
     (
@size_type_kind
      );

   type Sizetype_Tab_Array is array (Size_Type_Kind) of Tree;
   pragma Convention (C, Sizetype_Tab_Array);
   Sizetype_Tab : Sizetype_Tab_Array;
   pragma Import (C, Sizetype_Tab);

   Bitsizetype : Tree renames Sizetype_Tab (TK_BITSIZETYPE);
   Sizetype : Tree renames Sizetype_Tab (TK_SIZETYPE);

   type Integer_Types_Kind is
     (
@integer_types
      );

   type Integer_Types_Array is array (Integer_Types_Kind) of Tree;
   pragma Convention (C, Integer_Types_Array);
   Integer_Types : Integer_Types_Array;
   pragma Import (C, Integer_Types);

   Integer_Type_Node : Tree renames Integer_Types (itk_int);
   Unsigned_Type_Node : Tree renames Integer_Types (itk_unsigned_int);
   Char_Type_Node : Tree renames Integer_Types (itk_char);

   function Build (Code: Tree_Code; T: Tree; O0, O1: Tree) return Tree;
   function Build (Code: Tree_Code; T: Tree; O0, O1, O2: Tree) return Tree;
   function Build1 (Code: Tree_Code; T: Tree; O: Tree) return Tree;
   function Build_Constructor (T : Tree; V : Tree) return Tree;
   function Build_Block (Vars : Tree;
                         Tags : Tree;
                         Subblocks : Tree;
                         Supercontext : Tree;
                         Chain : Tree)
     return Tree;
   function Build_Decl (Code : Tree_Code; T1 : Tree; T2: Tree) return Tree;
   function Build_Int_2 (Low, Hi: HOST_WIDE_INT) return Tree;
   function Build_Int_2_Wide (Low, Hi: HOST_WIDE_INT) return Tree;
   function Build_Real (Rtype : Tree; D : REAL_VALUE_TYPE) return Tree;
   function Build_Function_Type (Value_Type : Tree; Arg_Type : Tree)
     return Tree;
   function Build_Pointer_Type (Atype : Tree) return Tree;
   function Get_Identifier (Str : System.Address) return Tree;
   function Build_String (Len : Integer; Str : System.Address) return Tree;
   function Build_Index_Type (Max : Tree) return Tree;
   function Build_Range_Type (Basetype : Tree; Low : Tree; High : Tree)
     return Tree;
   function Build_Array_Type (El_Type : Tree; Domain : Tree) return Tree;
   function Make_Node (Code : Tree_Code) return Tree;
   function Build_Qualified_Type (Atype : Tree; Qual : Type_Qual_Type)
     return Tree;

   function Build_Save_Expr (Expr : Tree) return Tree;

   function Make_Signed_Type (Precision : Natural) return Tree;
   function Make_Unsigned_Type (Precision : Natural) return Tree;
   procedure Initialize_Sizetypes;
   procedure Set_Sizetype (Atype : Tree);

   function Host_Integerp (T : Tree; Pos : Integer) return Integer;

   function Chainon (Op1, Op2 : Tree) return Tree;
   function Listify (Node : Tree) return Tree;
   function Tree_Cons (Purpose : Tree; Value : Tree; Chain : Tree)
     return Tree;
   function Nreverse (Chain : Tree) return Tree;
   function Build_Tree_List (Purpose : Tree; Value : Tree) return Tree;

   function Size_In_Bytes (Decl : Tree) return Tree;
   procedure Set_Identifier_Size (Size : Natural);

   function Get_Inner_Reference
     (Exp : Tree;
      Pbitsize : Address; --  HOST_WIDE_INT pointer
      Pbitpos : Address; -- HOST_WIDE_INT pointer
      Poffset : Address; -- Tree pointer
      Pmode : Address; -- MACHINE_MODE pointer
      Punsignedp : Address; -- int pointer
      Pvolatilep : Address) -- int pointer
     return Tree;

   Current_Function_Decl : Tree;

   function Integer_Zerop (Expr : Tree) return C_Bool;
   function Integer_Onep (Expr : Tree) return C_Bool;
   function Real_Zerop (Expr : Tree) return C_Bool;

   procedure Layout_Type (Atype : Tree);
   procedure Layout_Decl (Decl : Tree; Align : Natural);

   procedure Expand_Start_Bindings_And_Block (Flags : Integer; Block : Tree);
   procedure Expand_Start_Bindings (Flags : Integer);
   procedure Expand_End_Bindings
     (Vars : Tree; Mark_Ends: C_Bool; Dont_Jump_In : C_Bool);

   procedure Init_Function_Start
     (Subr : Tree; Filename : Chars; Line : Integer);
   procedure Expand_Function_Start
     (Subr : Tree; Parms_Have_Cleanups : C_Bool);
   procedure Expand_Function_End
     (Filename : Chars; Line : Integer; End_Bindings : C_Bool);
   procedure Push_Function_Context;
   procedure Pop_Function_Context;
   procedure Put_Var_Into_Stack (Expr : Tree; Rescan : C_Bool);
   procedure Expand_Null_Return;
   procedure Expand_Return (Expr : Tree);
   procedure Expand_Expr_Stmt (Expr : Tree);
   procedure Expand_Decl (Decl : Tree);
   procedure Expand_Decl_Init (Decl : Tree);

   function Expand_Exit_Something return Integer;

   --  Conditions (IF).
   procedure Expand_Start_Cond (Cond : Tree; Has_Exit : C_Bool);
   procedure Expand_Start_Elseif (Cond : Tree);
   procedure Expand_Start_Else;
   procedure Expand_End_Cond;

   --  Loops (FOR, WHILE, DO-WHILE, CONTINUE, EXIT ...)
   type Nesting is private;
   Nesting_Null : constant Nesting;
   function Expand_Start_Loop (Exit_Flag : C_Bool) return Nesting;
   procedure Expand_Continue_Loop (Which_Loop: Nesting);
   procedure Expand_End_Loop;
   function Expand_Start_Loop_Continue_Elsewhere (Exit_Flag : C_Bool)
     return Nesting;
   procedure Expand_Loop_Continue_Here;
   procedure Expand_Exit_Loop (Which_Loop : Nesting);
   function Expand_Exit_Loop_If_False (Which_Loop : Nesting; Cond : Tree)
     return Integer;

   --  multibranch (SWITCH).
   procedure Expand_Start_Case
     (Exit_Flag : C_Bool; Expr : Tree; Etype : Tree; Printname : Chars);
   function Pushcase
     (Value : Tree; Converter : Address; Label : Tree; Duplicate : Address)
     return Integer;
   function Pushcase_Range
     (Low, High : Tree; Converter : Address; Label : Tree; Duplicate : Address)
     return Integer;
   function Add_Case_Node (Low, High : Tree; Label : Tree; Duplicate : Address)
     return Integer;
   procedure Expand_End_Case_Type (Orig_Index : Tree; Orig_Type : Tree);

   procedure Debug_Tree (T: Tree);

   function Fold (Atree : Tree) return Tree;
   function Size_Binop (Code : Tree_Code; arg0, Arg1 : Tree) return Tree;
   function Size_Int (Number : HOST_WIDE_INT) return Tree;

   function Convert (Atype : Tree; Expr : Tree) return Tree;

   --  Create an INTEGER_CST whose value is LOW signed extended to
   --  2 HOST_WIDE_INT.
   function Build_Int (Low : HOST_WIDE_INT) return Tree;

   function Get_TREE_CODE (T : Tree) return Tree_Code;
   procedure Set_TREE_CONSTANT (T : Tree; Val : C_Bool);
   function Get_TREE_CONSTANT (T : Tree) return C_Bool;
   procedure Set_TREE_PUBLIC (Decl: Tree; Val : C_Bool);
   procedure Set_TREE_STATIC (Decl : Tree; Val : C_Bool);
   procedure Set_TREE_TYPE (Decl : Tree; T : Tree);
   function Get_TREE_TYPE (Decl : Tree) return Tree;
   procedure Set_TREE_CHAIN (Decl : Tree; Chain : Tree);
   function Get_TREE_CHAIN (Decl : Tree) return Tree;
   procedure Set_TREE_UNSIGNED (Decl : Tree; Val: C_Bool);
   function Get_TREE_UNSIGNED (Decl : Tree) return C_Bool;
   procedure Set_TREE_ADDRESSABLE (Decl : Tree; Val: C_Bool);
   function Get_TREE_ADDRESSABLE (Decl : Tree) return C_Bool;
   procedure Set_TREE_SIDE_EFFECTS (Decl : Tree; Val: C_Bool);
   procedure Set_TREE_READONLY (Decl : Tree; Val: C_Bool);
   procedure Set_TREE_OPERAND (T : Tree; N : Natural; Val : Tree);
   function Get_TREE_OPERAND (T : Tree; N : Natural) return Tree;
   procedure Set_TREE_THIS_VOLATILE (T : Tree; Val : C_Bool);
   function Get_TREE_THIS_VOLATILE (T : Tree) return C_Bool;
   function Get_TREE_VALUE (Decl : Tree) return Tree;
   function Get_TREE_PURPOSE (Decl : Tree) return Tree;
   function Get_TREE_USED (Decl : Tree) return C_Bool;
   procedure Set_TREE_USED (Decl : Tree; Flag : C_Bool);

   function Get_TREE_INT_CST_LOW (Node : Tree) return HOST_WIDE_INT;
   function Get_TREE_INT_CST_HIGH (Node : Tree) return HOST_WIDE_INT;

   function Get_CONSTRUCTOR_ELTS (Cons : Tree) return Tree;

   procedure Set_DECL_ARG_TYPE (Decl : Tree; Val : Tree);
   procedure Set_DECL_EXTERNAL (Decl : Tree; Val : C_Bool);
   function Get_DECL_EXTERNAL (Decl : Tree) return C_Bool;
   procedure Set_DECL_ARGUMENTS (Decl : Tree; Args : Tree);
   function Get_DECL_ARGUMENTS (Decl : Tree) return Tree;
   procedure Set_DECL_RESULT (Decl : Tree; Res : Tree);
   function Get_DECL_RESULT (Decl : Tree) return Tree;
   procedure Set_DECL_CONTEXT (Decl : Tree; Context : Tree);
   function Get_DECL_CONTEXT (Decl : Tree) return Tree;
   function Get_DECL_INITIAL (Decl : Tree) return Tree;
   procedure Set_DECL_INITIAL (Decl : Tree; Init : Tree);
   function Get_DECL_NAME (Decl : Tree) return Tree;
   function Get_DECL_ASSEMBLER_NAME (Decl : Tree) return Tree;
   procedure Set_DECL_ASSEMBLER_NAME (Decl : Tree; Name : Tree);
   procedure Set_DECL_BUILT_IN_CLASS (Decl : Tree; Class : Built_In_Class);
   procedure Set_DECL_FUNCTION_CODE (Decl : Tree; Code : Built_In_Function);
   function Get_DECL_FIELD_OFFSET (Decl : Tree) return Tree;
   function Get_DECL_FIELD_BIT_OFFSET (Decl : Tree) return Tree;

   procedure Set_TYPE_VALUES (Atype : Tree; Values: Tree);
   procedure Set_TYPE_NAME (Atype : Tree; Name: Tree);
   function Get_TYPE_NAME (Atype : Tree) return Tree;
   procedure Set_TYPE_MIN_VALUE (Atype : Tree; Val: Tree);
   function Get_TYPE_MIN_VALUE (Atype : Tree) return Tree;
   procedure Set_TYPE_MAX_VALUE (Atype : Tree; Val: Tree);
   function Get_TYPE_MAX_VALUE (Atype : Tree) return Tree;
   procedure Set_TYPE_SIZE (Atype : Tree; Size: Tree);
   function Get_TYPE_SIZE (Atype : Tree) return Tree;
   procedure Set_TYPE_PRECISION (Atype : Tree; Precision : Integer);
   function Get_TYPE_PRECISION (Atype : Tree) return Integer;
   procedure Set_TYPE_FIELDS (Atype : Tree; Fields : Tree);
   function Get_TYPE_FIELDS (Atype : Tree) return Tree;
   procedure Set_TYPE_STUB_DECL (Atype : Tree; Decl : Tree);
   procedure Set_TYPE_LANG_SPECIFIC (Atype : Tree; Val : System.Address);
   function Get_TYPE_LANG_SPECIFIC (Atype : Tree) return System.Address;
   function Get_TYPE_IS_SIZETYPE (Atype : Tree) return C_Bool;
   function Get_TYPE_DOMAIN (Atype : Tree) return Tree;
   procedure Set_TYPE_DOMAIN (Atype : Tree; Domain : Tree);
   function Get_TYPE_SIZE_UNIT (Atype : Tree) return Tree;
   function Get_TYPE_POINTER_TO (Atype : Tree) return Tree;
   procedure Set_TYPE_POINTER_TO (Atype : Tree; Dtype : Tree);
   function INTEGRAL_TYPE_P (Atype : Tree) return C_Bool;
   procedure Set_TYPE_MODE (Atype : Tree; Mode : Machine_Mode);
   function Get_TYPE_MODE (Atype : Tree) return Machine_Mode;

   function Get_BLOCK_SUPERCONTEXT (Ablock : Tree) return Tree;
   procedure Set_BLOCK_SUPERCONTEXT (Ablock : Tree; Sc : Tree);
   procedure Set_BLOCK_VARS (Ablock : Tree; Vars : Tree);

   function Get_IDENTIFIER_LENGTH (N : Tree) return Integer;
   function Get_IDENTIFIER_POINTER (N : Tree) return Chars;

   procedure Build_Common_Tree_Nodes (Signed_Char : C_Bool);
   procedure Build_Common_Tree_Nodes_2 (Short_Double : C_Bool);

   --  Points to the name of the input file from which the current input
   --  being parsed originally came (before it went into cpp).
   Input_Filename : Chars;

   Main_Input_Filename : Chars;

   -- Current line number in input file.
   Lineno : Integer;

   --  sizeof (struct tree_identifier).
   Tree_Identifier_Size : Natural;

   --  Create DECL_RTL for a declaration for a static or external variable or
   --  static or external function.
   procedure Make_Decl_Rtl (Decl : Tree; Asmspec : Chars; Top_Level : C_Bool);

private
   NULL_TREE : constant Tree := Tree (System.Null_Address);

   type Nesting is new System.Address;
   Nesting_Null : constant Nesting := Nesting (Null_Address);

   pragma Import (C, Current_Function_Decl);
   pragma Import (C, Set_Identifier_Size);

   pragma Import (C, Build);
   pragma Import (C, Build1);
   pragma Import (C, Build_Constructor);
   pragma Import (C, Build_Block);
   pragma Import (C, Build_Decl);
   pragma Import (C, Build_Int_2);
   pragma Import (C, Build_Int_2_Wide);
   pragma Import (C, Build_Real);
   pragma Import (C, Build_Function_Type);
   pragma Import (C, Build_Pointer_Type);
   pragma Import (C, Get_Identifier);
   pragma Import (C, Build_String);
   pragma Import (C, Make_Node);
   pragma Import (C, Build_Index_Type);
   pragma Import (C, Build_Range_Type);
   pragma Import (C, Build_Array_Type);
   pragma Import (C, Build_Qualified_Type);
   pragma Import (C, Build_Save_Expr, "save_expr");

   pragma Import (C, Make_Signed_Type);
   pragma Import (C, Make_Unsigned_Type);
   pragma Import (C, Initialize_Sizetypes);
   pragma Import (C, Set_Sizetype);
   pragma Import (C, Host_Integerp);

   pragma Import (C, Chainon);
   pragma Import (C, Listify);
   pragma Import (C, Tree_Cons);
   pragma Import (C, Nreverse);
   pragma Import (C, Build_Tree_List);

   pragma Import (C, Size_In_Bytes);
   pragma Import (C, Get_Inner_Reference);

   pragma Import (C, Integer_Zerop);
   pragma Import (C, Integer_Onep);
   pragma Import (C, Real_Zerop);

   pragma Import (C, Layout_Type);
   pragma Import (C, Layout_Decl);

   pragma Import (C, Expand_Start_Bindings_And_Block);
   pragma Import (C, Expand_End_Bindings);

   pragma Import (C, Init_Function_Start);
   pragma Import (C, Expand_Function_Start);
   pragma Import (C, Expand_Function_End);
   pragma Import (C, Push_Function_Context);
   pragma Import (C, Pop_Function_Context);
   pragma Import (C, Put_Var_Into_Stack);

   pragma Import (C, Expand_Null_Return);
   pragma Import (C, Expand_Return);
   pragma Import (C, Expand_Expr_Stmt);
   pragma Import (C, Expand_Decl);
   pragma Import (C, Expand_Decl_Init);

   pragma Import (C, Expand_Exit_Something);

   pragma Import (C, Expand_Start_Cond);
   pragma Import (C, Expand_Start_Elseif);
   pragma Import (C, Expand_Start_Else);
   pragma Import (C, Expand_End_Cond);

   pragma Import (C, Expand_Start_Loop);
   pragma Import (C, Expand_Continue_Loop);
   pragma Import (C, Expand_End_Loop);
   pragma Import (C, Expand_Start_Loop_Continue_Elsewhere);
   pragma Import (C, Expand_Loop_Continue_Here);
   pragma Import (C, Expand_Exit_Loop);
   pragma Import (C, Expand_Exit_Loop_If_False);

   pragma Import (C, Expand_Start_Case);
   pragma Import (C, Pushcase);
   pragma Import (C, Pushcase_Range);
   pragma Import (C, Add_Case_Node);
   pragma Import (C, Expand_End_Case_Type);

   pragma Import (C, Debug_Tree);

   pragma Import (C, Fold);
   pragma Import (C, Size_Binop);
   pragma Import (C, Size_Int);
   pragma Import (C, Convert);

   -- Import pragma clauses for C MACROs.
   pragma Import (C, Get_TREE_CODE);
   pragma Import (C, Set_TREE_CONSTANT);
   pragma Import (C, Get_TREE_CONSTANT);
   pragma Import (C, Set_TREE_PUBLIC);
   pragma Import (C, Set_TREE_STATIC);
   pragma Import (C, Set_TREE_TYPE);
   pragma Import (C, Get_TREE_TYPE);
   pragma Import (C, Set_TREE_CHAIN);
   pragma Import (C, Get_TREE_CHAIN);
   pragma Import (C, Set_TREE_UNSIGNED);
   pragma Import (C, Get_TREE_UNSIGNED);
   pragma Import (C, Set_TREE_ADDRESSABLE);
   pragma Import (C, Get_TREE_ADDRESSABLE);
   pragma Import (C, Set_TREE_SIDE_EFFECTS);
   pragma Import (C, Set_TREE_READONLY);
   pragma Import (C, Get_TREE_OPERAND);
   pragma Import (C, Set_TREE_OPERAND);
   pragma Import (C, Get_TREE_THIS_VOLATILE);
   pragma Import (C, Set_TREE_THIS_VOLATILE);
   pragma Import (C, Get_TREE_PURPOSE);
   pragma Import (C, Get_TREE_VALUE);
   pragma Import (C, Get_TREE_USED);
   pragma Import (C, Set_TREE_USED);

   pragma Import (C, Get_TREE_INT_CST_LOW);
   pragma Import (C, Get_TREE_INT_CST_HIGH);

   pragma Import (C, Get_CONSTRUCTOR_ELTS);
   pragma Import (C, Set_TYPE_VALUES);
   pragma Import (C, Set_TYPE_NAME);
   pragma Import (C, Get_TYPE_NAME);
   pragma Import (C, Set_TYPE_MIN_VALUE);
   pragma Import (C, Get_TYPE_MIN_VALUE);
   pragma Import (C, Set_TYPE_MAX_VALUE);
   pragma Import (C, Get_TYPE_MAX_VALUE);
   pragma Import (C, Set_TYPE_SIZE);
   pragma Import (C, Get_TYPE_SIZE);
   pragma Import (C, Set_TYPE_PRECISION);
   pragma Import (C, Get_TYPE_PRECISION);
   pragma Import (C, Set_TYPE_FIELDS);
   pragma Import (C, Get_TYPE_FIELDS);
   pragma Import (C, Set_TYPE_STUB_DECL);
   pragma Import (C, Set_TYPE_LANG_SPECIFIC);
   pragma Import (C, Get_TYPE_LANG_SPECIFIC);
   pragma Import (C, Get_TYPE_IS_SIZETYPE);
   pragma Import (C, Get_TYPE_DOMAIN);
   pragma Import (C, Set_TYPE_DOMAIN);
   pragma Import (C, Get_TYPE_POINTER_TO);
   pragma Import (C, Set_TYPE_POINTER_TO);
   pragma Import (C, Get_TYPE_SIZE_UNIT);
   pragma Import (C, INTEGRAL_TYPE_P);
   pragma Import (C, Set_TYPE_MODE);
   pragma Import (C, Get_TYPE_MODE);

   pragma Import (C, Set_DECL_ARG_TYPE);
   pragma Import (C, Set_DECL_EXTERNAL);
   pragma Import (C, Get_DECL_EXTERNAL);
   pragma Import (C, Set_DECL_ARGUMENTS);
   pragma Import (C, Get_DECL_ARGUMENTS);
   pragma Import (C, Set_DECL_RESULT);
   pragma Import (C, Get_DECL_RESULT);
   pragma Import (C, Set_DECL_CONTEXT);
   pragma Import (C, Get_DECL_CONTEXT);
   pragma Import (C, Get_DECL_INITIAL);
   pragma Import (C, Set_DECL_INITIAL);
   pragma Import (C, Get_DECL_NAME);
   pragma Import (C, Set_DECL_ASSEMBLER_NAME, "set_DECL_ASSEMBLER_NAME");
   pragma Import (C, Get_DECL_ASSEMBLER_NAME);
   pragma Import (C, Set_DECL_BUILT_IN_CLASS);
   pragma Import (C, Set_DECL_FUNCTION_CODE);
   pragma Import (C, Get_DECL_FIELD_OFFSET);
   pragma Import (C, Get_DECL_FIELD_BIT_OFFSET);

   pragma Import (C, Get_BLOCK_SUPERCONTEXT);
   pragma Import (C, Set_BLOCK_SUPERCONTEXT);
   pragma Import (C, Set_BLOCK_VARS);

   pragma Import (C, Get_IDENTIFIER_LENGTH);
   pragma Import (C, Get_IDENTIFIER_POINTER);

   pragma Import (C, Build_Common_Tree_Nodes);
   pragma Import (C, Build_Common_Tree_Nodes_2);

   pragma Import (C, Input_Filename);
   pragma Import (C, Main_Input_Filename);
   pragma Import (C, Lineno);

   pragma Import (C, Tree_Identifier_Size);

   pragma Import (C, Make_Decl_Rtl);
end Agcc.Trees;