1 package Case_Optimization_Pkg1 is
3 type Element is null record;
5 type Internal_Element_Kinds is
7 An_All_Calls_Remote_Pragma,
8 An_Asynchronous_Pragma,
10 An_Atomic_Components_Pragma,
11 An_Attach_Handler_Pragma,
14 A_Discard_Names_Pragma,
16 An_Elaborate_All_Pragma,
17 An_Elaborate_Body_Pragma,
21 An_Inspection_Point_Pragma,
22 An_Interrupt_Handler_Pragma,
23 An_Interrupt_Priority_Pragma,
24 A_Linker_Options_Pragma,
26 A_Locking_Policy_Pragma,
27 A_Normalize_Scalars_Pragma,
31 A_Preelaborate_Pragma,
34 A_Queuing_Policy_Pragma,
35 A_Remote_Call_Interface_Pragma,
36 A_Remote_Types_Pragma,
37 A_Restrictions_Pragma,
39 A_Shared_Passive_Pragma,
40 A_Storage_Size_Pragma,
42 A_Task_Dispatching_Policy_Pragma,
44 A_Volatile_Components_Pragma,
46 An_Assertion_Policy_Pragma,
47 A_Detect_Blocking_Pragma,
49 A_Partition_Elaboration_Policy_Pragma,
50 A_Preelaborable_Initialization_Pragma,
51 A_Priority_Specific_Dispatching_Pragma,
53 A_Relative_Deadline_Pragma,
54 An_Unchecked_Union_Pragma,
56 An_Implementation_Defined_Pragma,
58 A_Defining_Identifier,
59 A_Defining_Character_Literal,
60 A_Defining_Enumeration_Literal,
61 A_Defining_And_Operator,
62 A_Defining_Or_Operator,
63 A_Defining_Xor_Operator,
64 A_Defining_Equal_Operator,
65 A_Defining_Not_Equal_Operator,
66 A_Defining_Less_Than_Operator,
67 A_Defining_Less_Than_Or_Equal_Operator,
68 A_Defining_Greater_Than_Operator,
69 A_Defining_Greater_Than_Or_Equal_Operator,
70 A_Defining_Plus_Operator,
71 A_Defining_Minus_Operator,
72 A_Defining_Concatenate_Operator,
73 A_Defining_Unary_Plus_Operator,
74 A_Defining_Unary_Minus_Operator,
75 A_Defining_Multiply_Operator,
76 A_Defining_Divide_Operator,
77 A_Defining_Mod_Operator,
78 A_Defining_Rem_Operator,
79 A_Defining_Exponentiate_Operator,
80 A_Defining_Abs_Operator,
81 A_Defining_Not_Operator,
82 A_Defining_Expanded_Name,
83 An_Ordinary_Type_Declaration,
84 A_Task_Type_Declaration,
85 A_Protected_Type_Declaration,
86 An_Incomplete_Type_Declaration,
87 A_Tagged_Incomplete_Type_Declaration,
88 A_Private_Type_Declaration,
89 A_Private_Extension_Declaration,
90 A_Subtype_Declaration,
91 A_Variable_Declaration,
92 A_Constant_Declaration,
93 A_Deferred_Constant_Declaration,
94 A_Single_Task_Declaration,
95 A_Single_Protected_Declaration,
96 An_Integer_Number_Declaration,
97 A_Real_Number_Declaration,
98 An_Enumeration_Literal_Specification,
99 A_Discriminant_Specification,
100 A_Component_Declaration,
101 A_Loop_Parameter_Specification,
102 A_Procedure_Declaration,
103 A_Function_Declaration,
104 A_Parameter_Specification,
105 A_Procedure_Body_Declaration,
106 A_Function_Body_Declaration,
107 A_Return_Object_Declaration,
108 A_Null_Procedure_Declaration,
109 A_Package_Declaration,
110 A_Package_Body_Declaration,
111 An_Object_Renaming_Declaration,
112 An_Exception_Renaming_Declaration,
113 A_Package_Renaming_Declaration,
114 A_Procedure_Renaming_Declaration,
115 A_Function_Renaming_Declaration,
116 A_Generic_Package_Renaming_Declaration,
117 A_Generic_Procedure_Renaming_Declaration,
118 A_Generic_Function_Renaming_Declaration,
119 A_Task_Body_Declaration,
120 A_Protected_Body_Declaration,
121 An_Entry_Declaration,
122 An_Entry_Body_Declaration,
123 An_Entry_Index_Specification,
124 A_Procedure_Body_Stub,
125 A_Function_Body_Stub,
128 A_Protected_Body_Stub,
129 An_Exception_Declaration,
130 A_Choice_Parameter_Specification,
131 A_Generic_Procedure_Declaration,
132 A_Generic_Function_Declaration,
133 A_Generic_Package_Declaration,
134 A_Package_Instantiation,
135 A_Procedure_Instantiation,
136 A_Function_Instantiation,
137 A_Formal_Object_Declaration,
138 A_Formal_Type_Declaration,
139 A_Formal_Procedure_Declaration,
140 A_Formal_Function_Declaration,
141 A_Formal_Package_Declaration,
142 A_Formal_Package_Declaration_With_Box,
143 A_Derived_Type_Definition,
144 A_Derived_Record_Extension_Definition,
145 An_Enumeration_Type_Definition,
146 A_Signed_Integer_Type_Definition,
147 A_Modular_Type_Definition,
148 A_Root_Integer_Definition,
149 A_Root_Real_Definition,
150 A_Universal_Integer_Definition,
151 A_Universal_Real_Definition,
152 A_Universal_Fixed_Definition,
153 A_Floating_Point_Definition,
154 An_Ordinary_Fixed_Point_Definition,
155 A_Decimal_Fixed_Point_Definition,
156 An_Unconstrained_Array_Definition,
157 A_Constrained_Array_Definition,
158 A_Record_Type_Definition,
159 A_Tagged_Record_Type_Definition,
160 An_Ordinary_Interface,
163 A_Protected_Interface,
164 A_Synchronized_Interface,
165 A_Pool_Specific_Access_To_Variable,
166 An_Access_To_Variable,
167 An_Access_To_Constant,
168 An_Access_To_Procedure,
169 An_Access_To_Protected_Procedure,
170 An_Access_To_Function,
171 An_Access_To_Protected_Function,
172 A_Subtype_Indication,
173 A_Range_Attribute_Reference,
174 A_Simple_Expression_Range,
178 A_Discriminant_Constraint,
179 A_Component_Definition,
180 A_Discrete_Subtype_Indication_As_Subtype_Definition,
181 A_Discrete_Range_Attribute_Reference_As_Subtype_Definition,
182 A_Discrete_Simple_Expression_Range_As_Subtype_Definition,
183 A_Discrete_Subtype_Indication,
184 A_Discrete_Range_Attribute_Reference,
185 A_Discrete_Simple_Expression_Range,
186 An_Unknown_Discriminant_Part,
187 A_Known_Discriminant_Part,
189 A_Null_Record_Definition,
194 An_Anonymous_Access_To_Variable,
195 An_Anonymous_Access_To_Constant,
196 An_Anonymous_Access_To_Procedure,
197 An_Anonymous_Access_To_Protected_Procedure,
198 An_Anonymous_Access_To_Function,
199 An_Anonymous_Access_To_Protected_Function,
200 A_Private_Type_Definition,
201 A_Tagged_Private_Type_Definition,
202 A_Private_Extension_Definition,
204 A_Protected_Definition,
205 A_Formal_Private_Type_Definition,
206 A_Formal_Tagged_Private_Type_Definition,
207 A_Formal_Derived_Type_Definition,
208 A_Formal_Discrete_Type_Definition,
209 A_Formal_Signed_Integer_Type_Definition,
210 A_Formal_Modular_Type_Definition,
211 A_Formal_Floating_Point_Definition,
212 A_Formal_Ordinary_Fixed_Point_Definition,
213 A_Formal_Decimal_Fixed_Point_Definition,
214 A_Formal_Ordinary_Interface,
215 A_Formal_Limited_Interface,
216 A_Formal_Task_Interface,
217 A_Formal_Protected_Interface,
218 A_Formal_Synchronized_Interface,
219 A_Formal_Unconstrained_Array_Definition,
220 A_Formal_Constrained_Array_Definition,
221 A_Formal_Pool_Specific_Access_To_Variable,
222 A_Formal_Access_To_Variable,
223 A_Formal_Access_To_Constant,
224 A_Formal_Access_To_Procedure,
225 A_Formal_Access_To_Protected_Procedure,
226 A_Formal_Access_To_Function,
227 A_Formal_Access_To_Protected_Function,
236 A_Not_Equal_Operator,
237 A_Less_Than_Operator,
238 A_Less_Than_Or_Equal_Operator,
239 A_Greater_Than_Operator,
240 A_Greater_Than_Or_Equal_Operator,
243 A_Concatenate_Operator,
244 A_Unary_Plus_Operator,
245 A_Unary_Minus_Operator,
250 An_Exponentiate_Operator,
254 An_Enumeration_Literal,
255 An_Explicit_Dereference,
257 An_Indexed_Component,
259 A_Selected_Component,
261 An_Address_Attribute,
262 An_Adjacent_Attribute,
264 An_Alignment_Attribute,
266 A_Bit_Order_Attribute,
267 A_Body_Version_Attribute,
268 A_Callable_Attribute,
272 A_Component_Size_Attribute,
274 A_Constrained_Attribute,
275 A_Copy_Sign_Attribute,
277 A_Definite_Attribute,
281 An_Exponent_Attribute,
282 An_External_Tag_Attribute,
284 A_First_Bit_Attribute,
287 A_Fraction_Attribute,
288 An_Identity_Attribute,
292 A_Last_Bit_Attribute,
293 A_Leading_Part_Attribute,
296 A_Machine_Emax_Attribute,
297 A_Machine_Emin_Attribute,
298 A_Machine_Mantissa_Attribute,
299 A_Machine_Overflows_Attribute,
300 A_Machine_Radix_Attribute,
301 A_Machine_Rounds_Attribute,
303 A_Max_Size_In_Storage_Elements_Attribute,
306 A_Model_Emin_Attribute,
307 A_Model_Epsilon_Attribute,
308 A_Model_Mantissa_Attribute,
309 A_Model_Small_Attribute,
312 A_Partition_ID_Attribute,
314 A_Position_Attribute,
318 A_Remainder_Attribute,
320 A_Rounding_Attribute,
321 A_Safe_First_Attribute,
322 A_Safe_Last_Attribute,
325 A_Signed_Zeros_Attribute,
328 A_Storage_Pool_Attribute,
329 A_Storage_Size_Attribute,
332 A_Terminated_Attribute,
333 A_Truncation_Attribute,
334 An_Unbiased_Rounding_Attribute,
335 An_Unchecked_Access_Attribute,
340 A_Wide_Image_Attribute,
341 A_Wide_Value_Attribute,
342 A_Wide_Width_Attribute,
345 A_Machine_Rounding_Attribute,
347 A_Priority_Attribute,
348 A_Stream_Size_Attribute,
349 A_Wide_Wide_Image_Attribute,
350 A_Wide_Wide_Value_Attribute,
351 A_Wide_Wide_Width_Attribute,
352 An_Implementation_Defined_Attribute,
353 An_Unknown_Attribute,
355 An_Extension_Aggregate,
356 A_Positional_Array_Aggregate,
357 A_Named_Array_Aggregate,
358 An_And_Then_Short_Circuit,
359 An_Or_Else_Short_Circuit,
360 An_In_Range_Membership_Test,
361 A_Not_In_Range_Membership_Test,
362 An_In_Type_Membership_Test,
363 A_Not_In_Type_Membership_Test,
365 A_Parenthesized_Expression,
367 A_Qualified_Expression,
368 An_Allocation_From_Subtype,
369 An_Allocation_From_Qualified_Expression,
370 A_Pragma_Argument_Association,
371 A_Discriminant_Association,
372 A_Record_Component_Association,
373 An_Array_Component_Association,
374 A_Parameter_Association,
375 A_Generic_Association,
377 An_Assignment_Statement,
381 A_While_Loop_Statement,
382 A_For_Loop_Statement,
386 A_Procedure_Call_Statement,
388 An_Extended_Return_Statement,
390 An_Entry_Call_Statement,
392 A_Requeue_Statement_With_Abort,
393 A_Delay_Until_Statement,
394 A_Delay_Relative_Statement,
395 A_Terminate_Alternative_Statement,
396 A_Selective_Accept_Statement,
397 A_Timed_Entry_Call_Statement,
398 A_Conditional_Entry_Call_Statement,
399 An_Asynchronous_Select_Statement,
410 A_Use_Package_Clause,
413 An_Attribute_Definition_Clause,
414 An_Enumeration_Representation_Clause,
415 A_Record_Representation_Clause,
418 An_Exception_Handler,
420 Not_Implemented_Mapping,
424 subtype Internal_Expression_Kinds is Internal_Element_Kinds
425 range An_Integer_Literal .. An_Allocation_From_Qualified_Expression;
427 subtype Internal_Operator_Symbol_Kinds is Internal_Expression_Kinds
428 range An_And_Operator .. A_Not_Operator;
430 function Int_Kind (E : Element) return Internal_Element_Kinds;
432 end Case_Optimization_Pkg1;