111
|
1 /****************************************************************************
|
|
2 * *
|
|
3 * GNAT COMPILER COMPONENTS *
|
|
4 * *
|
|
5 * R E P I N F O *
|
|
6 * *
|
|
7 * C Header File *
|
|
8 * *
|
145
|
9 * Copyright (C) 1999-2019, Free Software Foundation, Inc. *
|
111
|
10 * *
|
|
11 * GNAT is free software; you can redistribute it and/or modify it under *
|
|
12 * terms of the GNU General Public License as published by the Free Soft- *
|
|
13 * ware Foundation; either version 3, or (at your option) any later ver- *
|
|
14 * sion. GNAT is distributed in the hope that it will be useful, but WITH- *
|
|
15 * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
|
|
16 * or FITNESS FOR A PARTICULAR PURPOSE. *
|
|
17 * *
|
|
18 * As a special exception under Section 7 of GPL version 3, you are granted *
|
|
19 * additional permissions described in the GCC Runtime Library Exception, *
|
|
20 * version 3.1, as published by the Free Software Foundation. *
|
|
21 * *
|
|
22 * You should have received a copy of the GNU General Public License and *
|
|
23 * a copy of the GCC Runtime Library Exception along with this program; *
|
|
24 * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see *
|
|
25 * <http://www.gnu.org/licenses/>. *
|
|
26 * *
|
|
27 * GNAT was originally developed by the GNAT team at New York University. *
|
|
28 * Extensive contributions were provided by Ada Core Technologies Inc. *
|
|
29 * *
|
|
30 ****************************************************************************/
|
|
31
|
145
|
32 /* This is the C header that corresponds to the Ada package specification for
|
|
33 Repinfo. It was created manually from repinfo.ads and must be kept
|
|
34 synchronized with changes in this file. */
|
111
|
35
|
|
36 #ifdef __cplusplus
|
|
37 extern "C" {
|
|
38 #endif
|
|
39
|
|
40 typedef Uint Node_Ref;
|
|
41 typedef Uint Node_Ref_Or_Val;
|
|
42 typedef char TCode;
|
|
43
|
|
44 /* These are the values of TCcode that correspond to tree codes in tree.def,
|
|
45 except for the first, which is how we encode discriminants. */
|
|
46
|
|
47 #define Discrim_Val 0
|
|
48 #define Cond_Expr 1
|
|
49 #define Plus_Expr 2
|
|
50 #define Minus_Expr 3
|
|
51 #define Mult_Expr 4
|
|
52 #define Trunc_Div_Expr 5
|
|
53 #define Ceil_Div_Expr 6
|
|
54 #define Floor_Div_Expr 7
|
|
55 #define Trunc_Mod_Expr 8
|
|
56 #define Ceil_Mod_Expr 9
|
|
57 #define Floor_Mod_Expr 10
|
|
58 #define Exact_Div_Expr 11
|
|
59 #define Negate_Expr 12
|
|
60 #define Min_Expr 13
|
|
61 #define Max_Expr 14
|
|
62 #define Abs_Expr 15
|
131
|
63 #define Truth_And_Expr 16
|
|
64 #define Truth_Or_Expr 17
|
|
65 #define Truth_Xor_Expr 18
|
|
66 #define Truth_Not_Expr 19
|
|
67 #define Lt_Expr 20
|
|
68 #define Le_Expr 21
|
|
69 #define Gt_Expr 22
|
|
70 #define Ge_Expr 23
|
|
71 #define Eq_Expr 24
|
|
72 #define Ne_Expr 25
|
|
73 #define Bit_And_Expr 26
|
|
74 #define Dynamic_Val 27
|
111
|
75
|
|
76 /* Creates a node using the tree code defined by Expr and from 1-3
|
|
77 operands as required (unused operands set as shown to No_Uint) Note
|
|
78 that this call can be used to create a discriminant reference by
|
|
79 using (Expr => Discrim_Val, Op1 => discriminant_number). */
|
|
80 #define Create_Node repinfo__create_node
|
|
81 extern Node_Ref Create_Node (TCode, Node_Ref_Or_Val,
|
|
82 Node_Ref_Or_Val, Node_Ref_Or_Val);
|
|
83
|
|
84 #ifdef __cplusplus
|
|
85 }
|
|
86 #endif
|