]>
Commit | Line | Data |
---|---|---|
19235870 RK |
1 | /**************************************************************************** |
2 | * * | |
3 | * GNAT COMPILER COMPONENTS * | |
4 | * * | |
5 | * R E P I N F O * | |
6 | * * | |
7 | * C Header File * | |
8 | * * | |
1d005acc | 9 | * Copyright (C) 1999-2019, Free Software Foundation, Inc. * |
19235870 RK |
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- * | |
748086b7 | 13 | * ware Foundation; either version 3, or (at your option) any later ver- * |
19235870 RK |
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 * | |
748086b7 JJ |
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/>. * | |
19235870 RK |
26 | * * |
27 | * GNAT was originally developed by the GNAT team at New York University. * | |
71ff80dc | 28 | * Extensive contributions were provided by Ada Core Technologies Inc. * |
19235870 RK |
29 | * * |
30 | ****************************************************************************/ | |
31 | ||
c7732bbe EB |
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. */ | |
19235870 | 35 | |
9e9bd455 LG |
36 | #ifdef __cplusplus |
37 | extern "C" { | |
38 | #endif | |
39 | ||
19235870 RK |
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 | |
72da915b EB |
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 | |
19235870 RK |
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 | |
fbf5a39b AC |
81 | extern Node_Ref Create_Node (TCode, Node_Ref_Or_Val, |
82 | Node_Ref_Or_Val, Node_Ref_Or_Val); | |
9e9bd455 LG |
83 | |
84 | #ifdef __cplusplus | |
85 | } | |
86 | #endif |