1with Unchecked_Conversion;
2
3package Debug10_Pkg is
4
5   type Node_Id is range 0 .. 99_999_999;
6
7   Empty : constant Node_Id := 0;
8
9   subtype Entity_Id is Node_Id;
10
11   type Union_Id is new Integer;
12
13   function My_Is_Entity_Name (N : Node_Id) return Boolean;
14
15   function My_Scalar_Range (Id : Entity_Id) return Node_Id;
16
17   function My_Test (N : Node_Id) return Boolean;
18
19   type Node_Kind is (N_Unused_At_Start, N_Unused_At_End);
20
21   type Entity_Kind is (
22
23      E_Void,
24      E_Component,
25      E_Constant,
26      E_Discriminant,
27      E_Loop_Parameter,
28      E_Variable,
29      E_Out_Parameter,
30      E_In_Out_Parameter,
31      E_In_Parameter,
32      E_Generic_In_Out_Parameter,
33      E_Generic_In_Parameter,
34      E_Named_Integer,
35      E_Named_Real,
36      E_Enumeration_Type,
37      E_Enumeration_Subtype,
38      E_Signed_Integer_Type,
39      E_Signed_Integer_Subtype,
40      E_Modular_Integer_Type,
41      E_Modular_Integer_Subtype,
42      E_Ordinary_Fixed_Point_Type,
43      E_Ordinary_Fixed_Point_Subtype,
44      E_Decimal_Fixed_Point_Type,
45      E_Decimal_Fixed_Point_Subtype,
46      E_Floating_Point_Type,
47      E_Floating_Point_Subtype,
48      E_Access_Type,
49      E_Access_Subtype,
50      E_Access_Attribute_Type,
51      E_Allocator_Type,
52      E_General_Access_Type,
53      E_Access_Subprogram_Type,
54      E_Anonymous_Access_Subprogram_Type,
55      E_Access_Protected_Subprogram_Type,
56      E_Anonymous_Access_Protected_Subprogram_Type,
57      E_Anonymous_Access_Type,
58      E_Array_Type,
59      E_Array_Subtype,
60      E_String_Literal_Subtype,
61      E_Class_Wide_Type,
62      E_Class_Wide_Subtype,
63      E_Record_Type,
64      E_Record_Subtype,
65      E_Record_Type_With_Private,
66      E_Record_Subtype_With_Private,
67      E_Private_Type,
68      E_Private_Subtype,
69      E_Limited_Private_Type,
70      E_Limited_Private_Subtype,
71      E_Incomplete_Type,
72      E_Incomplete_Subtype,
73      E_Task_Type,
74      E_Task_Subtype,
75      E_Protected_Type,
76      E_Protected_Subtype,
77      E_Exception_Type,
78      E_Subprogram_Type,
79      E_Enumeration_Literal,
80      E_Function,
81      E_Operator,
82      E_Procedure,
83      E_Abstract_State,
84      E_Entry,
85      E_Entry_Family,
86      E_Block,
87      E_Entry_Index_Parameter,
88      E_Exception,
89      E_Generic_Function,
90      E_Generic_Procedure,
91      E_Generic_Package,
92      E_Label,
93      E_Loop,
94      E_Return_Statement,
95      E_Package,
96      E_Package_Body,
97      E_Protected_Object,
98      E_Protected_Body,
99      E_Task_Body,
100      E_Subprogram_Body
101   );
102
103   subtype Access_Kind                 is Entity_Kind range
104       E_Access_Type ..
105       E_Anonymous_Access_Type;
106
107   subtype Array_Kind                  is Entity_Kind range
108       E_Array_Type ..
109       E_String_Literal_Subtype;
110
111   subtype Object_Kind                 is Entity_Kind range
112       E_Component ..
113       E_Generic_In_Parameter;
114
115   subtype Record_Kind                 is Entity_Kind range
116       E_Class_Wide_Type ..
117       E_Record_Subtype_With_Private;
118
119   subtype Scalar_Kind                 is Entity_Kind range
120       E_Enumeration_Type ..
121       E_Floating_Point_Subtype;
122
123   subtype Type_Kind                   is Entity_Kind range
124       E_Enumeration_Type ..
125       E_Subprogram_Type;
126
127   type Node_Record (Is_Extension : Boolean := False) is record
128      Flag16 : Boolean;
129      Nkind : Node_Kind;
130   end record;
131
132   function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
133
134   type Arr is array (Node_Id) of Node_Record;
135
136   Nodes : Arr;
137
138end Debug10_Pkg;
139