-- 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_Open_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_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_Interface_Type_Definition => Type_Iir,
Field_Nature_Definition => Type_Iir,
Field_Nature => Type_Iir,
Field_Subnature_Indication => Type_Iir,
Field_Reference_Terminal_Flag => Type_Boolean,
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_Default_Subprogram => Type_Iir,
Field_Associated_Subprogram => 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,