433 lines
18 KiB
Ada
433 lines
18 KiB
Ada
package Case_Optimization_Pkg1 is
|
|
|
|
type Element is null record;
|
|
|
|
type Internal_Element_Kinds is
|
|
(Not_An_Element,
|
|
An_All_Calls_Remote_Pragma,
|
|
An_Asynchronous_Pragma,
|
|
An_Atomic_Pragma,
|
|
An_Atomic_Components_Pragma,
|
|
An_Attach_Handler_Pragma,
|
|
A_Controlled_Pragma,
|
|
A_Convention_Pragma,
|
|
A_Discard_Names_Pragma,
|
|
An_Elaborate_Pragma,
|
|
An_Elaborate_All_Pragma,
|
|
An_Elaborate_Body_Pragma,
|
|
An_Export_Pragma,
|
|
An_Import_Pragma,
|
|
An_Inline_Pragma,
|
|
An_Inspection_Point_Pragma,
|
|
An_Interrupt_Handler_Pragma,
|
|
An_Interrupt_Priority_Pragma,
|
|
A_Linker_Options_Pragma,
|
|
A_List_Pragma,
|
|
A_Locking_Policy_Pragma,
|
|
A_Normalize_Scalars_Pragma,
|
|
An_Optimize_Pragma,
|
|
A_Pack_Pragma,
|
|
A_Page_Pragma,
|
|
A_Preelaborate_Pragma,
|
|
A_Priority_Pragma,
|
|
A_Pure_Pragma,
|
|
A_Queuing_Policy_Pragma,
|
|
A_Remote_Call_Interface_Pragma,
|
|
A_Remote_Types_Pragma,
|
|
A_Restrictions_Pragma,
|
|
A_Reviewable_Pragma,
|
|
A_Shared_Passive_Pragma,
|
|
A_Storage_Size_Pragma,
|
|
A_Suppress_Pragma,
|
|
A_Task_Dispatching_Policy_Pragma,
|
|
A_Volatile_Pragma,
|
|
A_Volatile_Components_Pragma,
|
|
An_Assert_Pragma,
|
|
An_Assertion_Policy_Pragma,
|
|
A_Detect_Blocking_Pragma,
|
|
A_No_Return_Pragma,
|
|
A_Partition_Elaboration_Policy_Pragma,
|
|
A_Preelaborable_Initialization_Pragma,
|
|
A_Priority_Specific_Dispatching_Pragma,
|
|
A_Profile_Pragma,
|
|
A_Relative_Deadline_Pragma,
|
|
An_Unchecked_Union_Pragma,
|
|
An_Unsuppress_Pragma,
|
|
An_Implementation_Defined_Pragma,
|
|
An_Unknown_Pragma,
|
|
A_Defining_Identifier,
|
|
A_Defining_Character_Literal,
|
|
A_Defining_Enumeration_Literal,
|
|
A_Defining_And_Operator,
|
|
A_Defining_Or_Operator,
|
|
A_Defining_Xor_Operator,
|
|
A_Defining_Equal_Operator,
|
|
A_Defining_Not_Equal_Operator,
|
|
A_Defining_Less_Than_Operator,
|
|
A_Defining_Less_Than_Or_Equal_Operator,
|
|
A_Defining_Greater_Than_Operator,
|
|
A_Defining_Greater_Than_Or_Equal_Operator,
|
|
A_Defining_Plus_Operator,
|
|
A_Defining_Minus_Operator,
|
|
A_Defining_Concatenate_Operator,
|
|
A_Defining_Unary_Plus_Operator,
|
|
A_Defining_Unary_Minus_Operator,
|
|
A_Defining_Multiply_Operator,
|
|
A_Defining_Divide_Operator,
|
|
A_Defining_Mod_Operator,
|
|
A_Defining_Rem_Operator,
|
|
A_Defining_Exponentiate_Operator,
|
|
A_Defining_Abs_Operator,
|
|
A_Defining_Not_Operator,
|
|
A_Defining_Expanded_Name,
|
|
An_Ordinary_Type_Declaration,
|
|
A_Task_Type_Declaration,
|
|
A_Protected_Type_Declaration,
|
|
An_Incomplete_Type_Declaration,
|
|
A_Tagged_Incomplete_Type_Declaration,
|
|
A_Private_Type_Declaration,
|
|
A_Private_Extension_Declaration,
|
|
A_Subtype_Declaration,
|
|
A_Variable_Declaration,
|
|
A_Constant_Declaration,
|
|
A_Deferred_Constant_Declaration,
|
|
A_Single_Task_Declaration,
|
|
A_Single_Protected_Declaration,
|
|
An_Integer_Number_Declaration,
|
|
A_Real_Number_Declaration,
|
|
An_Enumeration_Literal_Specification,
|
|
A_Discriminant_Specification,
|
|
A_Component_Declaration,
|
|
A_Loop_Parameter_Specification,
|
|
A_Procedure_Declaration,
|
|
A_Function_Declaration,
|
|
A_Parameter_Specification,
|
|
A_Procedure_Body_Declaration,
|
|
A_Function_Body_Declaration,
|
|
A_Return_Object_Declaration,
|
|
A_Null_Procedure_Declaration,
|
|
A_Package_Declaration,
|
|
A_Package_Body_Declaration,
|
|
An_Object_Renaming_Declaration,
|
|
An_Exception_Renaming_Declaration,
|
|
A_Package_Renaming_Declaration,
|
|
A_Procedure_Renaming_Declaration,
|
|
A_Function_Renaming_Declaration,
|
|
A_Generic_Package_Renaming_Declaration,
|
|
A_Generic_Procedure_Renaming_Declaration,
|
|
A_Generic_Function_Renaming_Declaration,
|
|
A_Task_Body_Declaration,
|
|
A_Protected_Body_Declaration,
|
|
An_Entry_Declaration,
|
|
An_Entry_Body_Declaration,
|
|
An_Entry_Index_Specification,
|
|
A_Procedure_Body_Stub,
|
|
A_Function_Body_Stub,
|
|
A_Package_Body_Stub,
|
|
A_Task_Body_Stub,
|
|
A_Protected_Body_Stub,
|
|
An_Exception_Declaration,
|
|
A_Choice_Parameter_Specification,
|
|
A_Generic_Procedure_Declaration,
|
|
A_Generic_Function_Declaration,
|
|
A_Generic_Package_Declaration,
|
|
A_Package_Instantiation,
|
|
A_Procedure_Instantiation,
|
|
A_Function_Instantiation,
|
|
A_Formal_Object_Declaration,
|
|
A_Formal_Type_Declaration,
|
|
A_Formal_Procedure_Declaration,
|
|
A_Formal_Function_Declaration,
|
|
A_Formal_Package_Declaration,
|
|
A_Formal_Package_Declaration_With_Box,
|
|
A_Derived_Type_Definition,
|
|
A_Derived_Record_Extension_Definition,
|
|
An_Enumeration_Type_Definition,
|
|
A_Signed_Integer_Type_Definition,
|
|
A_Modular_Type_Definition,
|
|
A_Root_Integer_Definition,
|
|
A_Root_Real_Definition,
|
|
A_Universal_Integer_Definition,
|
|
A_Universal_Real_Definition,
|
|
A_Universal_Fixed_Definition,
|
|
A_Floating_Point_Definition,
|
|
An_Ordinary_Fixed_Point_Definition,
|
|
A_Decimal_Fixed_Point_Definition,
|
|
An_Unconstrained_Array_Definition,
|
|
A_Constrained_Array_Definition,
|
|
A_Record_Type_Definition,
|
|
A_Tagged_Record_Type_Definition,
|
|
An_Ordinary_Interface,
|
|
A_Limited_Interface,
|
|
A_Task_Interface,
|
|
A_Protected_Interface,
|
|
A_Synchronized_Interface,
|
|
A_Pool_Specific_Access_To_Variable,
|
|
An_Access_To_Variable,
|
|
An_Access_To_Constant,
|
|
An_Access_To_Procedure,
|
|
An_Access_To_Protected_Procedure,
|
|
An_Access_To_Function,
|
|
An_Access_To_Protected_Function,
|
|
A_Subtype_Indication,
|
|
A_Range_Attribute_Reference,
|
|
A_Simple_Expression_Range,
|
|
A_Digits_Constraint,
|
|
A_Delta_Constraint,
|
|
An_Index_Constraint,
|
|
A_Discriminant_Constraint,
|
|
A_Component_Definition,
|
|
A_Discrete_Subtype_Indication_As_Subtype_Definition,
|
|
A_Discrete_Range_Attribute_Reference_As_Subtype_Definition,
|
|
A_Discrete_Simple_Expression_Range_As_Subtype_Definition,
|
|
A_Discrete_Subtype_Indication,
|
|
A_Discrete_Range_Attribute_Reference,
|
|
A_Discrete_Simple_Expression_Range,
|
|
An_Unknown_Discriminant_Part,
|
|
A_Known_Discriminant_Part,
|
|
A_Record_Definition,
|
|
A_Null_Record_Definition,
|
|
A_Null_Component,
|
|
A_Variant_Part,
|
|
A_Variant,
|
|
An_Others_Choice,
|
|
An_Anonymous_Access_To_Variable,
|
|
An_Anonymous_Access_To_Constant,
|
|
An_Anonymous_Access_To_Procedure,
|
|
An_Anonymous_Access_To_Protected_Procedure,
|
|
An_Anonymous_Access_To_Function,
|
|
An_Anonymous_Access_To_Protected_Function,
|
|
A_Private_Type_Definition,
|
|
A_Tagged_Private_Type_Definition,
|
|
A_Private_Extension_Definition,
|
|
A_Task_Definition,
|
|
A_Protected_Definition,
|
|
A_Formal_Private_Type_Definition,
|
|
A_Formal_Tagged_Private_Type_Definition,
|
|
A_Formal_Derived_Type_Definition,
|
|
A_Formal_Discrete_Type_Definition,
|
|
A_Formal_Signed_Integer_Type_Definition,
|
|
A_Formal_Modular_Type_Definition,
|
|
A_Formal_Floating_Point_Definition,
|
|
A_Formal_Ordinary_Fixed_Point_Definition,
|
|
A_Formal_Decimal_Fixed_Point_Definition,
|
|
A_Formal_Ordinary_Interface,
|
|
A_Formal_Limited_Interface,
|
|
A_Formal_Task_Interface,
|
|
A_Formal_Protected_Interface,
|
|
A_Formal_Synchronized_Interface,
|
|
A_Formal_Unconstrained_Array_Definition,
|
|
A_Formal_Constrained_Array_Definition,
|
|
A_Formal_Pool_Specific_Access_To_Variable,
|
|
A_Formal_Access_To_Variable,
|
|
A_Formal_Access_To_Constant,
|
|
A_Formal_Access_To_Procedure,
|
|
A_Formal_Access_To_Protected_Procedure,
|
|
A_Formal_Access_To_Function,
|
|
A_Formal_Access_To_Protected_Function,
|
|
An_Integer_Literal,
|
|
A_Real_Literal,
|
|
A_String_Literal,
|
|
An_Identifier,
|
|
An_And_Operator,
|
|
An_Or_Operator,
|
|
An_Xor_Operator,
|
|
An_Equal_Operator,
|
|
A_Not_Equal_Operator,
|
|
A_Less_Than_Operator,
|
|
A_Less_Than_Or_Equal_Operator,
|
|
A_Greater_Than_Operator,
|
|
A_Greater_Than_Or_Equal_Operator,
|
|
A_Plus_Operator,
|
|
A_Minus_Operator,
|
|
A_Concatenate_Operator,
|
|
A_Unary_Plus_Operator,
|
|
A_Unary_Minus_Operator,
|
|
A_Multiply_Operator,
|
|
A_Divide_Operator,
|
|
A_Mod_Operator,
|
|
A_Rem_Operator,
|
|
An_Exponentiate_Operator,
|
|
An_Abs_Operator,
|
|
A_Not_Operator,
|
|
A_Character_Literal,
|
|
An_Enumeration_Literal,
|
|
An_Explicit_Dereference,
|
|
A_Function_Call,
|
|
An_Indexed_Component,
|
|
A_Slice,
|
|
A_Selected_Component,
|
|
An_Access_Attribute,
|
|
An_Address_Attribute,
|
|
An_Adjacent_Attribute,
|
|
An_Aft_Attribute,
|
|
An_Alignment_Attribute,
|
|
A_Base_Attribute,
|
|
A_Bit_Order_Attribute,
|
|
A_Body_Version_Attribute,
|
|
A_Callable_Attribute,
|
|
A_Caller_Attribute,
|
|
A_Ceiling_Attribute,
|
|
A_Class_Attribute,
|
|
A_Component_Size_Attribute,
|
|
A_Compose_Attribute,
|
|
A_Constrained_Attribute,
|
|
A_Copy_Sign_Attribute,
|
|
A_Count_Attribute,
|
|
A_Definite_Attribute,
|
|
A_Delta_Attribute,
|
|
A_Denorm_Attribute,
|
|
A_Digits_Attribute,
|
|
An_Exponent_Attribute,
|
|
An_External_Tag_Attribute,
|
|
A_First_Attribute,
|
|
A_First_Bit_Attribute,
|
|
A_Floor_Attribute,
|
|
A_Fore_Attribute,
|
|
A_Fraction_Attribute,
|
|
An_Identity_Attribute,
|
|
An_Image_Attribute,
|
|
An_Input_Attribute,
|
|
A_Last_Attribute,
|
|
A_Last_Bit_Attribute,
|
|
A_Leading_Part_Attribute,
|
|
A_Length_Attribute,
|
|
A_Machine_Attribute,
|
|
A_Machine_Emax_Attribute,
|
|
A_Machine_Emin_Attribute,
|
|
A_Machine_Mantissa_Attribute,
|
|
A_Machine_Overflows_Attribute,
|
|
A_Machine_Radix_Attribute,
|
|
A_Machine_Rounds_Attribute,
|
|
A_Max_Attribute,
|
|
A_Max_Size_In_Storage_Elements_Attribute,
|
|
A_Min_Attribute,
|
|
A_Model_Attribute,
|
|
A_Model_Emin_Attribute,
|
|
A_Model_Epsilon_Attribute,
|
|
A_Model_Mantissa_Attribute,
|
|
A_Model_Small_Attribute,
|
|
A_Modulus_Attribute,
|
|
An_Output_Attribute,
|
|
A_Partition_ID_Attribute,
|
|
A_Pos_Attribute,
|
|
A_Position_Attribute,
|
|
A_Pred_Attribute,
|
|
A_Range_Attribute,
|
|
A_Read_Attribute,
|
|
A_Remainder_Attribute,
|
|
A_Round_Attribute,
|
|
A_Rounding_Attribute,
|
|
A_Safe_First_Attribute,
|
|
A_Safe_Last_Attribute,
|
|
A_Scale_Attribute,
|
|
A_Scaling_Attribute,
|
|
A_Signed_Zeros_Attribute,
|
|
A_Size_Attribute,
|
|
A_Small_Attribute,
|
|
A_Storage_Pool_Attribute,
|
|
A_Storage_Size_Attribute,
|
|
A_Succ_Attribute,
|
|
A_Tag_Attribute,
|
|
A_Terminated_Attribute,
|
|
A_Truncation_Attribute,
|
|
An_Unbiased_Rounding_Attribute,
|
|
An_Unchecked_Access_Attribute,
|
|
A_Val_Attribute,
|
|
A_Valid_Attribute,
|
|
A_Value_Attribute,
|
|
A_Version_Attribute,
|
|
A_Wide_Image_Attribute,
|
|
A_Wide_Value_Attribute,
|
|
A_Wide_Width_Attribute,
|
|
A_Width_Attribute,
|
|
A_Write_Attribute,
|
|
A_Machine_Rounding_Attribute,
|
|
A_Mod_Attribute,
|
|
A_Priority_Attribute,
|
|
A_Stream_Size_Attribute,
|
|
A_Wide_Wide_Image_Attribute,
|
|
A_Wide_Wide_Value_Attribute,
|
|
A_Wide_Wide_Width_Attribute,
|
|
An_Implementation_Defined_Attribute,
|
|
An_Unknown_Attribute,
|
|
A_Record_Aggregate,
|
|
An_Extension_Aggregate,
|
|
A_Positional_Array_Aggregate,
|
|
A_Named_Array_Aggregate,
|
|
An_And_Then_Short_Circuit,
|
|
An_Or_Else_Short_Circuit,
|
|
An_In_Range_Membership_Test,
|
|
A_Not_In_Range_Membership_Test,
|
|
An_In_Type_Membership_Test,
|
|
A_Not_In_Type_Membership_Test,
|
|
A_Null_Literal,
|
|
A_Parenthesized_Expression,
|
|
A_Type_Conversion,
|
|
A_Qualified_Expression,
|
|
An_Allocation_From_Subtype,
|
|
An_Allocation_From_Qualified_Expression,
|
|
A_Pragma_Argument_Association,
|
|
A_Discriminant_Association,
|
|
A_Record_Component_Association,
|
|
An_Array_Component_Association,
|
|
A_Parameter_Association,
|
|
A_Generic_Association,
|
|
A_Null_Statement,
|
|
An_Assignment_Statement,
|
|
An_If_Statement,
|
|
A_Case_Statement,
|
|
A_Loop_Statement,
|
|
A_While_Loop_Statement,
|
|
A_For_Loop_Statement,
|
|
A_Block_Statement,
|
|
An_Exit_Statement,
|
|
A_Goto_Statement,
|
|
A_Procedure_Call_Statement,
|
|
A_Return_Statement,
|
|
An_Extended_Return_Statement,
|
|
An_Accept_Statement,
|
|
An_Entry_Call_Statement,
|
|
A_Requeue_Statement,
|
|
A_Requeue_Statement_With_Abort,
|
|
A_Delay_Until_Statement,
|
|
A_Delay_Relative_Statement,
|
|
A_Terminate_Alternative_Statement,
|
|
A_Selective_Accept_Statement,
|
|
A_Timed_Entry_Call_Statement,
|
|
A_Conditional_Entry_Call_Statement,
|
|
An_Asynchronous_Select_Statement,
|
|
An_Abort_Statement,
|
|
A_Raise_Statement,
|
|
A_Code_Statement,
|
|
An_If_Path,
|
|
An_Elsif_Path,
|
|
An_Else_Path,
|
|
A_Case_Path,
|
|
A_Select_Path,
|
|
An_Or_Path,
|
|
A_Then_Abort_Path,
|
|
A_Use_Package_Clause,
|
|
A_Use_Type_Clause,
|
|
A_With_Clause,
|
|
An_Attribute_Definition_Clause,
|
|
An_Enumeration_Representation_Clause,
|
|
A_Record_Representation_Clause,
|
|
An_At_Clause,
|
|
A_Component_Clause,
|
|
An_Exception_Handler,
|
|
Non_Trivial_Mapping,
|
|
Not_Implemented_Mapping,
|
|
Trivial_Mapping,
|
|
No_Mapping);
|
|
|
|
subtype Internal_Expression_Kinds is Internal_Element_Kinds
|
|
range An_Integer_Literal .. An_Allocation_From_Qualified_Expression;
|
|
|
|
subtype Internal_Operator_Symbol_Kinds is Internal_Expression_Kinds
|
|
range An_And_Operator .. A_Not_Operator;
|
|
|
|
function Int_Kind (E : Element) return Internal_Element_Kinds;
|
|
|
|
end Case_Optimization_Pkg1;
|