diff options
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 684 |
1 files changed, 329 insertions, 355 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index 20f40cfe4..d400818a8 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -168,7 +168,7 @@ package body Vhdl.Nodes_Meta is Field_Right_Limit => Type_Iir, Field_Left_Limit_Expr => Type_Iir, Field_Right_Limit_Expr => Type_Iir, - Field_Base_Type => Type_Iir, + Field_Parent_Type => Type_Iir, Field_Simple_Nature => Type_Iir, Field_Base_Nature => Type_Iir, Field_Resolution_Indication => Type_Iir, @@ -691,8 +691,8 @@ package body Vhdl.Nodes_Meta is return "left_limit_expr"; when Field_Right_Limit_Expr => return "right_limit_expr"; - when Field_Base_Type => - return "base_type"; + when Field_Parent_Type => + return "parent_type"; when Field_Simple_Nature => return "simple_nature"; when Field_Base_Nature => @@ -2053,7 +2053,7 @@ package body Vhdl.Nodes_Meta is return Attr_None; when Field_Right_Limit_Expr => return Attr_None; - when Field_Base_Type => + when Field_Parent_Type => return Attr_Ref; when Field_Simple_Nature => return Attr_Ref; @@ -2497,7 +2497,6 @@ package body Vhdl.Nodes_Meta is Field_Type, Field_Error_Origin, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Design_File Field_Design_File_Directory, Field_Design_File_Filename, @@ -2829,7 +2828,6 @@ package body Vhdl.Nodes_Meta is Field_Designated_Subtype_Indication, Field_Designated_Type, Field_Type_Declarator, - Field_Base_Type, Field_Incomplete_Type_Ref_Chain, -- Iir_Kind_Incomplete_Type_Definition Field_Resolved_Flag, @@ -2838,7 +2836,6 @@ package body Vhdl.Nodes_Meta is Field_Type_Staticness, Field_Incomplete_Type_Ref_Chain, Field_Type_Declarator, - Field_Base_Type, Field_Complete_Type_Definition, -- Iir_Kind_Interface_Type_Definition Field_Resolved_Flag, @@ -2846,7 +2843,6 @@ package body Vhdl.Nodes_Meta is Field_Has_Signal_Flag, Field_Type_Staticness, Field_Type_Declarator, - Field_Base_Type, Field_Associated_Type, -- Iir_Kind_File_Type_Definition Field_Resolved_Flag, @@ -2855,7 +2851,6 @@ package body Vhdl.Nodes_Meta is Field_Type_Staticness, Field_File_Type_Mark, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Protected_Type_Declaration Field_Resolved_Flag, Field_Signal_Type_Flag, @@ -2865,7 +2860,6 @@ package body Vhdl.Nodes_Meta is Field_Declaration_Chain, Field_Protected_Type_Body, Field_Type_Declarator, - Field_Base_Type, Field_Attribute_Value_Chain, -- Iir_Kind_Record_Type_Definition Field_Resolved_Flag, @@ -2878,7 +2872,6 @@ package body Vhdl.Nodes_Meta is Field_Constraint_State, Field_Elements_Declaration_List, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Array_Type_Definition Field_Resolved_Flag, Field_Signal_Type_Flag, @@ -2891,7 +2884,6 @@ package body Vhdl.Nodes_Meta is Field_Index_Subtype_List, Field_Element_Subtype, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Array_Subtype_Definition Field_Resolved_Flag, Field_Signal_Type_Flag, @@ -2907,7 +2899,7 @@ package body Vhdl.Nodes_Meta is Field_Tolerance, Field_Element_Subtype, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, -- Iir_Kind_Record_Subtype_Definition Field_Resolved_Flag, Field_Is_Ref, @@ -2919,7 +2911,7 @@ package body Vhdl.Nodes_Meta is Field_Elements_Declaration_List, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Resolution_Indication, Field_Tolerance, -- Iir_Kind_Access_Subtype_Definition @@ -2929,7 +2921,7 @@ package body Vhdl.Nodes_Meta is Field_Designated_Type, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Designated_Subtype_Indication, -- Iir_Kind_Physical_Subtype_Definition Field_Resolved_Flag, @@ -2940,7 +2932,7 @@ package body Vhdl.Nodes_Meta is Field_Range_Constraint, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Resolution_Indication, -- Iir_Kind_Floating_Subtype_Definition Field_Resolved_Flag, @@ -2951,7 +2943,7 @@ package body Vhdl.Nodes_Meta is Field_Range_Constraint, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Resolution_Indication, Field_Tolerance, -- Iir_Kind_Integer_Subtype_Definition @@ -2963,7 +2955,7 @@ package body Vhdl.Nodes_Meta is Field_Range_Constraint, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Resolution_Indication, -- Iir_Kind_Enumeration_Subtype_Definition Field_Resolved_Flag, @@ -2974,7 +2966,7 @@ package body Vhdl.Nodes_Meta is Field_Range_Constraint, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Resolution_Indication, -- Iir_Kind_Enumeration_Type_Definition Field_Resolved_Flag, @@ -2988,7 +2980,6 @@ package body Vhdl.Nodes_Meta is Field_Enumeration_Literal_List, Field_Range_Constraint, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Integer_Type_Definition Field_Resolved_Flag, Field_Is_Ref, @@ -2998,7 +2989,6 @@ package body Vhdl.Nodes_Meta is Field_Type_Staticness, Field_Range_Constraint, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Floating_Type_Definition Field_Resolved_Flag, Field_Is_Ref, @@ -3008,7 +2998,6 @@ package body Vhdl.Nodes_Meta is Field_Type_Staticness, Field_Range_Constraint, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Physical_Type_Definition Field_Resolved_Flag, Field_Is_Ref, @@ -3021,7 +3010,6 @@ package body Vhdl.Nodes_Meta is Field_Range_Constraint, Field_Unit_Chain, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Range_Expression Field_Direction, Field_Expr_Staticness, @@ -3045,13 +3033,12 @@ package body Vhdl.Nodes_Meta is Field_Signal_Type_Flag, Field_Type_Staticness, Field_Type_Declarator, - Field_Base_Type, -- Iir_Kind_Subtype_Definition Field_Is_Ref, Field_Range_Constraint, Field_Subtype_Type_Mark, Field_Type_Declarator, - Field_Base_Type, + Field_Parent_Type, Field_Resolution_Indication, Field_Tolerance, -- Iir_Kind_Scalar_Nature_Definition @@ -5145,316 +5132,316 @@ package body Vhdl.Nodes_Meta is Fields_Of_Iir_Last : constant array (Iir_Kind) of Fields_Index_Extended := ( Iir_Kind_Unused => -1, - Iir_Kind_Error => 7, - Iir_Kind_Design_File => 18, - Iir_Kind_Design_Unit => 34, - Iir_Kind_Library_Clause => 39, - Iir_Kind_Use_Clause => 43, - Iir_Kind_Context_Reference => 47, - Iir_Kind_Integer_Literal => 52, - Iir_Kind_Floating_Point_Literal => 57, - Iir_Kind_Null_Literal => 59, - Iir_Kind_String_Literal8 => 70, - Iir_Kind_Physical_Int_Literal => 76, - Iir_Kind_Physical_Fp_Literal => 82, - Iir_Kind_Simple_Aggregate => 87, - Iir_Kind_Overflow_Literal => 90, - Iir_Kind_Unaffected_Waveform => 91, - Iir_Kind_Waveform_Element => 94, - Iir_Kind_Conditional_Waveform => 98, - Iir_Kind_Conditional_Expression => 102, - Iir_Kind_Association_Element_By_Expression => 110, - Iir_Kind_Association_Element_By_Individual => 119, - Iir_Kind_Association_Element_Open => 125, - Iir_Kind_Association_Element_Package => 131, - Iir_Kind_Association_Element_Type => 139, - Iir_Kind_Association_Element_Subprogram => 145, - Iir_Kind_Association_Element_Terminal => 151, - Iir_Kind_Choice_By_Range => 159, - Iir_Kind_Choice_By_Expression => 167, - Iir_Kind_Choice_By_Others => 173, - Iir_Kind_Choice_By_None => 179, - Iir_Kind_Choice_By_Name => 186, - Iir_Kind_Entity_Aspect_Entity => 188, - Iir_Kind_Entity_Aspect_Configuration => 189, - Iir_Kind_Entity_Aspect_Open => 189, - Iir_Kind_Psl_Hierarchical_Name => 191, - Iir_Kind_Block_Configuration => 197, - Iir_Kind_Block_Header => 201, - Iir_Kind_Component_Configuration => 208, - Iir_Kind_Binding_Indication => 212, - Iir_Kind_Entity_Class => 214, - Iir_Kind_Attribute_Value => 222, - Iir_Kind_Signature => 225, - Iir_Kind_Aggregate_Info => 232, - Iir_Kind_Procedure_Call => 236, - Iir_Kind_Record_Element_Constraint => 244, - Iir_Kind_Array_Element_Resolution => 246, - Iir_Kind_Record_Resolution => 247, - Iir_Kind_Record_Element_Resolution => 250, - Iir_Kind_Break_Element => 254, - Iir_Kind_Attribute_Specification => 262, - Iir_Kind_Disconnection_Specification => 268, - Iir_Kind_Step_Limit_Specification => 274, - Iir_Kind_Configuration_Specification => 280, - Iir_Kind_Access_Type_Definition => 288, - Iir_Kind_Incomplete_Type_Definition => 296, - Iir_Kind_Interface_Type_Definition => 303, - Iir_Kind_File_Type_Definition => 310, - Iir_Kind_Protected_Type_Declaration => 320, - Iir_Kind_Record_Type_Definition => 331, - Iir_Kind_Array_Type_Definition => 343, - Iir_Kind_Array_Subtype_Definition => 358, - Iir_Kind_Record_Subtype_Definition => 371, - Iir_Kind_Access_Subtype_Definition => 379, - Iir_Kind_Physical_Subtype_Definition => 389, - Iir_Kind_Floating_Subtype_Definition => 400, - Iir_Kind_Integer_Subtype_Definition => 410, - Iir_Kind_Enumeration_Subtype_Definition => 420, - Iir_Kind_Enumeration_Type_Definition => 432, - Iir_Kind_Integer_Type_Definition => 441, - Iir_Kind_Floating_Type_Definition => 450, - Iir_Kind_Physical_Type_Definition => 462, - Iir_Kind_Range_Expression => 470, - Iir_Kind_Protected_Type_Body => 478, - Iir_Kind_Wildcard_Type_Definition => 483, - Iir_Kind_Subtype_Definition => 490, - Iir_Kind_Scalar_Nature_Definition => 498, - Iir_Kind_Record_Nature_Definition => 511, - Iir_Kind_Array_Nature_Definition => 525, - Iir_Kind_Array_Subnature_Definition => 540, - Iir_Kind_Overload_List => 541, - Iir_Kind_Entity_Declaration => 554, - Iir_Kind_Configuration_Declaration => 563, - Iir_Kind_Context_Declaration => 569, - Iir_Kind_Package_Declaration => 584, - Iir_Kind_Package_Instantiation_Declaration => 598, - Iir_Kind_Vmode_Declaration => 610, - Iir_Kind_Vprop_Declaration => 622, - Iir_Kind_Vunit_Declaration => 635, - Iir_Kind_Package_Body => 643, - Iir_Kind_Architecture_Body => 656, - Iir_Kind_Type_Declaration => 663, - Iir_Kind_Anonymous_Type_Declaration => 669, - Iir_Kind_Subtype_Declaration => 677, - Iir_Kind_Nature_Declaration => 683, - Iir_Kind_Subnature_Declaration => 690, - Iir_Kind_Package_Header => 692, - Iir_Kind_Unit_Declaration => 701, - Iir_Kind_Library_Declaration => 709, - Iir_Kind_Component_Declaration => 719, - Iir_Kind_Attribute_Declaration => 726, - Iir_Kind_Group_Template_Declaration => 732, - Iir_Kind_Group_Declaration => 739, - Iir_Kind_Element_Declaration => 747, - Iir_Kind_Nature_Element_Declaration => 754, - Iir_Kind_Non_Object_Alias_Declaration => 762, - Iir_Kind_Psl_Declaration => 770, - Iir_Kind_Psl_Endpoint_Declaration => 784, - Iir_Kind_Enumeration_Literal => 795, - Iir_Kind_Function_Declaration => 820, - Iir_Kind_Procedure_Declaration => 844, - Iir_Kind_Function_Body => 854, - Iir_Kind_Procedure_Body => 865, - Iir_Kind_Terminal_Declaration => 874, - Iir_Kind_Object_Alias_Declaration => 886, - Iir_Kind_Free_Quantity_Declaration => 898, - Iir_Kind_Spectrum_Quantity_Declaration => 911, - Iir_Kind_Noise_Quantity_Declaration => 923, - Iir_Kind_Across_Quantity_Declaration => 939, - Iir_Kind_Through_Quantity_Declaration => 955, - Iir_Kind_File_Declaration => 970, - Iir_Kind_Guard_Signal_Declaration => 983, - Iir_Kind_Signal_Declaration => 1000, - Iir_Kind_Variable_Declaration => 1013, - Iir_Kind_Constant_Declaration => 1027, - Iir_Kind_Iterator_Declaration => 1039, - Iir_Kind_Interface_Constant_Declaration => 1056, - Iir_Kind_Interface_Variable_Declaration => 1072, - Iir_Kind_Interface_Signal_Declaration => 1093, - Iir_Kind_Interface_File_Declaration => 1109, - Iir_Kind_Interface_Quantity_Declaration => 1125, - Iir_Kind_Interface_Terminal_Declaration => 1137, - Iir_Kind_Interface_Type_Declaration => 1148, - Iir_Kind_Interface_Package_Declaration => 1161, - Iir_Kind_Interface_Function_Declaration => 1179, - Iir_Kind_Interface_Procedure_Declaration => 1193, - Iir_Kind_Anonymous_Signal_Declaration => 1202, - Iir_Kind_Signal_Attribute_Declaration => 1205, - Iir_Kind_Identity_Operator => 1209, - Iir_Kind_Negation_Operator => 1213, - Iir_Kind_Absolute_Operator => 1217, - Iir_Kind_Not_Operator => 1221, - Iir_Kind_Implicit_Condition_Operator => 1225, - Iir_Kind_Condition_Operator => 1229, - Iir_Kind_Reduction_And_Operator => 1233, - Iir_Kind_Reduction_Or_Operator => 1237, - Iir_Kind_Reduction_Nand_Operator => 1241, - Iir_Kind_Reduction_Nor_Operator => 1245, - Iir_Kind_Reduction_Xor_Operator => 1249, - Iir_Kind_Reduction_Xnor_Operator => 1253, - Iir_Kind_And_Operator => 1258, - Iir_Kind_Or_Operator => 1263, - Iir_Kind_Nand_Operator => 1268, - Iir_Kind_Nor_Operator => 1273, - Iir_Kind_Xor_Operator => 1278, - Iir_Kind_Xnor_Operator => 1283, - Iir_Kind_Equality_Operator => 1288, - Iir_Kind_Inequality_Operator => 1293, - Iir_Kind_Less_Than_Operator => 1298, - Iir_Kind_Less_Than_Or_Equal_Operator => 1303, - Iir_Kind_Greater_Than_Operator => 1308, - Iir_Kind_Greater_Than_Or_Equal_Operator => 1313, - Iir_Kind_Match_Equality_Operator => 1318, - Iir_Kind_Match_Inequality_Operator => 1323, - Iir_Kind_Match_Less_Than_Operator => 1328, - Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1333, - Iir_Kind_Match_Greater_Than_Operator => 1338, - Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1343, - Iir_Kind_Sll_Operator => 1348, - Iir_Kind_Sla_Operator => 1353, - Iir_Kind_Srl_Operator => 1358, - Iir_Kind_Sra_Operator => 1363, - Iir_Kind_Rol_Operator => 1368, - Iir_Kind_Ror_Operator => 1373, - Iir_Kind_Addition_Operator => 1378, - Iir_Kind_Substraction_Operator => 1383, - Iir_Kind_Concatenation_Operator => 1388, - Iir_Kind_Multiplication_Operator => 1393, - Iir_Kind_Division_Operator => 1398, - Iir_Kind_Modulus_Operator => 1403, - Iir_Kind_Remainder_Operator => 1408, - Iir_Kind_Exponentiation_Operator => 1413, - Iir_Kind_Function_Call => 1421, - Iir_Kind_Aggregate => 1428, - Iir_Kind_Parenthesis_Expression => 1431, - Iir_Kind_Qualified_Expression => 1435, - Iir_Kind_Type_Conversion => 1440, - Iir_Kind_Allocator_By_Expression => 1445, - Iir_Kind_Allocator_By_Subtype => 1451, - Iir_Kind_Selected_Element => 1459, - Iir_Kind_Dereference => 1464, - Iir_Kind_Implicit_Dereference => 1469, - Iir_Kind_Slice_Name => 1476, - Iir_Kind_Indexed_Name => 1482, - Iir_Kind_Psl_Prev => 1488, - Iir_Kind_Psl_Stable => 1493, - Iir_Kind_Psl_Rose => 1498, - Iir_Kind_Psl_Fell => 1503, - Iir_Kind_Psl_Expression => 1505, - Iir_Kind_Sensitized_Process_Statement => 1526, - Iir_Kind_Process_Statement => 1546, - Iir_Kind_Concurrent_Simple_Signal_Assignment => 1559, - Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1572, - Iir_Kind_Concurrent_Selected_Signal_Assignment => 1586, - Iir_Kind_Concurrent_Assertion_Statement => 1594, - Iir_Kind_Concurrent_Procedure_Call_Statement => 1601, - Iir_Kind_Concurrent_Break_Statement => 1609, - Iir_Kind_Psl_Assert_Directive => 1622, - Iir_Kind_Psl_Assume_Directive => 1633, - Iir_Kind_Psl_Cover_Directive => 1645, - Iir_Kind_Psl_Restrict_Directive => 1656, - Iir_Kind_Block_Statement => 1670, - Iir_Kind_If_Generate_Statement => 1681, - Iir_Kind_Case_Generate_Statement => 1690, - Iir_Kind_For_Generate_Statement => 1699, - Iir_Kind_Component_Instantiation_Statement => 1710, - Iir_Kind_Psl_Default_Clock => 1714, - Iir_Kind_Generate_Statement_Body => 1725, - Iir_Kind_If_Generate_Else_Clause => 1731, - Iir_Kind_Simple_Simultaneous_Statement => 1738, - Iir_Kind_Simultaneous_Null_Statement => 1742, - Iir_Kind_Simultaneous_Procedural_Statement => 1753, - Iir_Kind_Simultaneous_Case_Statement => 1762, - Iir_Kind_Simultaneous_If_Statement => 1771, - Iir_Kind_Simultaneous_Elsif => 1777, - Iir_Kind_Simple_Signal_Assignment_Statement => 1788, - Iir_Kind_Conditional_Signal_Assignment_Statement => 1799, - Iir_Kind_Selected_Waveform_Assignment_Statement => 1811, - Iir_Kind_Null_Statement => 1815, - Iir_Kind_Assertion_Statement => 1822, - Iir_Kind_Report_Statement => 1828, - Iir_Kind_Wait_Statement => 1836, - Iir_Kind_Variable_Assignment_Statement => 1843, - Iir_Kind_Conditional_Variable_Assignment_Statement => 1850, - Iir_Kind_Return_Statement => 1856, - Iir_Kind_For_Loop_Statement => 1867, - Iir_Kind_While_Loop_Statement => 1878, - Iir_Kind_Next_Statement => 1885, - Iir_Kind_Exit_Statement => 1892, - Iir_Kind_Case_Statement => 1900, - Iir_Kind_Procedure_Call_Statement => 1906, - Iir_Kind_Break_Statement => 1913, - Iir_Kind_If_Statement => 1923, - Iir_Kind_Elsif => 1929, - Iir_Kind_Character_Literal => 1937, - Iir_Kind_Simple_Name => 1945, - Iir_Kind_Selected_Name => 1954, - Iir_Kind_Operator_Symbol => 1960, - Iir_Kind_Reference_Name => 1965, - Iir_Kind_External_Constant_Name => 1974, - Iir_Kind_External_Signal_Name => 1983, - Iir_Kind_External_Variable_Name => 1993, - Iir_Kind_Selected_By_All_Name => 1999, - Iir_Kind_Parenthesis_Name => 2004, - Iir_Kind_Package_Pathname => 2008, - Iir_Kind_Absolute_Pathname => 2009, - Iir_Kind_Relative_Pathname => 2010, - Iir_Kind_Pathname_Element => 2015, - Iir_Kind_Base_Attribute => 2017, - Iir_Kind_Subtype_Attribute => 2022, - Iir_Kind_Element_Attribute => 2027, - Iir_Kind_Across_Attribute => 2032, - Iir_Kind_Through_Attribute => 2037, - Iir_Kind_Nature_Reference_Attribute => 2041, - Iir_Kind_Left_Type_Attribute => 2046, - Iir_Kind_Right_Type_Attribute => 2051, - Iir_Kind_High_Type_Attribute => 2056, - Iir_Kind_Low_Type_Attribute => 2061, - Iir_Kind_Ascending_Type_Attribute => 2066, - Iir_Kind_Image_Attribute => 2072, - Iir_Kind_Value_Attribute => 2078, - Iir_Kind_Pos_Attribute => 2084, - Iir_Kind_Val_Attribute => 2090, - Iir_Kind_Succ_Attribute => 2096, - Iir_Kind_Pred_Attribute => 2102, - Iir_Kind_Leftof_Attribute => 2108, - Iir_Kind_Rightof_Attribute => 2114, - Iir_Kind_Signal_Slew_Attribute => 2122, - Iir_Kind_Quantity_Slew_Attribute => 2130, - Iir_Kind_Ramp_Attribute => 2138, - Iir_Kind_Zoh_Attribute => 2146, - Iir_Kind_Ltf_Attribute => 2154, - Iir_Kind_Ztf_Attribute => 2164, - Iir_Kind_Dot_Attribute => 2171, - Iir_Kind_Integ_Attribute => 2178, - Iir_Kind_Above_Attribute => 2186, - Iir_Kind_Quantity_Delayed_Attribute => 2194, - Iir_Kind_Delayed_Attribute => 2203, - Iir_Kind_Stable_Attribute => 2212, - Iir_Kind_Quiet_Attribute => 2221, - Iir_Kind_Transaction_Attribute => 2230, - Iir_Kind_Event_Attribute => 2234, - Iir_Kind_Active_Attribute => 2238, - Iir_Kind_Last_Event_Attribute => 2242, - Iir_Kind_Last_Active_Attribute => 2246, - Iir_Kind_Last_Value_Attribute => 2250, - Iir_Kind_Driving_Attribute => 2254, - Iir_Kind_Driving_Value_Attribute => 2258, - Iir_Kind_Behavior_Attribute => 2258, - Iir_Kind_Structure_Attribute => 2258, - Iir_Kind_Simple_Name_Attribute => 2265, - Iir_Kind_Instance_Name_Attribute => 2270, - Iir_Kind_Path_Name_Attribute => 2275, - Iir_Kind_Left_Array_Attribute => 2282, - Iir_Kind_Right_Array_Attribute => 2289, - Iir_Kind_High_Array_Attribute => 2296, - Iir_Kind_Low_Array_Attribute => 2303, - Iir_Kind_Length_Array_Attribute => 2310, - Iir_Kind_Ascending_Array_Attribute => 2317, - Iir_Kind_Range_Array_Attribute => 2324, - Iir_Kind_Reverse_Range_Array_Attribute => 2331, - Iir_Kind_Attribute_Name => 2340 + Iir_Kind_Error => 6, + Iir_Kind_Design_File => 17, + Iir_Kind_Design_Unit => 33, + Iir_Kind_Library_Clause => 38, + Iir_Kind_Use_Clause => 42, + Iir_Kind_Context_Reference => 46, + Iir_Kind_Integer_Literal => 51, + Iir_Kind_Floating_Point_Literal => 56, + Iir_Kind_Null_Literal => 58, + Iir_Kind_String_Literal8 => 69, + Iir_Kind_Physical_Int_Literal => 75, + Iir_Kind_Physical_Fp_Literal => 81, + Iir_Kind_Simple_Aggregate => 86, + Iir_Kind_Overflow_Literal => 89, + Iir_Kind_Unaffected_Waveform => 90, + Iir_Kind_Waveform_Element => 93, + Iir_Kind_Conditional_Waveform => 97, + Iir_Kind_Conditional_Expression => 101, + Iir_Kind_Association_Element_By_Expression => 109, + Iir_Kind_Association_Element_By_Individual => 118, + Iir_Kind_Association_Element_Open => 124, + Iir_Kind_Association_Element_Package => 130, + Iir_Kind_Association_Element_Type => 138, + Iir_Kind_Association_Element_Subprogram => 144, + Iir_Kind_Association_Element_Terminal => 150, + Iir_Kind_Choice_By_Range => 158, + Iir_Kind_Choice_By_Expression => 166, + Iir_Kind_Choice_By_Others => 172, + Iir_Kind_Choice_By_None => 178, + Iir_Kind_Choice_By_Name => 185, + Iir_Kind_Entity_Aspect_Entity => 187, + Iir_Kind_Entity_Aspect_Configuration => 188, + Iir_Kind_Entity_Aspect_Open => 188, + Iir_Kind_Psl_Hierarchical_Name => 190, + Iir_Kind_Block_Configuration => 196, + Iir_Kind_Block_Header => 200, + Iir_Kind_Component_Configuration => 207, + Iir_Kind_Binding_Indication => 211, + Iir_Kind_Entity_Class => 213, + Iir_Kind_Attribute_Value => 221, + Iir_Kind_Signature => 224, + Iir_Kind_Aggregate_Info => 231, + Iir_Kind_Procedure_Call => 235, + Iir_Kind_Record_Element_Constraint => 243, + Iir_Kind_Array_Element_Resolution => 245, + Iir_Kind_Record_Resolution => 246, + Iir_Kind_Record_Element_Resolution => 249, + Iir_Kind_Break_Element => 253, + Iir_Kind_Attribute_Specification => 261, + Iir_Kind_Disconnection_Specification => 267, + Iir_Kind_Step_Limit_Specification => 273, + Iir_Kind_Configuration_Specification => 279, + Iir_Kind_Access_Type_Definition => 286, + Iir_Kind_Incomplete_Type_Definition => 293, + Iir_Kind_Interface_Type_Definition => 299, + Iir_Kind_File_Type_Definition => 305, + Iir_Kind_Protected_Type_Declaration => 314, + Iir_Kind_Record_Type_Definition => 324, + Iir_Kind_Array_Type_Definition => 335, + Iir_Kind_Array_Subtype_Definition => 350, + Iir_Kind_Record_Subtype_Definition => 363, + Iir_Kind_Access_Subtype_Definition => 371, + Iir_Kind_Physical_Subtype_Definition => 381, + Iir_Kind_Floating_Subtype_Definition => 392, + Iir_Kind_Integer_Subtype_Definition => 402, + Iir_Kind_Enumeration_Subtype_Definition => 412, + Iir_Kind_Enumeration_Type_Definition => 423, + Iir_Kind_Integer_Type_Definition => 431, + Iir_Kind_Floating_Type_Definition => 439, + Iir_Kind_Physical_Type_Definition => 450, + Iir_Kind_Range_Expression => 458, + Iir_Kind_Protected_Type_Body => 466, + Iir_Kind_Wildcard_Type_Definition => 470, + Iir_Kind_Subtype_Definition => 477, + Iir_Kind_Scalar_Nature_Definition => 485, + Iir_Kind_Record_Nature_Definition => 498, + Iir_Kind_Array_Nature_Definition => 512, + Iir_Kind_Array_Subnature_Definition => 527, + Iir_Kind_Overload_List => 528, + Iir_Kind_Entity_Declaration => 541, + Iir_Kind_Configuration_Declaration => 550, + Iir_Kind_Context_Declaration => 556, + Iir_Kind_Package_Declaration => 571, + Iir_Kind_Package_Instantiation_Declaration => 585, + Iir_Kind_Vmode_Declaration => 597, + Iir_Kind_Vprop_Declaration => 609, + Iir_Kind_Vunit_Declaration => 622, + Iir_Kind_Package_Body => 630, + Iir_Kind_Architecture_Body => 643, + Iir_Kind_Type_Declaration => 650, + Iir_Kind_Anonymous_Type_Declaration => 656, + Iir_Kind_Subtype_Declaration => 664, + Iir_Kind_Nature_Declaration => 670, + Iir_Kind_Subnature_Declaration => 677, + Iir_Kind_Package_Header => 679, + Iir_Kind_Unit_Declaration => 688, + Iir_Kind_Library_Declaration => 696, + Iir_Kind_Component_Declaration => 706, + Iir_Kind_Attribute_Declaration => 713, + Iir_Kind_Group_Template_Declaration => 719, + Iir_Kind_Group_Declaration => 726, + Iir_Kind_Element_Declaration => 734, + Iir_Kind_Nature_Element_Declaration => 741, + Iir_Kind_Non_Object_Alias_Declaration => 749, + Iir_Kind_Psl_Declaration => 757, + Iir_Kind_Psl_Endpoint_Declaration => 771, + Iir_Kind_Enumeration_Literal => 782, + Iir_Kind_Function_Declaration => 807, + Iir_Kind_Procedure_Declaration => 831, + Iir_Kind_Function_Body => 841, + Iir_Kind_Procedure_Body => 852, + Iir_Kind_Terminal_Declaration => 861, + Iir_Kind_Object_Alias_Declaration => 873, + Iir_Kind_Free_Quantity_Declaration => 885, + Iir_Kind_Spectrum_Quantity_Declaration => 898, + Iir_Kind_Noise_Quantity_Declaration => 910, + Iir_Kind_Across_Quantity_Declaration => 926, + Iir_Kind_Through_Quantity_Declaration => 942, + Iir_Kind_File_Declaration => 957, + Iir_Kind_Guard_Signal_Declaration => 970, + Iir_Kind_Signal_Declaration => 987, + Iir_Kind_Variable_Declaration => 1000, + Iir_Kind_Constant_Declaration => 1014, + Iir_Kind_Iterator_Declaration => 1026, + Iir_Kind_Interface_Constant_Declaration => 1043, + Iir_Kind_Interface_Variable_Declaration => 1059, + Iir_Kind_Interface_Signal_Declaration => 1080, + Iir_Kind_Interface_File_Declaration => 1096, + Iir_Kind_Interface_Quantity_Declaration => 1112, + Iir_Kind_Interface_Terminal_Declaration => 1124, + Iir_Kind_Interface_Type_Declaration => 1135, + Iir_Kind_Interface_Package_Declaration => 1148, + Iir_Kind_Interface_Function_Declaration => 1166, + Iir_Kind_Interface_Procedure_Declaration => 1180, + Iir_Kind_Anonymous_Signal_Declaration => 1189, + Iir_Kind_Signal_Attribute_Declaration => 1192, + Iir_Kind_Identity_Operator => 1196, + Iir_Kind_Negation_Operator => 1200, + Iir_Kind_Absolute_Operator => 1204, + Iir_Kind_Not_Operator => 1208, + Iir_Kind_Implicit_Condition_Operator => 1212, + Iir_Kind_Condition_Operator => 1216, + Iir_Kind_Reduction_And_Operator => 1220, + Iir_Kind_Reduction_Or_Operator => 1224, + Iir_Kind_Reduction_Nand_Operator => 1228, + Iir_Kind_Reduction_Nor_Operator => 1232, + Iir_Kind_Reduction_Xor_Operator => 1236, + Iir_Kind_Reduction_Xnor_Operator => 1240, + Iir_Kind_And_Operator => 1245, + Iir_Kind_Or_Operator => 1250, + Iir_Kind_Nand_Operator => 1255, + Iir_Kind_Nor_Operator => 1260, + Iir_Kind_Xor_Operator => 1265, + Iir_Kind_Xnor_Operator => 1270, + Iir_Kind_Equality_Operator => 1275, + Iir_Kind_Inequality_Operator => 1280, + Iir_Kind_Less_Than_Operator => 1285, + Iir_Kind_Less_Than_Or_Equal_Operator => 1290, + Iir_Kind_Greater_Than_Operator => 1295, + Iir_Kind_Greater_Than_Or_Equal_Operator => 1300, + Iir_Kind_Match_Equality_Operator => 1305, + Iir_Kind_Match_Inequality_Operator => 1310, + Iir_Kind_Match_Less_Than_Operator => 1315, + Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1320, + Iir_Kind_Match_Greater_Than_Operator => 1325, + Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1330, + Iir_Kind_Sll_Operator => 1335, + Iir_Kind_Sla_Operator => 1340, + Iir_Kind_Srl_Operator => 1345, + Iir_Kind_Sra_Operator => 1350, + Iir_Kind_Rol_Operator => 1355, + Iir_Kind_Ror_Operator => 1360, + Iir_Kind_Addition_Operator => 1365, + Iir_Kind_Substraction_Operator => 1370, + Iir_Kind_Concatenation_Operator => 1375, + Iir_Kind_Multiplication_Operator => 1380, + Iir_Kind_Division_Operator => 1385, + Iir_Kind_Modulus_Operator => 1390, + Iir_Kind_Remainder_Operator => 1395, + Iir_Kind_Exponentiation_Operator => 1400, + Iir_Kind_Function_Call => 1408, + Iir_Kind_Aggregate => 1415, + Iir_Kind_Parenthesis_Expression => 1418, + Iir_Kind_Qualified_Expression => 1422, + Iir_Kind_Type_Conversion => 1427, + Iir_Kind_Allocator_By_Expression => 1432, + Iir_Kind_Allocator_By_Subtype => 1438, + Iir_Kind_Selected_Element => 1446, + Iir_Kind_Dereference => 1451, + Iir_Kind_Implicit_Dereference => 1456, + Iir_Kind_Slice_Name => 1463, + Iir_Kind_Indexed_Name => 1469, + Iir_Kind_Psl_Prev => 1475, + Iir_Kind_Psl_Stable => 1480, + Iir_Kind_Psl_Rose => 1485, + Iir_Kind_Psl_Fell => 1490, + Iir_Kind_Psl_Expression => 1492, + Iir_Kind_Sensitized_Process_Statement => 1513, + Iir_Kind_Process_Statement => 1533, + Iir_Kind_Concurrent_Simple_Signal_Assignment => 1546, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1559, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1573, + Iir_Kind_Concurrent_Assertion_Statement => 1581, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1588, + Iir_Kind_Concurrent_Break_Statement => 1596, + Iir_Kind_Psl_Assert_Directive => 1609, + Iir_Kind_Psl_Assume_Directive => 1620, + Iir_Kind_Psl_Cover_Directive => 1632, + Iir_Kind_Psl_Restrict_Directive => 1643, + Iir_Kind_Block_Statement => 1657, + Iir_Kind_If_Generate_Statement => 1668, + Iir_Kind_Case_Generate_Statement => 1677, + Iir_Kind_For_Generate_Statement => 1686, + Iir_Kind_Component_Instantiation_Statement => 1697, + Iir_Kind_Psl_Default_Clock => 1701, + Iir_Kind_Generate_Statement_Body => 1712, + Iir_Kind_If_Generate_Else_Clause => 1718, + Iir_Kind_Simple_Simultaneous_Statement => 1725, + Iir_Kind_Simultaneous_Null_Statement => 1729, + Iir_Kind_Simultaneous_Procedural_Statement => 1740, + Iir_Kind_Simultaneous_Case_Statement => 1749, + Iir_Kind_Simultaneous_If_Statement => 1758, + Iir_Kind_Simultaneous_Elsif => 1764, + Iir_Kind_Simple_Signal_Assignment_Statement => 1775, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1786, + Iir_Kind_Selected_Waveform_Assignment_Statement => 1798, + Iir_Kind_Null_Statement => 1802, + Iir_Kind_Assertion_Statement => 1809, + Iir_Kind_Report_Statement => 1815, + Iir_Kind_Wait_Statement => 1823, + Iir_Kind_Variable_Assignment_Statement => 1830, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1837, + Iir_Kind_Return_Statement => 1843, + Iir_Kind_For_Loop_Statement => 1854, + Iir_Kind_While_Loop_Statement => 1865, + Iir_Kind_Next_Statement => 1872, + Iir_Kind_Exit_Statement => 1879, + Iir_Kind_Case_Statement => 1887, + Iir_Kind_Procedure_Call_Statement => 1893, + Iir_Kind_Break_Statement => 1900, + Iir_Kind_If_Statement => 1910, + Iir_Kind_Elsif => 1916, + Iir_Kind_Character_Literal => 1924, + Iir_Kind_Simple_Name => 1932, + Iir_Kind_Selected_Name => 1941, + Iir_Kind_Operator_Symbol => 1947, + Iir_Kind_Reference_Name => 1952, + Iir_Kind_External_Constant_Name => 1961, + Iir_Kind_External_Signal_Name => 1970, + Iir_Kind_External_Variable_Name => 1980, + Iir_Kind_Selected_By_All_Name => 1986, + Iir_Kind_Parenthesis_Name => 1991, + Iir_Kind_Package_Pathname => 1995, + Iir_Kind_Absolute_Pathname => 1996, + Iir_Kind_Relative_Pathname => 1997, + Iir_Kind_Pathname_Element => 2002, + Iir_Kind_Base_Attribute => 2004, + Iir_Kind_Subtype_Attribute => 2009, + Iir_Kind_Element_Attribute => 2014, + Iir_Kind_Across_Attribute => 2019, + Iir_Kind_Through_Attribute => 2024, + Iir_Kind_Nature_Reference_Attribute => 2028, + Iir_Kind_Left_Type_Attribute => 2033, + Iir_Kind_Right_Type_Attribute => 2038, + Iir_Kind_High_Type_Attribute => 2043, + Iir_Kind_Low_Type_Attribute => 2048, + Iir_Kind_Ascending_Type_Attribute => 2053, + Iir_Kind_Image_Attribute => 2059, + Iir_Kind_Value_Attribute => 2065, + Iir_Kind_Pos_Attribute => 2071, + Iir_Kind_Val_Attribute => 2077, + Iir_Kind_Succ_Attribute => 2083, + Iir_Kind_Pred_Attribute => 2089, + Iir_Kind_Leftof_Attribute => 2095, + Iir_Kind_Rightof_Attribute => 2101, + Iir_Kind_Signal_Slew_Attribute => 2109, + Iir_Kind_Quantity_Slew_Attribute => 2117, + Iir_Kind_Ramp_Attribute => 2125, + Iir_Kind_Zoh_Attribute => 2133, + Iir_Kind_Ltf_Attribute => 2141, + Iir_Kind_Ztf_Attribute => 2151, + Iir_Kind_Dot_Attribute => 2158, + Iir_Kind_Integ_Attribute => 2165, + Iir_Kind_Above_Attribute => 2173, + Iir_Kind_Quantity_Delayed_Attribute => 2181, + Iir_Kind_Delayed_Attribute => 2190, + Iir_Kind_Stable_Attribute => 2199, + Iir_Kind_Quiet_Attribute => 2208, + Iir_Kind_Transaction_Attribute => 2217, + Iir_Kind_Event_Attribute => 2221, + Iir_Kind_Active_Attribute => 2225, + Iir_Kind_Last_Event_Attribute => 2229, + Iir_Kind_Last_Active_Attribute => 2233, + Iir_Kind_Last_Value_Attribute => 2237, + Iir_Kind_Driving_Attribute => 2241, + Iir_Kind_Driving_Value_Attribute => 2245, + Iir_Kind_Behavior_Attribute => 2245, + Iir_Kind_Structure_Attribute => 2245, + Iir_Kind_Simple_Name_Attribute => 2252, + Iir_Kind_Instance_Name_Attribute => 2257, + Iir_Kind_Path_Name_Attribute => 2262, + Iir_Kind_Left_Array_Attribute => 2269, + Iir_Kind_Right_Array_Attribute => 2276, + Iir_Kind_High_Array_Attribute => 2283, + Iir_Kind_Low_Array_Attribute => 2290, + Iir_Kind_Length_Array_Attribute => 2297, + Iir_Kind_Ascending_Array_Attribute => 2304, + Iir_Kind_Range_Array_Attribute => 2311, + Iir_Kind_Reverse_Range_Array_Attribute => 2318, + Iir_Kind_Attribute_Name => 2327 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -6077,8 +6064,8 @@ package body Vhdl.Nodes_Meta is return Get_Left_Limit_Expr (N); when Field_Right_Limit_Expr => return Get_Right_Limit_Expr (N); - when Field_Base_Type => - return Get_Base_Type (N); + when Field_Parent_Type => + return Get_Parent_Type (N); when Field_Simple_Nature => return Get_Simple_Nature (N); when Field_Base_Nature => @@ -6533,8 +6520,8 @@ package body Vhdl.Nodes_Meta is Set_Left_Limit_Expr (N, V); when Field_Right_Limit_Expr => Set_Right_Limit_Expr (N, V); - when Field_Base_Type => - Set_Base_Type (N, V); + when Field_Parent_Type => + Set_Parent_Type (N, V); when Field_Simple_Nature => Set_Simple_Nature (N, V); when Field_Base_Nature => @@ -9491,35 +9478,22 @@ package body Vhdl.Nodes_Meta is return K = Iir_Kind_Range_Expression; end Has_Right_Limit_Expr; - function Has_Base_Type (K : Iir_Kind) return Boolean is + function Has_Parent_Type (K : Iir_Kind) return Boolean is begin case K is - when Iir_Kind_Error - | Iir_Kind_Access_Type_Definition - | Iir_Kind_Incomplete_Type_Definition - | Iir_Kind_Interface_Type_Definition - | Iir_Kind_File_Type_Definition - | Iir_Kind_Protected_Type_Declaration - | Iir_Kind_Record_Type_Definition - | Iir_Kind_Array_Type_Definition - | Iir_Kind_Array_Subtype_Definition + when Iir_Kind_Array_Subtype_Definition | Iir_Kind_Record_Subtype_Definition | Iir_Kind_Access_Subtype_Definition | Iir_Kind_Physical_Subtype_Definition | Iir_Kind_Floating_Subtype_Definition | Iir_Kind_Integer_Subtype_Definition | Iir_Kind_Enumeration_Subtype_Definition - | Iir_Kind_Enumeration_Type_Definition - | Iir_Kind_Integer_Type_Definition - | Iir_Kind_Floating_Type_Definition - | Iir_Kind_Physical_Type_Definition - | Iir_Kind_Wildcard_Type_Definition | Iir_Kind_Subtype_Definition => return True; when others => return False; end case; - end Has_Base_Type; + end Has_Parent_Type; function Has_Simple_Nature (K : Iir_Kind) return Boolean is begin |