diff options
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 635 |
1 files changed, 336 insertions, 299 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index 656cc2aef..2d92d3bae 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -68,6 +68,7 @@ package body Vhdl.Nodes_Meta is 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, @@ -125,6 +126,7 @@ package body Vhdl.Nodes_Meta is Field_Signal_Kind => Type_Iir_Signal_Kind, Field_Base_Name => Type_Iir, Field_Interface_Declaration_Chain => Type_Iir, + Field_Default_Subprogram => Type_Iir, Field_Subprogram_Specification => Type_Iir, Field_Sequential_Statement_Chain => Type_Iir, Field_Simultaneous_Statement_Chain => Type_Iir, @@ -507,6 +509,8 @@ package body Vhdl.Nodes_Meta is return "formal"; when Field_Actual => return "actual"; + when Field_Open_Actual => + return "open_actual"; when Field_Actual_Conversion => return "actual_conversion"; when Field_Formal_Conversion => @@ -621,6 +625,8 @@ package body Vhdl.Nodes_Meta is return "base_name"; when Field_Interface_Declaration_Chain => return "interface_declaration_chain"; + when Field_Default_Subprogram => + return "default_subprogram"; when Field_Subprogram_Specification => return "subprogram_specification"; when Field_Sequential_Statement_Chain => @@ -1919,6 +1925,8 @@ package body Vhdl.Nodes_Meta is return Attr_None; when Field_Actual => return Attr_None; + when Field_Open_Actual => + return Attr_Ref; when Field_Actual_Conversion => return Attr_None; when Field_Formal_Conversion => @@ -2033,6 +2041,8 @@ package body Vhdl.Nodes_Meta is return Attr_Ref; when Field_Interface_Declaration_Chain => return Attr_Chain; + when Field_Default_Subprogram => + return Attr_None; when Field_Subprogram_Specification => return Attr_Ref; when Field_Sequential_Statement_Chain => @@ -2740,6 +2750,7 @@ package body Vhdl.Nodes_Meta is Field_In_Formal_Flag, Field_Formal, Field_Chain, + Field_Open_Actual, -- Iir_Kind_Association_Element_Package Field_Whole_Association_Flag, Field_Collapse_Signal_Flag, @@ -3935,6 +3946,7 @@ package body Vhdl.Nodes_Meta is Field_Chain, Field_Interface_Declaration_Chain, Field_Return_Type_Mark, + Field_Default_Subprogram, -- Iir_Kind_Interface_Procedure_Declaration Field_Subprogram_Depth, Field_Identifier, @@ -3950,6 +3962,7 @@ package body Vhdl.Nodes_Meta is Field_Chain, Field_Interface_Declaration_Chain, Field_Return_Type_Mark, + Field_Default_Subprogram, -- Iir_Kind_Attribute_Implicit_Declaration Field_Parent, Field_Chain, @@ -5328,305 +5341,305 @@ package body Vhdl.Nodes_Meta is Iir_Kind_Association_Element_By_Expression => 114, Iir_Kind_Association_Element_By_Name => 122, Iir_Kind_Association_Element_By_Individual => 131, - Iir_Kind_Association_Element_Open => 137, - Iir_Kind_Association_Element_Package => 143, - Iir_Kind_Association_Element_Type => 151, - Iir_Kind_Association_Element_Subprogram => 157, - Iir_Kind_Association_Element_Terminal => 163, - Iir_Kind_Choice_By_Range => 171, - Iir_Kind_Choice_By_Expression => 179, - Iir_Kind_Choice_By_Others => 185, - Iir_Kind_Choice_By_None => 191, - Iir_Kind_Choice_By_Name => 198, - Iir_Kind_Entity_Aspect_Entity => 200, - Iir_Kind_Entity_Aspect_Configuration => 201, - Iir_Kind_Entity_Aspect_Open => 201, - Iir_Kind_Psl_Hierarchical_Name => 203, - Iir_Kind_Block_Configuration => 209, - Iir_Kind_Block_Header => 213, - Iir_Kind_Component_Configuration => 220, - Iir_Kind_Binding_Indication => 224, - Iir_Kind_Entity_Class => 226, - Iir_Kind_Attribute_Value => 234, - Iir_Kind_Signature => 239, - Iir_Kind_Aggregate_Info => 246, - Iir_Kind_Procedure_Call => 250, - Iir_Kind_Record_Element_Constraint => 258, - Iir_Kind_Array_Element_Resolution => 260, - Iir_Kind_Record_Resolution => 261, - Iir_Kind_Record_Element_Resolution => 264, - Iir_Kind_Break_Element => 268, - Iir_Kind_Attribute_Specification => 277, - Iir_Kind_Disconnection_Specification => 283, - Iir_Kind_Step_Limit_Specification => 289, - Iir_Kind_Configuration_Specification => 295, - Iir_Kind_Access_Type_Definition => 302, - Iir_Kind_Incomplete_Type_Definition => 309, - Iir_Kind_Interface_Type_Definition => 315, - Iir_Kind_File_Type_Definition => 321, - Iir_Kind_Protected_Type_Declaration => 331, - Iir_Kind_Record_Type_Definition => 341, - Iir_Kind_Array_Type_Definition => 352, - Iir_Kind_Array_Subtype_Definition => 369, - Iir_Kind_Record_Subtype_Definition => 382, - Iir_Kind_Access_Subtype_Definition => 390, - Iir_Kind_Physical_Subtype_Definition => 400, - Iir_Kind_Floating_Subtype_Definition => 411, - Iir_Kind_Integer_Subtype_Definition => 421, - Iir_Kind_Enumeration_Subtype_Definition => 431, - Iir_Kind_Enumeration_Type_Definition => 442, - Iir_Kind_Integer_Type_Definition => 450, - Iir_Kind_Floating_Type_Definition => 458, - Iir_Kind_Physical_Type_Definition => 469, - Iir_Kind_Range_Expression => 477, - Iir_Kind_Protected_Type_Body => 485, - Iir_Kind_Wildcard_Type_Definition => 489, - Iir_Kind_Foreign_Vector_Type_Definition => 490, - Iir_Kind_Subtype_Definition => 497, - Iir_Kind_Scalar_Nature_Definition => 505, - Iir_Kind_Record_Nature_Definition => 518, - Iir_Kind_Array_Nature_Definition => 532, - Iir_Kind_Array_Subnature_Definition => 547, - Iir_Kind_Overload_List => 548, - Iir_Kind_Foreign_Module => 553, - Iir_Kind_Entity_Declaration => 566, - Iir_Kind_Configuration_Declaration => 576, - Iir_Kind_Context_Declaration => 582, - Iir_Kind_Package_Declaration => 597, - Iir_Kind_Package_Instantiation_Declaration => 611, - Iir_Kind_Vmode_Declaration => 623, - Iir_Kind_Vprop_Declaration => 635, - Iir_Kind_Vunit_Declaration => 648, - Iir_Kind_Package_Body => 656, - Iir_Kind_Architecture_Body => 669, - Iir_Kind_Type_Declaration => 676, - Iir_Kind_Anonymous_Type_Declaration => 682, - Iir_Kind_Subtype_Declaration => 690, - Iir_Kind_Nature_Declaration => 696, - Iir_Kind_Subnature_Declaration => 703, - Iir_Kind_Package_Header => 705, - Iir_Kind_Unit_Declaration => 714, - Iir_Kind_Library_Declaration => 722, - Iir_Kind_Component_Declaration => 732, - Iir_Kind_Attribute_Declaration => 739, - Iir_Kind_Group_Template_Declaration => 745, - Iir_Kind_Group_Declaration => 752, - Iir_Kind_Element_Declaration => 760, - Iir_Kind_Nature_Element_Declaration => 767, - Iir_Kind_Non_Object_Alias_Declaration => 775, - Iir_Kind_Psl_Declaration => 783, - Iir_Kind_Psl_Endpoint_Declaration => 797, - Iir_Kind_Enumeration_Literal => 809, - Iir_Kind_Function_Declaration => 835, - Iir_Kind_Procedure_Declaration => 858, - Iir_Kind_Function_Body => 868, - Iir_Kind_Procedure_Body => 879, - Iir_Kind_Function_Instantiation_Declaration => 890, - Iir_Kind_Procedure_Instantiation_Declaration => 900, - Iir_Kind_Terminal_Declaration => 910, - Iir_Kind_Object_Alias_Declaration => 922, - Iir_Kind_Free_Quantity_Declaration => 934, - Iir_Kind_Spectrum_Quantity_Declaration => 947, - Iir_Kind_Noise_Quantity_Declaration => 959, - Iir_Kind_Across_Quantity_Declaration => 975, - Iir_Kind_Through_Quantity_Declaration => 991, - Iir_Kind_File_Declaration => 1006, - Iir_Kind_Guard_Signal_Declaration => 1020, - Iir_Kind_Signal_Declaration => 1037, - Iir_Kind_Variable_Declaration => 1050, - Iir_Kind_Constant_Declaration => 1064, - Iir_Kind_Iterator_Declaration => 1076, - Iir_Kind_Interface_Constant_Declaration => 1093, - Iir_Kind_Interface_Variable_Declaration => 1109, - Iir_Kind_Interface_Signal_Declaration => 1130, - Iir_Kind_Interface_File_Declaration => 1146, - Iir_Kind_Interface_Quantity_Declaration => 1162, - Iir_Kind_Interface_Terminal_Declaration => 1174, - Iir_Kind_Interface_Type_Declaration => 1185, - Iir_Kind_Interface_Package_Declaration => 1198, - Iir_Kind_Interface_Function_Declaration => 1216, - Iir_Kind_Interface_Procedure_Declaration => 1230, - Iir_Kind_Attribute_Implicit_Declaration => 1233, - Iir_Kind_Suspend_State_Declaration => 1236, - Iir_Kind_Identity_Operator => 1240, - Iir_Kind_Negation_Operator => 1244, - Iir_Kind_Absolute_Operator => 1248, - Iir_Kind_Not_Operator => 1252, - Iir_Kind_Implicit_Condition_Operator => 1256, - Iir_Kind_Condition_Operator => 1260, - Iir_Kind_Reduction_And_Operator => 1264, - Iir_Kind_Reduction_Or_Operator => 1268, - Iir_Kind_Reduction_Nand_Operator => 1272, - Iir_Kind_Reduction_Nor_Operator => 1276, - Iir_Kind_Reduction_Xor_Operator => 1280, - Iir_Kind_Reduction_Xnor_Operator => 1284, - Iir_Kind_And_Operator => 1289, - Iir_Kind_Or_Operator => 1294, - Iir_Kind_Nand_Operator => 1299, - Iir_Kind_Nor_Operator => 1304, - Iir_Kind_Xor_Operator => 1309, - Iir_Kind_Xnor_Operator => 1314, - Iir_Kind_Equality_Operator => 1319, - Iir_Kind_Inequality_Operator => 1324, - Iir_Kind_Less_Than_Operator => 1329, - Iir_Kind_Less_Than_Or_Equal_Operator => 1334, - Iir_Kind_Greater_Than_Operator => 1339, - Iir_Kind_Greater_Than_Or_Equal_Operator => 1344, - Iir_Kind_Match_Equality_Operator => 1349, - Iir_Kind_Match_Inequality_Operator => 1354, - Iir_Kind_Match_Less_Than_Operator => 1359, - Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1364, - Iir_Kind_Match_Greater_Than_Operator => 1369, - Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1374, - Iir_Kind_Sll_Operator => 1379, - Iir_Kind_Sla_Operator => 1384, - Iir_Kind_Srl_Operator => 1389, - Iir_Kind_Sra_Operator => 1394, - Iir_Kind_Rol_Operator => 1399, - Iir_Kind_Ror_Operator => 1404, - Iir_Kind_Addition_Operator => 1409, - Iir_Kind_Substraction_Operator => 1414, - Iir_Kind_Concatenation_Operator => 1419, - Iir_Kind_Multiplication_Operator => 1424, - Iir_Kind_Division_Operator => 1429, - Iir_Kind_Modulus_Operator => 1434, - Iir_Kind_Remainder_Operator => 1439, - Iir_Kind_Exponentiation_Operator => 1444, - Iir_Kind_Function_Call => 1452, - Iir_Kind_Aggregate => 1459, - Iir_Kind_Parenthesis_Expression => 1462, - Iir_Kind_Qualified_Expression => 1466, - Iir_Kind_Type_Conversion => 1471, - Iir_Kind_Allocator_By_Expression => 1476, - Iir_Kind_Allocator_By_Subtype => 1482, - Iir_Kind_Selected_Element => 1490, - Iir_Kind_Dereference => 1495, - Iir_Kind_Implicit_Dereference => 1500, - Iir_Kind_Slice_Name => 1507, - Iir_Kind_Indexed_Name => 1513, - Iir_Kind_Psl_Prev => 1519, - Iir_Kind_Psl_Stable => 1524, - Iir_Kind_Psl_Rose => 1529, - Iir_Kind_Psl_Fell => 1534, - Iir_Kind_Psl_Onehot => 1537, - Iir_Kind_Psl_Onehot0 => 1540, - Iir_Kind_Psl_Expression => 1542, - Iir_Kind_Sensitized_Process_Statement => 1564, - Iir_Kind_Process_Statement => 1585, - Iir_Kind_Concurrent_Simple_Signal_Assignment => 1598, - Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1611, - Iir_Kind_Concurrent_Selected_Signal_Assignment => 1625, - Iir_Kind_Concurrent_Assertion_Statement => 1633, - Iir_Kind_Concurrent_Procedure_Call_Statement => 1640, - Iir_Kind_Concurrent_Break_Statement => 1648, - Iir_Kind_Psl_Assert_Directive => 1662, - Iir_Kind_Psl_Assume_Directive => 1674, - Iir_Kind_Psl_Cover_Directive => 1686, - Iir_Kind_Psl_Restrict_Directive => 1697, - Iir_Kind_Block_Statement => 1711, - Iir_Kind_If_Generate_Statement => 1722, - Iir_Kind_Case_Generate_Statement => 1731, - Iir_Kind_For_Generate_Statement => 1740, - Iir_Kind_Component_Instantiation_Statement => 1751, - Iir_Kind_Psl_Default_Clock => 1754, - Iir_Kind_Generate_Statement_Body => 1765, - Iir_Kind_If_Generate_Else_Clause => 1771, - Iir_Kind_Simple_Simultaneous_Statement => 1778, - Iir_Kind_Simultaneous_Null_Statement => 1782, - Iir_Kind_Simultaneous_Procedural_Statement => 1793, - Iir_Kind_Simultaneous_Case_Statement => 1802, - Iir_Kind_Simultaneous_If_Statement => 1811, - Iir_Kind_Simultaneous_Elsif => 1817, - Iir_Kind_Simple_Signal_Assignment_Statement => 1828, - Iir_Kind_Conditional_Signal_Assignment_Statement => 1839, - Iir_Kind_Selected_Waveform_Assignment_Statement => 1851, - Iir_Kind_Signal_Force_Assignment_Statement => 1861, - Iir_Kind_Signal_Release_Assignment_Statement => 1870, - Iir_Kind_Null_Statement => 1874, - Iir_Kind_Assertion_Statement => 1881, - Iir_Kind_Report_Statement => 1887, - Iir_Kind_Wait_Statement => 1895, - Iir_Kind_Variable_Assignment_Statement => 1902, - Iir_Kind_Conditional_Variable_Assignment_Statement => 1909, - Iir_Kind_Return_Statement => 1915, - Iir_Kind_For_Loop_Statement => 1926, - Iir_Kind_While_Loop_Statement => 1937, - Iir_Kind_Next_Statement => 1944, - Iir_Kind_Exit_Statement => 1951, - Iir_Kind_Case_Statement => 1960, - Iir_Kind_Procedure_Call_Statement => 1966, - Iir_Kind_Break_Statement => 1973, - Iir_Kind_If_Statement => 1983, - Iir_Kind_Suspend_State_Statement => 1987, - Iir_Kind_Elsif => 1993, - Iir_Kind_Character_Literal => 2000, - Iir_Kind_Simple_Name => 2007, - Iir_Kind_Selected_Name => 2015, - Iir_Kind_Operator_Symbol => 2020, - Iir_Kind_Reference_Name => 2025, - Iir_Kind_External_Constant_Name => 2034, - Iir_Kind_External_Signal_Name => 2043, - Iir_Kind_External_Variable_Name => 2053, - Iir_Kind_Selected_By_All_Name => 2059, - Iir_Kind_Parenthesis_Name => 2064, - Iir_Kind_Package_Pathname => 2068, - Iir_Kind_Absolute_Pathname => 2069, - Iir_Kind_Relative_Pathname => 2070, - Iir_Kind_Pathname_Element => 2075, - Iir_Kind_Base_Attribute => 2077, - Iir_Kind_Subtype_Attribute => 2082, - Iir_Kind_Element_Attribute => 2087, - Iir_Kind_Across_Attribute => 2092, - Iir_Kind_Through_Attribute => 2097, - Iir_Kind_Nature_Reference_Attribute => 2101, - Iir_Kind_Left_Type_Attribute => 2106, - Iir_Kind_Right_Type_Attribute => 2111, - Iir_Kind_High_Type_Attribute => 2116, - Iir_Kind_Low_Type_Attribute => 2121, - Iir_Kind_Ascending_Type_Attribute => 2126, - Iir_Kind_Image_Attribute => 2132, - Iir_Kind_Value_Attribute => 2138, - Iir_Kind_Pos_Attribute => 2144, - Iir_Kind_Val_Attribute => 2150, - Iir_Kind_Succ_Attribute => 2156, - Iir_Kind_Pred_Attribute => 2162, - Iir_Kind_Leftof_Attribute => 2168, - Iir_Kind_Rightof_Attribute => 2174, - Iir_Kind_Signal_Slew_Attribute => 2182, - Iir_Kind_Quantity_Slew_Attribute => 2190, - Iir_Kind_Ramp_Attribute => 2198, - Iir_Kind_Zoh_Attribute => 2206, - Iir_Kind_Ltf_Attribute => 2214, - Iir_Kind_Ztf_Attribute => 2224, - Iir_Kind_Dot_Attribute => 2231, - Iir_Kind_Integ_Attribute => 2238, - Iir_Kind_Quantity_Delayed_Attribute => 2246, - Iir_Kind_Above_Attribute => 2254, - Iir_Kind_Delayed_Attribute => 2263, - Iir_Kind_Stable_Attribute => 2272, - Iir_Kind_Quiet_Attribute => 2281, - Iir_Kind_Transaction_Attribute => 2290, - Iir_Kind_Event_Attribute => 2294, - Iir_Kind_Active_Attribute => 2298, - Iir_Kind_Last_Event_Attribute => 2302, - Iir_Kind_Last_Active_Attribute => 2306, - Iir_Kind_Last_Value_Attribute => 2310, - Iir_Kind_Driving_Attribute => 2314, - Iir_Kind_Driving_Value_Attribute => 2318, - Iir_Kind_Behavior_Attribute => 2318, - Iir_Kind_Structure_Attribute => 2318, - Iir_Kind_Simple_Name_Attribute => 2325, - Iir_Kind_Instance_Name_Attribute => 2330, - Iir_Kind_Path_Name_Attribute => 2335, - Iir_Kind_Left_Array_Attribute => 2342, - Iir_Kind_Right_Array_Attribute => 2349, - Iir_Kind_High_Array_Attribute => 2356, - Iir_Kind_Low_Array_Attribute => 2363, - Iir_Kind_Length_Array_Attribute => 2370, - Iir_Kind_Ascending_Array_Attribute => 2377, - Iir_Kind_Range_Array_Attribute => 2384, - Iir_Kind_Reverse_Range_Array_Attribute => 2391, - Iir_Kind_Attribute_Name => 2400 + Iir_Kind_Association_Element_Open => 138, + Iir_Kind_Association_Element_Package => 144, + Iir_Kind_Association_Element_Type => 152, + Iir_Kind_Association_Element_Subprogram => 158, + Iir_Kind_Association_Element_Terminal => 164, + Iir_Kind_Choice_By_Range => 172, + Iir_Kind_Choice_By_Expression => 180, + Iir_Kind_Choice_By_Others => 186, + Iir_Kind_Choice_By_None => 192, + Iir_Kind_Choice_By_Name => 199, + Iir_Kind_Entity_Aspect_Entity => 201, + Iir_Kind_Entity_Aspect_Configuration => 202, + Iir_Kind_Entity_Aspect_Open => 202, + Iir_Kind_Psl_Hierarchical_Name => 204, + Iir_Kind_Block_Configuration => 210, + Iir_Kind_Block_Header => 214, + Iir_Kind_Component_Configuration => 221, + Iir_Kind_Binding_Indication => 225, + Iir_Kind_Entity_Class => 227, + Iir_Kind_Attribute_Value => 235, + Iir_Kind_Signature => 240, + Iir_Kind_Aggregate_Info => 247, + Iir_Kind_Procedure_Call => 251, + Iir_Kind_Record_Element_Constraint => 259, + Iir_Kind_Array_Element_Resolution => 261, + Iir_Kind_Record_Resolution => 262, + Iir_Kind_Record_Element_Resolution => 265, + Iir_Kind_Break_Element => 269, + Iir_Kind_Attribute_Specification => 278, + Iir_Kind_Disconnection_Specification => 284, + Iir_Kind_Step_Limit_Specification => 290, + Iir_Kind_Configuration_Specification => 296, + Iir_Kind_Access_Type_Definition => 303, + Iir_Kind_Incomplete_Type_Definition => 310, + Iir_Kind_Interface_Type_Definition => 316, + Iir_Kind_File_Type_Definition => 322, + Iir_Kind_Protected_Type_Declaration => 332, + Iir_Kind_Record_Type_Definition => 342, + Iir_Kind_Array_Type_Definition => 353, + Iir_Kind_Array_Subtype_Definition => 370, + Iir_Kind_Record_Subtype_Definition => 383, + Iir_Kind_Access_Subtype_Definition => 391, + Iir_Kind_Physical_Subtype_Definition => 401, + Iir_Kind_Floating_Subtype_Definition => 412, + Iir_Kind_Integer_Subtype_Definition => 422, + Iir_Kind_Enumeration_Subtype_Definition => 432, + Iir_Kind_Enumeration_Type_Definition => 443, + Iir_Kind_Integer_Type_Definition => 451, + Iir_Kind_Floating_Type_Definition => 459, + Iir_Kind_Physical_Type_Definition => 470, + Iir_Kind_Range_Expression => 478, + Iir_Kind_Protected_Type_Body => 486, + Iir_Kind_Wildcard_Type_Definition => 490, + Iir_Kind_Foreign_Vector_Type_Definition => 491, + Iir_Kind_Subtype_Definition => 498, + Iir_Kind_Scalar_Nature_Definition => 506, + Iir_Kind_Record_Nature_Definition => 519, + Iir_Kind_Array_Nature_Definition => 533, + Iir_Kind_Array_Subnature_Definition => 548, + Iir_Kind_Overload_List => 549, + Iir_Kind_Foreign_Module => 554, + Iir_Kind_Entity_Declaration => 567, + Iir_Kind_Configuration_Declaration => 577, + Iir_Kind_Context_Declaration => 583, + Iir_Kind_Package_Declaration => 598, + Iir_Kind_Package_Instantiation_Declaration => 612, + Iir_Kind_Vmode_Declaration => 624, + Iir_Kind_Vprop_Declaration => 636, + Iir_Kind_Vunit_Declaration => 649, + Iir_Kind_Package_Body => 657, + Iir_Kind_Architecture_Body => 670, + Iir_Kind_Type_Declaration => 677, + Iir_Kind_Anonymous_Type_Declaration => 683, + Iir_Kind_Subtype_Declaration => 691, + Iir_Kind_Nature_Declaration => 697, + Iir_Kind_Subnature_Declaration => 704, + Iir_Kind_Package_Header => 706, + Iir_Kind_Unit_Declaration => 715, + Iir_Kind_Library_Declaration => 723, + Iir_Kind_Component_Declaration => 733, + Iir_Kind_Attribute_Declaration => 740, + Iir_Kind_Group_Template_Declaration => 746, + Iir_Kind_Group_Declaration => 753, + Iir_Kind_Element_Declaration => 761, + Iir_Kind_Nature_Element_Declaration => 768, + Iir_Kind_Non_Object_Alias_Declaration => 776, + Iir_Kind_Psl_Declaration => 784, + Iir_Kind_Psl_Endpoint_Declaration => 798, + Iir_Kind_Enumeration_Literal => 810, + Iir_Kind_Function_Declaration => 836, + Iir_Kind_Procedure_Declaration => 859, + Iir_Kind_Function_Body => 869, + Iir_Kind_Procedure_Body => 880, + Iir_Kind_Function_Instantiation_Declaration => 891, + Iir_Kind_Procedure_Instantiation_Declaration => 901, + Iir_Kind_Terminal_Declaration => 911, + Iir_Kind_Object_Alias_Declaration => 923, + Iir_Kind_Free_Quantity_Declaration => 935, + Iir_Kind_Spectrum_Quantity_Declaration => 948, + Iir_Kind_Noise_Quantity_Declaration => 960, + Iir_Kind_Across_Quantity_Declaration => 976, + Iir_Kind_Through_Quantity_Declaration => 992, + Iir_Kind_File_Declaration => 1007, + Iir_Kind_Guard_Signal_Declaration => 1021, + Iir_Kind_Signal_Declaration => 1038, + Iir_Kind_Variable_Declaration => 1051, + Iir_Kind_Constant_Declaration => 1065, + Iir_Kind_Iterator_Declaration => 1077, + Iir_Kind_Interface_Constant_Declaration => 1094, + Iir_Kind_Interface_Variable_Declaration => 1110, + Iir_Kind_Interface_Signal_Declaration => 1131, + Iir_Kind_Interface_File_Declaration => 1147, + Iir_Kind_Interface_Quantity_Declaration => 1163, + Iir_Kind_Interface_Terminal_Declaration => 1175, + Iir_Kind_Interface_Type_Declaration => 1186, + Iir_Kind_Interface_Package_Declaration => 1199, + Iir_Kind_Interface_Function_Declaration => 1218, + Iir_Kind_Interface_Procedure_Declaration => 1233, + Iir_Kind_Attribute_Implicit_Declaration => 1236, + Iir_Kind_Suspend_State_Declaration => 1239, + Iir_Kind_Identity_Operator => 1243, + Iir_Kind_Negation_Operator => 1247, + Iir_Kind_Absolute_Operator => 1251, + Iir_Kind_Not_Operator => 1255, + Iir_Kind_Implicit_Condition_Operator => 1259, + Iir_Kind_Condition_Operator => 1263, + Iir_Kind_Reduction_And_Operator => 1267, + Iir_Kind_Reduction_Or_Operator => 1271, + Iir_Kind_Reduction_Nand_Operator => 1275, + Iir_Kind_Reduction_Nor_Operator => 1279, + Iir_Kind_Reduction_Xor_Operator => 1283, + Iir_Kind_Reduction_Xnor_Operator => 1287, + Iir_Kind_And_Operator => 1292, + Iir_Kind_Or_Operator => 1297, + Iir_Kind_Nand_Operator => 1302, + Iir_Kind_Nor_Operator => 1307, + Iir_Kind_Xor_Operator => 1312, + Iir_Kind_Xnor_Operator => 1317, + Iir_Kind_Equality_Operator => 1322, + Iir_Kind_Inequality_Operator => 1327, + Iir_Kind_Less_Than_Operator => 1332, + Iir_Kind_Less_Than_Or_Equal_Operator => 1337, + Iir_Kind_Greater_Than_Operator => 1342, + Iir_Kind_Greater_Than_Or_Equal_Operator => 1347, + Iir_Kind_Match_Equality_Operator => 1352, + Iir_Kind_Match_Inequality_Operator => 1357, + Iir_Kind_Match_Less_Than_Operator => 1362, + Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1367, + Iir_Kind_Match_Greater_Than_Operator => 1372, + Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1377, + Iir_Kind_Sll_Operator => 1382, + Iir_Kind_Sla_Operator => 1387, + Iir_Kind_Srl_Operator => 1392, + Iir_Kind_Sra_Operator => 1397, + Iir_Kind_Rol_Operator => 1402, + Iir_Kind_Ror_Operator => 1407, + Iir_Kind_Addition_Operator => 1412, + Iir_Kind_Substraction_Operator => 1417, + Iir_Kind_Concatenation_Operator => 1422, + Iir_Kind_Multiplication_Operator => 1427, + Iir_Kind_Division_Operator => 1432, + Iir_Kind_Modulus_Operator => 1437, + Iir_Kind_Remainder_Operator => 1442, + Iir_Kind_Exponentiation_Operator => 1447, + Iir_Kind_Function_Call => 1455, + Iir_Kind_Aggregate => 1462, + Iir_Kind_Parenthesis_Expression => 1465, + Iir_Kind_Qualified_Expression => 1469, + Iir_Kind_Type_Conversion => 1474, + Iir_Kind_Allocator_By_Expression => 1479, + Iir_Kind_Allocator_By_Subtype => 1485, + Iir_Kind_Selected_Element => 1493, + Iir_Kind_Dereference => 1498, + Iir_Kind_Implicit_Dereference => 1503, + Iir_Kind_Slice_Name => 1510, + Iir_Kind_Indexed_Name => 1516, + Iir_Kind_Psl_Prev => 1522, + Iir_Kind_Psl_Stable => 1527, + Iir_Kind_Psl_Rose => 1532, + Iir_Kind_Psl_Fell => 1537, + Iir_Kind_Psl_Onehot => 1540, + Iir_Kind_Psl_Onehot0 => 1543, + Iir_Kind_Psl_Expression => 1545, + Iir_Kind_Sensitized_Process_Statement => 1567, + Iir_Kind_Process_Statement => 1588, + Iir_Kind_Concurrent_Simple_Signal_Assignment => 1601, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1614, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1628, + Iir_Kind_Concurrent_Assertion_Statement => 1636, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1643, + Iir_Kind_Concurrent_Break_Statement => 1651, + Iir_Kind_Psl_Assert_Directive => 1665, + Iir_Kind_Psl_Assume_Directive => 1677, + Iir_Kind_Psl_Cover_Directive => 1689, + Iir_Kind_Psl_Restrict_Directive => 1700, + Iir_Kind_Block_Statement => 1714, + Iir_Kind_If_Generate_Statement => 1725, + Iir_Kind_Case_Generate_Statement => 1734, + Iir_Kind_For_Generate_Statement => 1743, + Iir_Kind_Component_Instantiation_Statement => 1754, + Iir_Kind_Psl_Default_Clock => 1757, + Iir_Kind_Generate_Statement_Body => 1768, + Iir_Kind_If_Generate_Else_Clause => 1774, + Iir_Kind_Simple_Simultaneous_Statement => 1781, + Iir_Kind_Simultaneous_Null_Statement => 1785, + Iir_Kind_Simultaneous_Procedural_Statement => 1796, + Iir_Kind_Simultaneous_Case_Statement => 1805, + Iir_Kind_Simultaneous_If_Statement => 1814, + Iir_Kind_Simultaneous_Elsif => 1820, + Iir_Kind_Simple_Signal_Assignment_Statement => 1831, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1842, + Iir_Kind_Selected_Waveform_Assignment_Statement => 1854, + Iir_Kind_Signal_Force_Assignment_Statement => 1864, + Iir_Kind_Signal_Release_Assignment_Statement => 1873, + Iir_Kind_Null_Statement => 1877, + Iir_Kind_Assertion_Statement => 1884, + Iir_Kind_Report_Statement => 1890, + Iir_Kind_Wait_Statement => 1898, + Iir_Kind_Variable_Assignment_Statement => 1905, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1912, + Iir_Kind_Return_Statement => 1918, + Iir_Kind_For_Loop_Statement => 1929, + Iir_Kind_While_Loop_Statement => 1940, + Iir_Kind_Next_Statement => 1947, + Iir_Kind_Exit_Statement => 1954, + Iir_Kind_Case_Statement => 1963, + Iir_Kind_Procedure_Call_Statement => 1969, + Iir_Kind_Break_Statement => 1976, + Iir_Kind_If_Statement => 1986, + Iir_Kind_Suspend_State_Statement => 1990, + Iir_Kind_Elsif => 1996, + Iir_Kind_Character_Literal => 2003, + Iir_Kind_Simple_Name => 2010, + Iir_Kind_Selected_Name => 2018, + Iir_Kind_Operator_Symbol => 2023, + Iir_Kind_Reference_Name => 2028, + Iir_Kind_External_Constant_Name => 2037, + Iir_Kind_External_Signal_Name => 2046, + Iir_Kind_External_Variable_Name => 2056, + Iir_Kind_Selected_By_All_Name => 2062, + Iir_Kind_Parenthesis_Name => 2067, + Iir_Kind_Package_Pathname => 2071, + Iir_Kind_Absolute_Pathname => 2072, + Iir_Kind_Relative_Pathname => 2073, + Iir_Kind_Pathname_Element => 2078, + Iir_Kind_Base_Attribute => 2080, + Iir_Kind_Subtype_Attribute => 2085, + Iir_Kind_Element_Attribute => 2090, + Iir_Kind_Across_Attribute => 2095, + Iir_Kind_Through_Attribute => 2100, + Iir_Kind_Nature_Reference_Attribute => 2104, + Iir_Kind_Left_Type_Attribute => 2109, + Iir_Kind_Right_Type_Attribute => 2114, + Iir_Kind_High_Type_Attribute => 2119, + Iir_Kind_Low_Type_Attribute => 2124, + Iir_Kind_Ascending_Type_Attribute => 2129, + Iir_Kind_Image_Attribute => 2135, + Iir_Kind_Value_Attribute => 2141, + Iir_Kind_Pos_Attribute => 2147, + Iir_Kind_Val_Attribute => 2153, + Iir_Kind_Succ_Attribute => 2159, + Iir_Kind_Pred_Attribute => 2165, + Iir_Kind_Leftof_Attribute => 2171, + Iir_Kind_Rightof_Attribute => 2177, + Iir_Kind_Signal_Slew_Attribute => 2185, + Iir_Kind_Quantity_Slew_Attribute => 2193, + Iir_Kind_Ramp_Attribute => 2201, + Iir_Kind_Zoh_Attribute => 2209, + Iir_Kind_Ltf_Attribute => 2217, + Iir_Kind_Ztf_Attribute => 2227, + Iir_Kind_Dot_Attribute => 2234, + Iir_Kind_Integ_Attribute => 2241, + Iir_Kind_Quantity_Delayed_Attribute => 2249, + Iir_Kind_Above_Attribute => 2257, + Iir_Kind_Delayed_Attribute => 2266, + Iir_Kind_Stable_Attribute => 2275, + Iir_Kind_Quiet_Attribute => 2284, + Iir_Kind_Transaction_Attribute => 2293, + Iir_Kind_Event_Attribute => 2297, + Iir_Kind_Active_Attribute => 2301, + Iir_Kind_Last_Event_Attribute => 2305, + Iir_Kind_Last_Active_Attribute => 2309, + Iir_Kind_Last_Value_Attribute => 2313, + Iir_Kind_Driving_Attribute => 2317, + Iir_Kind_Driving_Value_Attribute => 2321, + Iir_Kind_Behavior_Attribute => 2321, + Iir_Kind_Structure_Attribute => 2321, + Iir_Kind_Simple_Name_Attribute => 2328, + Iir_Kind_Instance_Name_Attribute => 2333, + Iir_Kind_Path_Name_Attribute => 2338, + Iir_Kind_Left_Array_Attribute => 2345, + Iir_Kind_Right_Array_Attribute => 2352, + Iir_Kind_High_Array_Attribute => 2359, + Iir_Kind_Low_Array_Attribute => 2366, + Iir_Kind_Length_Array_Attribute => 2373, + Iir_Kind_Ascending_Array_Attribute => 2380, + Iir_Kind_Range_Array_Attribute => 2387, + Iir_Kind_Reverse_Range_Array_Attribute => 2394, + Iir_Kind_Attribute_Name => 2403 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -6141,6 +6154,8 @@ package body Vhdl.Nodes_Meta is return Get_Formal (N); when Field_Actual => return Get_Actual (N); + when Field_Open_Actual => + return Get_Open_Actual (N); when Field_Actual_Conversion => return Get_Actual_Conversion (N); when Field_Formal_Conversion => @@ -6227,6 +6242,8 @@ package body Vhdl.Nodes_Meta is return Get_Base_Name (N); when Field_Interface_Declaration_Chain => return Get_Interface_Declaration_Chain (N); + when Field_Default_Subprogram => + return Get_Default_Subprogram (N); when Field_Subprogram_Specification => return Get_Subprogram_Specification (N); when Field_Sequential_Statement_Chain => @@ -6601,6 +6618,8 @@ package body Vhdl.Nodes_Meta is Set_Formal (N, V); when Field_Actual => Set_Actual (N, V); + when Field_Open_Actual => + Set_Open_Actual (N, V); when Field_Actual_Conversion => Set_Actual_Conversion (N, V); when Field_Formal_Conversion => @@ -6687,6 +6706,8 @@ package body Vhdl.Nodes_Meta is Set_Base_Name (N, V); when Field_Interface_Declaration_Chain => Set_Interface_Declaration_Chain (N, V); + when Field_Default_Subprogram => + Set_Default_Subprogram (N, V); when Field_Subprogram_Specification => Set_Subprogram_Specification (N, V); when Field_Sequential_Statement_Chain => @@ -8177,6 +8198,11 @@ package body Vhdl.Nodes_Meta is end case; end Has_Actual; + function Has_Open_Actual (K : Iir_Kind) return Boolean is + begin + return K = Iir_Kind_Association_Element_Open; + end Has_Open_Actual; + function Has_Actual_Conversion (K : Iir_Kind) return Boolean is begin case K is @@ -9121,6 +9147,17 @@ package body Vhdl.Nodes_Meta is end case; end Has_Interface_Declaration_Chain; + function Has_Default_Subprogram (K : Iir_Kind) return Boolean is + begin + case K is + when Iir_Kind_Interface_Function_Declaration + | Iir_Kind_Interface_Procedure_Declaration => + return True; + when others => + return False; + end case; + end Has_Default_Subprogram; + function Has_Subprogram_Specification (K : Iir_Kind) return Boolean is begin case K is |