1package Case_Optimization_Pkg1 is 2 3 type Element is null record; 4 5 type Internal_Element_Kinds is 6 (Not_An_Element, 7 An_All_Calls_Remote_Pragma, 8 An_Asynchronous_Pragma, 9 An_Atomic_Pragma, 10 An_Atomic_Components_Pragma, 11 An_Attach_Handler_Pragma, 12 A_Controlled_Pragma, 13 A_Convention_Pragma, 14 A_Discard_Names_Pragma, 15 An_Elaborate_Pragma, 16 An_Elaborate_All_Pragma, 17 An_Elaborate_Body_Pragma, 18 An_Export_Pragma, 19 An_Import_Pragma, 20 An_Inline_Pragma, 21 An_Inspection_Point_Pragma, 22 An_Interrupt_Handler_Pragma, 23 An_Interrupt_Priority_Pragma, 24 A_Linker_Options_Pragma, 25 A_List_Pragma, 26 A_Locking_Policy_Pragma, 27 A_Normalize_Scalars_Pragma, 28 An_Optimize_Pragma, 29 A_Pack_Pragma, 30 A_Page_Pragma, 31 A_Preelaborate_Pragma, 32 A_Priority_Pragma, 33 A_Pure_Pragma, 34 A_Queuing_Policy_Pragma, 35 A_Remote_Call_Interface_Pragma, 36 A_Remote_Types_Pragma, 37 A_Restrictions_Pragma, 38 A_Reviewable_Pragma, 39 A_Shared_Passive_Pragma, 40 A_Storage_Size_Pragma, 41 A_Suppress_Pragma, 42 A_Task_Dispatching_Policy_Pragma, 43 A_Volatile_Pragma, 44 A_Volatile_Components_Pragma, 45 An_Assert_Pragma, 46 An_Assertion_Policy_Pragma, 47 A_Detect_Blocking_Pragma, 48 A_No_Return_Pragma, 49 A_Partition_Elaboration_Policy_Pragma, 50 A_Preelaborable_Initialization_Pragma, 51 A_Priority_Specific_Dispatching_Pragma, 52 A_Profile_Pragma, 53 A_Relative_Deadline_Pragma, 54 An_Unchecked_Union_Pragma, 55 An_Unsuppress_Pragma, 56 An_Implementation_Defined_Pragma, 57 An_Unknown_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, 126 A_Package_Body_Stub, 127 A_Task_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, 161 A_Limited_Interface, 162 A_Task_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, 175 A_Digits_Constraint, 176 A_Delta_Constraint, 177 An_Index_Constraint, 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, 188 A_Record_Definition, 189 A_Null_Record_Definition, 190 A_Null_Component, 191 A_Variant_Part, 192 A_Variant, 193 An_Others_Choice, 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, 203 A_Task_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, 228 An_Integer_Literal, 229 A_Real_Literal, 230 A_String_Literal, 231 An_Identifier, 232 An_And_Operator, 233 An_Or_Operator, 234 An_Xor_Operator, 235 An_Equal_Operator, 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, 241 A_Plus_Operator, 242 A_Minus_Operator, 243 A_Concatenate_Operator, 244 A_Unary_Plus_Operator, 245 A_Unary_Minus_Operator, 246 A_Multiply_Operator, 247 A_Divide_Operator, 248 A_Mod_Operator, 249 A_Rem_Operator, 250 An_Exponentiate_Operator, 251 An_Abs_Operator, 252 A_Not_Operator, 253 A_Character_Literal, 254 An_Enumeration_Literal, 255 An_Explicit_Dereference, 256 A_Function_Call, 257 An_Indexed_Component, 258 A_Slice, 259 A_Selected_Component, 260 An_Access_Attribute, 261 An_Address_Attribute, 262 An_Adjacent_Attribute, 263 An_Aft_Attribute, 264 An_Alignment_Attribute, 265 A_Base_Attribute, 266 A_Bit_Order_Attribute, 267 A_Body_Version_Attribute, 268 A_Callable_Attribute, 269 A_Caller_Attribute, 270 A_Ceiling_Attribute, 271 A_Class_Attribute, 272 A_Component_Size_Attribute, 273 A_Compose_Attribute, 274 A_Constrained_Attribute, 275 A_Copy_Sign_Attribute, 276 A_Count_Attribute, 277 A_Definite_Attribute, 278 A_Delta_Attribute, 279 A_Denorm_Attribute, 280 A_Digits_Attribute, 281 An_Exponent_Attribute, 282 An_External_Tag_Attribute, 283 A_First_Attribute, 284 A_First_Bit_Attribute, 285 A_Floor_Attribute, 286 A_Fore_Attribute, 287 A_Fraction_Attribute, 288 An_Identity_Attribute, 289 An_Image_Attribute, 290 An_Input_Attribute, 291 A_Last_Attribute, 292 A_Last_Bit_Attribute, 293 A_Leading_Part_Attribute, 294 A_Length_Attribute, 295 A_Machine_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, 302 A_Max_Attribute, 303 A_Max_Size_In_Storage_Elements_Attribute, 304 A_Min_Attribute, 305 A_Model_Attribute, 306 A_Model_Emin_Attribute, 307 A_Model_Epsilon_Attribute, 308 A_Model_Mantissa_Attribute, 309 A_Model_Small_Attribute, 310 A_Modulus_Attribute, 311 An_Output_Attribute, 312 A_Partition_ID_Attribute, 313 A_Pos_Attribute, 314 A_Position_Attribute, 315 A_Pred_Attribute, 316 A_Range_Attribute, 317 A_Read_Attribute, 318 A_Remainder_Attribute, 319 A_Round_Attribute, 320 A_Rounding_Attribute, 321 A_Safe_First_Attribute, 322 A_Safe_Last_Attribute, 323 A_Scale_Attribute, 324 A_Scaling_Attribute, 325 A_Signed_Zeros_Attribute, 326 A_Size_Attribute, 327 A_Small_Attribute, 328 A_Storage_Pool_Attribute, 329 A_Storage_Size_Attribute, 330 A_Succ_Attribute, 331 A_Tag_Attribute, 332 A_Terminated_Attribute, 333 A_Truncation_Attribute, 334 An_Unbiased_Rounding_Attribute, 335 An_Unchecked_Access_Attribute, 336 A_Val_Attribute, 337 A_Valid_Attribute, 338 A_Value_Attribute, 339 A_Version_Attribute, 340 A_Wide_Image_Attribute, 341 A_Wide_Value_Attribute, 342 A_Wide_Width_Attribute, 343 A_Width_Attribute, 344 A_Write_Attribute, 345 A_Machine_Rounding_Attribute, 346 A_Mod_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, 354 A_Record_Aggregate, 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, 364 A_Null_Literal, 365 A_Parenthesized_Expression, 366 A_Type_Conversion, 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, 376 A_Null_Statement, 377 An_Assignment_Statement, 378 An_If_Statement, 379 A_Case_Statement, 380 A_Loop_Statement, 381 A_While_Loop_Statement, 382 A_For_Loop_Statement, 383 A_Block_Statement, 384 An_Exit_Statement, 385 A_Goto_Statement, 386 A_Procedure_Call_Statement, 387 A_Return_Statement, 388 An_Extended_Return_Statement, 389 An_Accept_Statement, 390 An_Entry_Call_Statement, 391 A_Requeue_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, 400 An_Abort_Statement, 401 A_Raise_Statement, 402 A_Code_Statement, 403 An_If_Path, 404 An_Elsif_Path, 405 An_Else_Path, 406 A_Case_Path, 407 A_Select_Path, 408 An_Or_Path, 409 A_Then_Abort_Path, 410 A_Use_Package_Clause, 411 A_Use_Type_Clause, 412 A_With_Clause, 413 An_Attribute_Definition_Clause, 414 An_Enumeration_Representation_Clause, 415 A_Record_Representation_Clause, 416 An_At_Clause, 417 A_Component_Clause, 418 An_Exception_Handler, 419 Non_Trivial_Mapping, 420 Not_Implemented_Mapping, 421 Trivial_Mapping, 422 No_Mapping); 423 424 subtype Internal_Expression_Kinds is Internal_Element_Kinds 425 range An_Integer_Literal .. An_Allocation_From_Qualified_Expression; 426 427 subtype Internal_Operator_Symbol_Kinds is Internal_Expression_Kinds 428 range An_And_Operator .. A_Not_Operator; 429 430 function Int_Kind (E : Element) return Internal_Element_Kinds; 431 432end Case_Optimization_Pkg1; 433