-- Meta description of nodes.
-- Copyright (C) 2014 Tristan Gingold
--
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 2 of the License, or
-- (at your option) any later version.
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <gnu.org/licenses>.
package body Vhdl.Nodes_Meta is
Fields_Type : constant array (Fields_Enum) of Types_Enum :=
(
Field_First_Design_Unit => Type_Iir,
Field_Last_Design_Unit => Type_Iir,
Field_Library_Declaration => Type_Iir,
Field_File_Checksum => Type_File_Checksum_Id,
Field_Analysis_Time_Stamp => Type_Time_Stamp_Id,
Field_Design_File_Source => Type_Source_File_Entry,
Field_Library => Type_Iir,
Field_File_Dependence_List => Type_Iir_List,
Field_Design_File_Filename => Type_Name_Id,
Field_Design_File_Directory => Type_Name_Id,
Field_Design_File => Type_Iir,
Field_Design_File_Chain => Type_Iir,
Field_Library_Directory => Type_Name_Id,
Field_Date => Type_Date_Type,
Field_Context_Items => Type_Iir,
Field_Dependence_List => Type_Iir_List,
Field_Analysis_Checks_List => Type_Iir_List,
Field_Date_State => Type_Date_State_Type,
Field_Guarded_Target_State => Type_Tri_State_Type,
Field_Library_Unit => Type_Iir,
Field_Hash_Chain => Type_Iir,
Field_Design_Unit_Source_Pos => Type_Source_Ptr,
Field_Design_Unit_Source_Line => Type_Int32,
Field_Design_Unit_Source_Col => Type_Int32,
Field_Value => Type_Int64,
Field_Enum_Pos => Type_Iir_Int32,
Field_Physical_Literal => Type_Iir,
Field_Fp_Value => Type_Fp64,
Field_Simple_Aggregate_List => Type_Iir_Flist,
Field_String8_Id => Type_String8_Id,
Field_String_Length => Type_Int32,
Field_Bit_String_Base => Type_Number_Base_Type,
Field_Has_Signed => Type_Boolean,
Field_Has_Sign => Type_Boolean,
Field_Has_Length => Type_Boolean,
Field_Literal_Length => Type_Int32,
Field_Literal_Origin => Type_Iir,
Field_Range_Origin => Type_Iir,
Field_Literal_Subtype => Type_Iir,
Field_Allocator_Subtype => Type_Iir,
Field_Entity_Class => Type_Token_Type,
Field_Entity_Name_List => Type_Iir_Flist,
Field_Attribute_Designator => Type_Iir,
Field_Attribute_Specification_Chain => Type_Iir,
Field_Attribute_Specification => Type_Iir,
Field_Static_Attribute_Flag => Type_Boolean,
Field_Signal_List => Type_Iir_Flist,
Field_Quantity_List => Type_Iir_Flist,
Field_Designated_Entity => Type_Iir,
Field_Formal => Type_Iir,
Field_Actual => Type_Iir,
Field_Actual_Conversion => Type_Iir,
Field_Formal_Conversion => Type_Iir,
Field_Whole_Association_Flag => Type_Boolean,
Field_Collapse_Signal_Flag => Type_Boolean,
Field_Artificial_Flag => Type_Boolean,
Field_Open_Flag => Type_Boolean,
Field_After_Drivers_Flag => Type_Boolean,
Field_We_Value => Type_Iir,
Field_Time => Type_Iir,
Field_Associated_Expr => Type_Iir,
Field_Associated_Block => Type_Iir,
Field_Associated_Chain => Type_Iir,
Field_Choice_Name => Type_Iir,
Field_Choice_Expression => Type_Iir,
Field_Choice_Range => Type_Iir,
Field_Same_Alternative_Flag => Type_Boolean,
Field_Element_Type_Flag => Type_Boolean,
Field_Architecture => Type_Iir,
Field_Block_Specification => Type_Iir,
Field_Prev_Block_Configuration => Type_Iir,
Field_Configuration_Item_Chain => Type_Iir,
Field_Attribute_Value_Chain => Type_Iir,
Field_Spec_Chain => Type_Iir,
Field_Value_Chain => Type_Iir,
Field_Attribute_Value_Spec_Chain => Type_Iir,
Field_Entity_Name => Type_Iir,
Field_Package => Type_Iir,
Field_Package_Body => Type_Iir,
Field_Instance_Package_Body => Type_Iir,
Field_Need_Body => Type_Boolean,
Field_Macro_Expanded_Flag => Type_Boolean,
Field_Need_Instance_Bodies => Type_Boolean,
Field_Hierarchical_Name => Type_Iir,
Field_Inherit_Spec_Chain => Type_Iir,
Field_Vunit_Item_Chain => Type_Iir,
Field_Bound_Vunit_Chain => Type_Iir,
Field_Verification_Block_Configuration => Type_Iir,
Field_Block_Configuration => Type_Iir,
Field_Concurrent_Statement_Chain => Type_Iir,
Field_Chain => Type_Iir,
Field_Port_Chain => Type_Iir,
Field_Generic_Chain => Type_Iir,
Field_Type => Type_Iir,
Field_Subtype_Indication => Type_Iir,
Field_Discrete_Range => Type_Iir,
Field_Type_Definition => Type_Iir,
Field_Subtype_Definition => Type_Iir,
Field_Incomplete_Type_Declaration => Type_Iir,
Field_Interface_Type_Subprograms => Type_Iir,
Field_Nature_Definition => Type_Iir,
Field_Nature => Type_Iir,
Field_Subnature_Indication => Type_Iir,
Field_Mode => Type_Iir_Mode,
Field_Guarded_Signal_Flag => Type_Boolean,
Field_Signal_Kind => Type_Iir_Signal_Kind,
Field_Base_Name => Type_Iir,
Field_Interface_Declaration_Chain => Type_Iir,
Field_Subprogram_Specification => Type_Iir,
Field_Sequential_Statement_Chain => Type_Iir,
Field_Simultaneous_Statement_Chain => Type_Iir,
Field_Subprogram_Body => Type_Iir,
Field_Overload_Number => Type_Iir_Int32,
Field_Subprogram_Depth => Type_Iir_Int32,
Field_Subprogram_Hash => Type_Iir_Int32,
Field_Impure_Depth => Type_Iir_Int32,
Field_Return_Type => Type_Iir,
Field_Implicit_Definition => Type_Iir_Predefined_Functions,
Field_Uninstantiated_Subprogram_Name => Type_Iir,
Field_Default_Value => Type_Iir,
Field_Deferred_Declaration => Type_Iir,
Field_Deferred_Declaration_Flag => Type_Boolean,
Field_Shared_Flag => Type_Boolean,
Field_Design_Unit => Type_Iir,
Field_Block_Statement => Type_Iir,
Field_Signal_Driver => Type_Iir,
Field_Declaration_Chain => Type_Iir,
Field_File_Logical_Name => Type_Iir,
Field_File_Open_Kind => Type_Iir,
Field_Element_Position => Type_Iir_Index32,
Field_Use_Clause_Chain => Type_Iir,
Field_Context_Reference_Chain => Type_Iir,
Field_Selected_Name => Type_Iir,
Field_Type_Declarator => Type_Iir,
Field_Complete_Type_Definition => Type_Iir,
Field_Incomplete_Type_Ref_Chain => Type_Iir,
Field_Associated_Type => Type_Iir,
Field_Enumeration_Literal_List => Type_Iir_Flist,
Field_Entity_Class_Entry_Chain => Type_Iir,
Field_Group_Constituent_List => Type_Iir_Flist,
Field_Unit_Chain => Type_Iir,
Field_Primary_Unit => Type_Iir,
Field_Identifier => Type_Name_Id,
Field_Label => Type_Name_Id,
Field_Visible_Flag => Type_Boolean,
Field_Range_Constraint => Type_Iir,
Field_Direction => Type_Direction_Type,
Field_Left_Limit => Type_Iir,
Field_Right_Limit => Type_Iir,
Field_Left_Limit_Expr => Type_Iir,
Field_Right_Limit_Expr => Type_Iir,
Field_Parent_Type => Type_Iir,
Field_Simple_Nature => Type_Iir,
Field_Base_Nature => Type_Iir,
Field_Resolution_Indication => Type_Iir,
Field_Record_Element_Resolution_Chain => Type_Iir,
Field_Tolerance => Type_Iir,
Field_Plus_Terminal_Name => Type_Iir,
Field_Minus_Terminal_Name => Type_Iir,
Field_Plus_Terminal => Type_Iir,
Field_Minus_Terminal => Type_Iir,
Field_Magnitude_Expression => Type_Iir,
Field_Phase_Expression => Type_Iir,
Field_Power_Expression => Type_Iir,
Field_Simultaneous_Left => Type_Iir,
Field_Simultaneous_Right => Type_Iir,
Field_Text_File_Flag => Type_Boolean,
Field_Only_Characters_Flag => Type_Boolean,
Field_Is_Character_Type => Type_Boolean,
Field_Nature_Staticness => Type_Iir_Staticness,
Field_Type_Staticness => Type_Iir_Staticness,
Field_Constraint_State => Type_Iir_Constraint,
Field_Index_Subtype_List => Type_Iir_Flist,
Field_Index_Subtype_Definition_List => Type_Iir_Flist,
Field_Element_Subtype_Indication => Type_Iir,
Field_Element_Subtype => Type_Iir,
Field_Element_Subnature_Indication => Type_Iir,
Field_Element_Subnature => Type_Iir,
Field_Index_Constraint_List => Type_Iir_Flist,
Field_Array_Element_Constraint => Type_Iir,
Field_Has_Array_Constraint_Flag => Type_Boolean,
Field_Has_Element_Constraint_Flag => Type_Boolean,
Field_Elements_Declaration_List => Type_Iir_Flist,
Field_Owned_Elements_Chain => Type_Iir,
Field_Designated_Type => Type_Iir,
Field_Designated_Subtype_Indication => Type_Iir,
Field_Index_List => Type_Iir_Flist,
Field_Reference => Type_Iir,
Field_Nature_Declarator => Type_Iir,
Field_Across_Type_Mark => Type_Iir,
Field_Through_Type_Mark => Type_Iir,
Field_Across_Type_Definition => Type_Iir,
Field_Through_Type_Definition => Type_Iir,
Field_Across_Type => Type_Iir,
Field_Through_Type => Type_Iir,
Field_Target => Type_Iir,
Field_Waveform_Chain => Type_Iir,
Field_Guard => Type_Iir,
Field_Delay_Mechanism => Type_Iir_Delay_Mechanism,
Field_Reject_Time_Expression => Type_Iir,
Field_Force_Mode => Type_Iir_Force_Mode,
Field_Has_Force_Mode => Type_Boolean,
Field_Sensitivity_List => Type_Iir_List,
Field_Process_Origin => Type_Iir,
Field_Package_Origin => Type_Iir,
Field_Condition_Clause => Type_Iir,
Field_Break_Element => Type_Iir,
Field_Selector_Quantity => Type_Iir,
Field_Break_Quantity => Type_Iir,
Field_Timeout_Clause => Type_Iir,
Field_Postponed_Flag => Type_Boolean,
Field_Callees_List => Type_Iir_List,
Field_Passive_Flag => Type_Boolean,
Field_Resolution_Function_Flag => Type_Boolean,
Field_Wait_State => Type_Tri_State_Type,
Field_All_Sensitized_State => Type_Iir_All_Sensitized,
Field_Seen_Flag => Type_Boolean,
Field_Pure_Flag => Type_Boolean,
Field_Foreign_Flag => Type_Boolean,
Field_Resolved_Flag => Type_Boolean,
Field_Signal_Type_Flag => Type_Boolean,
Field_Has_Signal_Flag => Type_Boolean,
Field_Purity_State => Type_Iir_Pure_State,
Field_Elab_Flag => Type_Boolean,
Field_Vendor_Library_Flag => Type_Boolean,
Field_Configuration_Mark_Flag => Type_Boolean,
Field_Configuration_Done_Flag => Type_Boolean,
Field_Index_Constraint_Flag => Type_Boolean,
Field_Hide_Implicit_Flag => Type_Boolean,
Field_Assertion_Condition => Type_Iir,
Field_Report_Expression => Type_Iir,
Field_Severity_Expression => Type_Iir,
Field_Instantiated_Unit => Type_Iir,
Field_Generic_Map_Aspect_Chain => Type_Iir,
Field_Port_Map_Aspect_Chain => Type_Iir,
Field_Configuration_Name => Type_Iir,
Field_Component_Configuration => Type_Iir,
Field_Configuration_Specification => Type_Iir,
Field_Default_Binding_Indication => Type_Iir,
Field_Default_Configuration_Declaration => Type_Iir,
Field_Expression => Type_Iir,
Field_Conditional_Expression_Chain => Type_Iir,
Field_Allocator_Designated_Type => Type_Iir,
Field_Selected_Waveform_Chain => Type_Iir,
Field_Conditional_Waveform_Chain => Type_Iir,
Field_Guard_Expression => Type_Iir,
Field_Guard_Decl => Type_Iir,
Field_Guard_Sensitivity_List => Type_Iir_List,
Field_Signal_Attribute_Chain => Type_Iir,
Field_Block_Block_Configuration => Type_Iir,
Field_Package_Header => Type_Iir,
Field_Block_Header => Type_Iir,
Field_Uninstantiated_Package_Name => Type_Iir,
Field_Uninstantiated_Package_Decl => Type_Iir,
Field_Instance_Source_File => Type_Source_File_Entry,
Field_Generate_Block_Configuration => Type_Iir,
Field_Generate_Statement_Body => Type_Iir,
Field_Alternative_Label => Type_Name_Id,
Field_Generate_Else_Clause => Type_Iir,
Field_Condition => Type_Iir,
Field_Else_Clause => Type_Iir,
Field_Parameter_Specification => Type_Iir,
Field_Parent => Type_Iir,
Field_Loop_Label => Type_Iir,
Field_Exit_Flag => Type_Boolean,
Field_Next_Flag => Type_Boolean,
Field_Component_Name => Type_Iir,
Field_Instantiation_List => Type_Iir_Flist,
Field_Entity_Aspect => Type_Iir,
Field_Default_Entity_Aspect => Type_Iir,
Field_Binding_Indication => Type_Iir,
Field_Named_Entity => Type_Iir,
Field_Alias_Declaration => Type_Iir,
Field_Referenced_Name => Type_Iir,
Field_Expr_Staticness => Type_Iir_Staticness,
Field_Scalar_Size => Type_Scalar_Size,
Field_Error_Origin => Type_Iir,
Field_Operand => Type_Iir,
Field_Left => Type_Iir,
Field_Right => Type_Iir,
Field_Unit_Name => Type_Iir,
Field_Name => Type_Iir,
Field_Group_Template_Name => Type_Iir,
Field_Name_Staticness => Type_Iir_Staticness,
Field_Prefix => Type_Iir,
Field_Signature_Prefix => Type_Iir,
Field_External_Pathname => Type_Iir,
Field_Pathname_Suffix => Type_Iir,
Field_Pathname_Expression => Type_Iir,
Field_In_Formal_Flag => Type_Boolean,
Field_Slice_Subtype => Type_Iir,
Field_Suffix => Type_Iir,
Field_Index_Subtype => Type_Iir,
Field_Parameter => Type_Iir,
Field_Parameter_2 => Type_Iir,
Field_Parameter_3 => Type_Iir,
Field_Parameter_4 => Type_Iir,
Field_Attr_Chain => Type_Iir,
Field_Signal_Attribute_Declaration => Type_Iir,
Field_Actual_Type => Type_Iir,
Field_Actual_Type_Definition => Type_Iir,
Field_Association_Chain => Type_Iir,
Field_Individual_Association_Chain => Type_Iir,
Field_Subprogram_Association_Chain => Type_Iir,
Field_Aggregate_Info => Type_Iir,
Field_Sub_Aggregate_Info => Type_Iir,
Field_Aggr_Dynamic_Flag => Type_Boolean,
Field_Aggr_Min_Length => Type_Iir_Int32,
Field_Aggr_Low_Limit => Type_Iir,
Field_Aggr_High_Limit => Type_Iir,
Field_Aggr_Others_Flag => Type_Boolean,
Field_Aggr_Named_Flag => Type_Boolean,
Field_Aggregate_Expand_Flag => Type_Boolean,
Field_Association_Choices_Chain => Type_Iir,
Field_Case_Statement_Alternative_Chain => Type_Iir,
Field_Choice_Staticness => Type_Iir_Staticness,
Field_Procedure_Call => Type_Iir,
Field_Implementation => Type_Iir,
Field_Parameter_Association_Chain => Type_Iir,
Field_Method_Object => Type_Iir,
Field_Subtype_Type_Mark => Type_Iir,
Field_Subnature_Nature_Mark => Type_Iir,
Field_Type_Conversion_Subtype => Type_Iir,
Field_Type_Mark => Type_Iir,
Field_File_Type_Mark => Type_Iir,
Field_Return_Type_Mark => Type_Iir,
Field_Has_Disconnect_Flag => Type_Boolean,
Field_Has_Active_Flag => Type_Boolean,
Field_Is_Within_Flag => Type_Boolean,
Field_Type_Marks_List => Type_Iir_Flist,
Field_Implicit_Alias_Flag => Type_Boolean,
Field_Alias_Signature => Type_Iir,
Field_Attribute_Signature => Type_Iir,
Field_Overload_List => Type_Iir_List,
Field_Simple_Name_Identifier => Type_Name_Id,
Field_Simple_Name_Subtype => Type_Iir,
Field_Protected_Type_Body => Type_Iir,
Field_Protected_Type_Declaration => Type_Iir,
Field_Use_Flag => Type_Boolean,
Field_End_Has_Reserved_Id => Type_Boolean,
Field_End_Has_Identifier => Type_Boolean,
Field_End_Has_Postponed => Type_Boolean,
Field_Has_Label => Type_Boolean,
Field_Has_Begin => Type_Boolean,
Field_Has_End => Type_Boolean,
Field_Has_Is => Type_Boolean,
Field_Has_Pure => Type_Boolean,
Field_Has_Body => Type_Boolean,
Field_Has_Parameter => Type_Boolean,
Field_Has_Component => Type_Boolean,
Field_Has_Identifier_List => Type_Boolean,
Field_Has_Mode => Type_Boolean,
Field_Has_Class => Type_Boolean,
Field_Has_Delay_Mechanism => Type_Boolean,
Field_Suspend_Flag => Type_Boolean,
Field_Is_Ref => Type_Boolean,
Field_Is_Forward_Ref => Type_Boolean,
Field_Psl_Property => Type_PSL_Node,
Field_Psl_Sequence => Type_PSL_Node,
Field_Psl_Declaration => Type_PSL_Node,
Field_Psl_Expression => Type_PSL_Node,
Field_Psl_Boolean => Type_PSL_Node,
Field_PSL_Clock => Type_PSL_Node,
Field_PSL_NFA => Type_PSL_NFA,
Field_PSL_Nbr_States => Type_Int32,
Field_PSL_Clock_Sensitivity => Type_Iir_List,
Field_PSL_EOS_Flag => Type_Boolean,
Field_Count_Expression => Type_Iir,
Field_Clock_Expression => Type_Iir,
Field_Default_Clock => Type_Iir
);
function Get_Field_Type (F : Fields_Enum) return Types_Enum is
begin
return Fields_Type (F);
end Get_Field_Type;
function Get_Field_Image (F : Fields_Enum) return String is
begin
case F is
when Field_First_Design_Unit =>
return "first_design_unit";
when Field_Last_Design_Unit =>
return "last_design_unit";
when Field_Library_Declaration =>
return "library_declaration";
when Field_File_Checksum =>
return "file_checksum";
when Field_Analysis_Time_Stamp =>
return "analysis_time_stamp";
when Field_Design_File_Source =>
return "design_file_source";
when Field_Library =>
return "library";
when Field_File_Dependence_List =>
return "file_dependence_list";
when Field_Design_File_Filename =>
return "design_file_filename";
when Field_Design_File_Directory =>
return "design_file_directory";
when Field_Design_File =>
return "design_file";
when Field_Design_File_Chain =>
return "design_file_chain";
when Field_Library_Directory =>
return "library_directory";
when Field_Date =>
return "date";
when Field_Context_Items =>
return "context_items";
when Field_Dependence_List =>
return "dependence_list";
when Field_Analysis_Checks_List =>
return "analysis_checks_list";
when Field_Date_State =>
return "date_state";
when Field_Guarded_Target_State =>
return "guarded_target_state";
when Field_Library_Unit =>
return "library_unit";
when Field_Hash_Chain =>
return "hash_chain";
when Field_Design_Unit_Source_Pos =>
return "design_unit_source_pos";
when Field_Design_Unit_Source_Line =>
return "design_unit_source_line";
when Field_Design_Unit_Source_Col =>
return "design_unit_source_col";
when Field_Value =>
return "value";
when Field_Enum_Pos =>
return "enum_pos";
when Field_Physical_Literal =>
return "physical_literal";
when Field_Fp_Value =>
return "fp_value";
when Field_Simple_Aggregate_List =>
return "simple_aggregate_list";
when Field_String8_Id =>
return "string8_id";
when Field_String_Length =>
return "string_length";
when Field_Bit_String_Base =>
return "bit_string_base";
when Field_Has_Signed =>
return "has_signed";
when Field_Has_Sign =>
return "has_sign";
when Field_Has_Length =>
return "has_length";
when Field_Literal_Length =>
return "literal_length";
when Field_Literal_Origin =>
return "literal_origin";
when Field_Range_Origin =>
return "range_origin";
when Field_Literal_Subtype =>
return "literal_subtype";
when Field_Allocator_Subtype =>
return "allocator_subtype";
when Field_Entity_Class =>
return "entity_class";
when Field_Entity_Name_List =>
return "entity_name_list";
when Field_Attribute_Designator =>
return "attribute_designator";
when Field_Attribute_Specification_Chain =>
return "attribute_specification_chain";
when Field_Attribute_Specification =>
return "attribute_specification";
when Field_Static_Attribute_Flag =>
return "static_attribute_flag";
when Field_Signal_List =>
return "signal_list";
when Field_Quantity_List =>
return "quantity_list";
when Field_Designated_Entity =>
return "designated_entity";
when Field_Formal =>
return "formal";
when Field_Actual =>
return "actual";
when Field_Actual_Conversion =>
return "actual_conversion";
when Field_Formal_Conversion =>
return "formal_conversion";
when Field_Whole_Association_Flag =>
return "whole_association_flag";
when Field_Collapse_Signal_Flag =>
return "collapse_signal_flag";
when Field_Artificial_Flag =>
return "artificial_flag";
when Field_Open_Flag =>
return "open_flag";
when Field_After_Drivers_Flag =>
return "after_drivers_flag";
when Field_We_Value =>
return "we_value";
when Field_Time =>
return "time";
when Field_Associated_Expr =>
return "associated_expr";
when Field_Associated_Block =>
return "associated_block";
when Field_Associated_Chain =>
return "associated_chain";
when Field_Choice_Name =>
return "choice_name";
when Field_Choice_Expression =>
return "choice_expression";
when Field_Choice_Range =>
return "choice_range";
when Field_Same_Alternative_Flag =>
return "same_alternative_flag";
when Field_Element_Type_Flag =>
return "element_type_flag";
when Field_Architecture =>
return "architecture";
when Field_Block_Specification =>
return "block_specification";
when Field_Prev_Block_Configuration =>
return "prev_block_configuration";
when Field_Configuration_Item_Chain =>
return "configuration_item_chain";
when Field_Attribute_Value_Chain =>
return "attribute_value_chain";
when Field_Spec_Chain =>
return "spec_chain";
when Field_Value_Chain =>
return "value_chain";
when Field_Attribute_Value_Spec_Chain =>
return "attribute_value_spec_chain";
when Field_Entity_Name =>
return "entity_name";
when Field_Package =>
return "package";
when Field_Package_Body =>
return "package_body";
when Field_Instance_Package_Body =>
return "instance_package_body";
when Field_Need_Body =>
return "need_body";
when Field_Macro_Expanded_Flag =>
return "macro_expanded_flag";
when Field_Need_Instance_Bodies =>
return "need_instance_bodies";
when Field_Hierarchical_Name =>
return "hierarchical_name";
when Field_Inherit_Spec_Chain =>
return "inherit_spec_chain";
when Field_Vunit_Item_Chain =>
return "vunit_item_chain";
when Field_Bound_Vunit_Chain =>
return "bound_vunit_chain";
when Field_Verification_Block_Configuration =>
return "verification_block_configuration";
when Field_Block_Configuration =>
return "block_configuration";
when Field_Concurrent_Statement_Chain =>
return "concurrent_statement_chain";
when Field_Chain =>
return "chain";
when Field_Port_Chain =>
return "port_chain";
when Field_Generic_Chain =>
return "generic_chain";
when Field_Type =>
return "type";
when Field_Subtype_Indication =>
return "subtype_indication";
when Field_Discrete_Range =>
return "discrete_range";
when Field_Type_Definition =>
return "type_definition";
when Field_Subtype_Definition =>
return "subtype_definition";
when Field_Incomplete_Type_Declaration =>
return "incomplete_type_declaration";
when Field_Interface_Type_Subprograms =>
return "interface_type_subprograms";
when Field_Nature_Definition =>
return "nature_definition";
when Field_Nature =>
return "nature";
when Field_Subnature_Indication =>
return "subnature_indication";
when Field_Mode =>
return "mode";
when Field_Guarded_Signal_Flag =>
return "guarded_signal_flag";
when Field_Signal_Kind =>
return "signal_kind";
when Field_Base_Name =>
return "base_name";
when Field_Interface_Declaration_Chain =>
return "interface_declaration_chain";
when Field_Subprogram_Specification =>
return "subprogram_specification";
when Field_Sequential_Statement_Chain =>
return "sequential_statement_chain";
when Field_Simultaneous_Statement_Chain =>
return "simultaneous_statement_chain";
when Field_Subprogram_Body =>
return "subprogram_body";
when Field_Overload_Number =>
return "overload_number";
when Field_Subprogram_Depth =>
return "subprogram_depth";
when Field_Subprogram_Hash =>
return "subprogram_hash";
when Field_Impure_Depth =>
return "impure_depth";
when Field_Return_Type =>
return "return_type";
when Field_Implicit_Definition =>
return "implicit_definition";
when Field_Uninstantiated_Subprogram_Name =>
return "uninstantiated_subprogram_name";
when Field_Default_Value =>
return "default_value";
when Field_Deferred_Declaration =>
return "deferred_declaration";
when Field_Deferred_Declaration_Flag =>
return "deferred_declaration_flag";
when Field_Shared_Flag =>
return "shared_flag";
when Field_Design_Unit =>
return "design_unit";
when Field_Block_Statement =>
return "block_statement";
when Field_Signal_Driver =>
return "signal_driver";
when Field_Declaration_Chain =>
return "declaration_chain";
when Field_File_Logical_Name =>
return "file_logical_name";
when Field_File_Open_Kind =>
return "file_open_kind";
when Field_Element_Position =>
return "element_position";
when Field_Use_Clause_Chain =>
return "use_clause_chain";
when Field_Context_Reference_Chain =>
return "context_reference_chain";
when Field_Selected_Name =>
return "selected_name";
when Field_Type_Declarator =>
return "type_declarator";
when Field_Complete_Type_Definition =>
return "complete_type_definition";
when Field_Incomplete_Type_Ref_Chain =>
return "incomplete_type_ref_chain";
when Field_Associated_Type =>
return "associated_type";
when Field_Enumeration_Literal_List =>
return "enumeration_literal_list";
when Field_Entity_Class_Entry_Chain =>
return "entity_class_entry_chain";
when Field_Group_Constituent_List =>
return "group_constituent_list";
when Field_Unit_Chain =>
return "unit_chain";
when Field_Primary_Unit =>
return "primary_unit";
when Field_Identifier =>
return "identifier";
when Field_Label =>
return "label";
when Field_Visible_Flag =>
return "visible_flag";
when Field_Range_Constraint =>
return "range_constraint";
when Field_Direction =>
return "direction";
when Field_Left_Limit =>
return "left_limit";
when Field_Right_Limit =>
return "right_limit";
when Field_Left_Limit_Expr =>
return "left_limit_expr";
when Field_Right_Limit_Expr =>
return "right_limit_expr";
when Field_Parent_Type =>
return "parent_type";
when Field_Simple_Nature =>
return "simple_nature";
when Field_Base_Nature =>
return "base_nature";
when Field_Resolution_Indication =>
return "resolution_indication";
when Field_Record_Element_Resolution_Chain =>
return "record_element_resolution_chain";
when Field_Tolerance =>
return "tolerance";
when Field_Plus_Terminal_Name =>
return "plus_terminal_name";
when Field_Minus_Terminal_Name =>
return "minus_terminal_name";
when Field_Plus_Terminal =>
return "plus_terminal";
when Field_Minus_Terminal =>
return "minus_terminal";
when Field_Magnitude_Expression =>
return "magnitude_expression";
when Field_Phase_Expression =>
return "phase_expression";
when Field_Power_Expression =>
return "power_expression";
when Field_Simultaneous_Left =>
return "simultaneous_left";
when Field_Simultaneous_Right =>
return "simultaneous_right";
when Field_Text_File_Flag =>
return "text_file_flag";
when Field_Only_Characters_Flag =>
return "only_characters_flag";
when Field_Is_Character_Type =>
return "is_character_type";
when Field_Nature_Staticness =>
return "nature_staticness";
when Field_Type_Staticness =>
return "type_staticness";
when Field_Constraint_State =>
return "constraint_state";
when Field_Index_Subtype_List =>
return "index_subtype_list";
when Field_Index_Subtype_Definition_List =>
return "index_subtype_definition_list";
when Field_Element_Subtype_Indication =>
return "element_subtype_indication";
when Field_Element_Subtype =>
return "element_subtype";
when Field_Element_Subnature_Indication =>
return "element_subnature_indication";
when Field_Element_Subnature =>
return "element_subnature";
when Field_Index_Constraint_List =>
return "index_constraint_list";
when Field_Array_Element_Constraint =>
return "array_element_constraint";
when Field_Has_Array_Constraint_Flag =>
return "has_array_constraint_flag";
when Field_Has_Element_Constraint_Flag =>
return "has_element_constraint_flag";
when Field_Elements_Declaration_List =>
return "elements_declaration_list";
when Field_Owned_Elements_Chain =>
return "owned_elements_chain";
when Field_Designated_Type =>
return "designated_type";
when Field_Designated_Subtype_Indication =>
return "designated_subtype_indication";
when Field_Index_List =>
return "index_list";
when Field_Reference =>
return "reference";
when Field_Nature_Declarator =>
return "nature_declarator";
when Field_Across_Type_Mark =>
return "across_type_mark";
when Field_Through_Type_Mark =>
return "through_type_mark";
when Field_Across_Type_Definition =>
return "across_type_definition";
when Field_Through_Type_Definition =>
return "through_type_definition";
when Field_Across_Type =>
return "across_type";
when Field_Through_Type =>
return "through_type";
when Field_Target =>
return "target";
when Field_Waveform_Chain =>
return "waveform_chain";
when Field_Guard =>
return "guard";
when Field_Delay_Mechanism =>
return "delay_mechanism";
when Field_Reject_Time_Expression =>
return "reject_time_expression";
when Field_Force_Mode =>
return "force_mode";
when Field_Has_Force_Mode =>
return "has_force_mode";
when Field_Sensitivity_List =>
return "sensitivity_list";
when Field_Process_Origin =>
return "process_origin";
when Field_Package_Origin =>
return "package_origin";
when Field_Condition_Clause =>
return "condition_clause";
when Field_Break_Element =>
return "break_element";
when Field_Selector_Quantity =>
return "selector_quantity";
when Field_Break_Quantity =>
return "break_quantity";
when Field_Timeout_Clause =>
return "timeout_clause";
when Field_Postponed_Flag =>
return "postponed_flag";
when Field_Callees_List =>
return "callees_list";
when Field_Passive_Flag =>
return "passive_flag";
when Field_Resolution_Function_Flag =>
return "resolution_function_flag";
when Field_Wait_State =>
return "wait_state";
when Field_All_Sensitized_State =>
return "all_sensitized_state";
when Field_Seen_Flag =>
return "seen_flag";
when Field_Pure_Flag =>
return "pure_flag";
when Field_Foreign_Flag =>
return "foreign_flag";
when Field_Resolved_Flag =>
return "resolved_flag";
when Field_Signal_Type_Flag =>
return "signal_type_flag";
when Field_Has_Signal_Flag =>
return "has_signal_flag";
when Field_Purity_State =>
return "purity_state";
when Field_Elab_Flag =>
return "elab_flag";
when Field_Vendor_Library_Flag =>
return "vendor_library_flag";
when Field_Configuration_Mark_Flag =>
return "configuration_mark_flag";
when Field_Configuration_Done_Flag =>
return "configuration_done_flag";
when Field_Index_Constraint_Flag =>
return "index_constraint_flag";
when Field_Hide_Implicit_Flag =>
return "hide_implicit_flag";
when Field_Assertion_Condition =>
return "assertion_condition";
when Field_Report_Expression =>
return "report_expression";
when Field_Severity_Expression =>
return "severity_expression";
when Field_Instantiated_Unit =>
return "instantiated_unit";
when Field_Generic_Map_Aspect_Chain =>
return "generic_map_aspect_chain";
when Field_Port_Map_Aspect_Chain =>
return "port_map_aspect_chain";
when Field_Configuration_Name =>
return "configuration_name";
when Field_Component_Configuration =>
return "component_configuration";
when Field_Configuration_Specification =>
return "configuration_specification";
when Field_Default_Binding_Indication =>
return "default_binding_indication";
when Field_Default_Configuration_Declaration =>
return "default_configuration_declaration";
when Field_Expression =>
return "expression";
when Field_Conditional_Expression_Chain =>
return "conditional_expression_chain";
when Field_Allocator_Designated_Type =>
return "allocator_designated_type";
when Field_Selected_Waveform_Chain =>
return "selected_waveform_chain";
when Field_Conditional_Waveform_Chain =>
return "conditional_waveform_chain";
when Field_Guard_Expression =>
return "guard_expression";
when Field_Guard_Decl =>
return "guard_decl";
when Field_Guard_Sensitivity_List =>
return "guard_sensitivity_list";
when Field_Signal_Attribute_Chain =>
return "signal_attribute_chain";
when Field_Block_Block_Configuration =>
return "block_block_configuration";
when Field_Package_Header =>
return "package_header";
when Field_Block_Header =>
return "block_header";
when Field_Uninstantiated_Package_Name =>
return "uninstantiated_package_name";
when Field_Uninstantiated_Package_Decl =>
return "uninstantiated_package_decl";
when Field_Instance_Source_File =>
return "instance_source_file";
when Field_Generate_Block_Configuration =>
return "generate_block_configuration";
when Field_Generate_Statement_Body =>
return "generate_statement_body";
when Field_Alternative_Label =>
return "alternative_label";
when Field_Generate_Else_Clause =>
return "generate_else_clause";
when Field_Condition =>
return "condition";
when Field_Else_Clause =>
return "else_clause";
when Field_Parameter_Specification =>
return "parameter_specification";
when Field_Parent =>
return "parent";
when Field_Loop_Label =>
return "loop_label";
when Field_Exit_Flag =>
return "exit_flag";
when Field_Next_Flag =>
return "next_flag";
when Field_Component_Name =>
return "component_name";
when Field_Instantiation_List =>
return "instantiation_list";
when Field_Entity_Aspect =>
return "entity_aspect";
when Field_Default_Entity_Aspect =>
return "default_entity_aspect";
when Field_Binding_Indication =>
return "binding_indication";
when Field_Named_Entity =>
return "named_entity";
when Field_Alias_Declaration =>
return "alias_declaration";
when Field_Referenced_Name =>
return "referenced_name";
when Field_Expr_Staticness =>
return "expr_staticness";
when Field_Scalar_Size =>
return "scalar_size";
when Field_Error_Origin =>