diff options
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 472 |
1 files changed, 247 insertions, 225 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index 6ba34e060..76fa0cf84 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -168,6 +168,7 @@ package body Vhdl.Nodes_Meta is Field_Left_Limit_Expr => Type_Iir, Field_Right_Limit_Expr => Type_Iir, Field_Base_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, @@ -682,6 +683,8 @@ package body Vhdl.Nodes_Meta is return "right_limit_expr"; when Field_Base_Type => return "base_type"; + when Field_Simple_Nature => + return "simple_nature"; when Field_Base_Nature => return "base_nature"; when Field_Resolution_Indication => @@ -2006,6 +2009,8 @@ package body Vhdl.Nodes_Meta is return Attr_None; when Field_Base_Type => return Attr_Ref; + when Field_Simple_Nature => + return Attr_Ref; when Field_Base_Nature => return Attr_Ref; when Field_Resolution_Indication => @@ -3003,6 +3008,7 @@ package body Vhdl.Nodes_Meta is Field_Through_Type_Definition, Field_Across_Type, Field_Through_Type, + Field_Simple_Nature, -- Iir_Kind_Array_Nature_Definition Field_Index_Constraint_Flag, Field_Nature_Staticness, @@ -3013,6 +3019,7 @@ package body Vhdl.Nodes_Meta is Field_Element_Subnature, Field_Nature_Declarator, Field_Base_Nature, + Field_Simple_Nature, Field_Across_Type_Definition, Field_Through_Type_Definition, Field_Across_Type, @@ -5045,231 +5052,231 @@ package body Vhdl.Nodes_Meta is Iir_Kind_Wildcard_Type_Definition => 475, Iir_Kind_Subtype_Definition => 482, Iir_Kind_Scalar_Nature_Definition => 490, - Iir_Kind_Record_Nature_Definition => 502, - Iir_Kind_Array_Nature_Definition => 515, - Iir_Kind_Array_Subnature_Definition => 530, - Iir_Kind_Overload_List => 531, - Iir_Kind_Entity_Declaration => 544, - Iir_Kind_Configuration_Declaration => 553, - Iir_Kind_Context_Declaration => 559, - Iir_Kind_Package_Declaration => 574, - Iir_Kind_Package_Instantiation_Declaration => 588, - Iir_Kind_Vmode_Declaration => 599, - Iir_Kind_Vprop_Declaration => 610, - 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 => 663, - Iir_Kind_Nature_Declaration => 669, - Iir_Kind_Subnature_Declaration => 676, - Iir_Kind_Package_Header => 678, - Iir_Kind_Unit_Declaration => 687, - Iir_Kind_Library_Declaration => 694, - Iir_Kind_Component_Declaration => 704, - Iir_Kind_Attribute_Declaration => 711, - Iir_Kind_Group_Template_Declaration => 717, - Iir_Kind_Group_Declaration => 724, - Iir_Kind_Element_Declaration => 731, - Iir_Kind_Nature_Element_Declaration => 738, - Iir_Kind_Non_Object_Alias_Declaration => 746, - Iir_Kind_Psl_Declaration => 754, - Iir_Kind_Psl_Endpoint_Declaration => 768, - Iir_Kind_Enumeration_Literal => 779, - Iir_Kind_Function_Declaration => 804, - Iir_Kind_Procedure_Declaration => 828, - Iir_Kind_Function_Body => 838, - Iir_Kind_Procedure_Body => 849, - Iir_Kind_Terminal_Declaration => 858, - Iir_Kind_Object_Alias_Declaration => 869, - Iir_Kind_Free_Quantity_Declaration => 881, - Iir_Kind_Spectrum_Quantity_Declaration => 894, - Iir_Kind_Noise_Quantity_Declaration => 906, - Iir_Kind_Across_Quantity_Declaration => 922, - Iir_Kind_Through_Quantity_Declaration => 938, - Iir_Kind_File_Declaration => 952, - Iir_Kind_Guard_Signal_Declaration => 965, - Iir_Kind_Signal_Declaration => 982, - Iir_Kind_Variable_Declaration => 995, - Iir_Kind_Constant_Declaration => 1009, - Iir_Kind_Iterator_Declaration => 1020, - Iir_Kind_Interface_Constant_Declaration => 1036, - Iir_Kind_Interface_Variable_Declaration => 1052, - Iir_Kind_Interface_Signal_Declaration => 1073, - Iir_Kind_Interface_File_Declaration => 1089, - Iir_Kind_Interface_Quantity_Declaration => 1105, - Iir_Kind_Interface_Terminal_Declaration => 1117, - Iir_Kind_Interface_Type_Declaration => 1127, - Iir_Kind_Interface_Package_Declaration => 1139, - Iir_Kind_Interface_Function_Declaration => 1156, - Iir_Kind_Interface_Procedure_Declaration => 1169, - Iir_Kind_Anonymous_Signal_Declaration => 1178, - Iir_Kind_Signal_Attribute_Declaration => 1181, - Iir_Kind_Identity_Operator => 1185, - Iir_Kind_Negation_Operator => 1189, - Iir_Kind_Absolute_Operator => 1193, - Iir_Kind_Not_Operator => 1197, - Iir_Kind_Implicit_Condition_Operator => 1201, - Iir_Kind_Condition_Operator => 1205, - Iir_Kind_Reduction_And_Operator => 1209, - Iir_Kind_Reduction_Or_Operator => 1213, - Iir_Kind_Reduction_Nand_Operator => 1217, - Iir_Kind_Reduction_Nor_Operator => 1221, - Iir_Kind_Reduction_Xor_Operator => 1225, - Iir_Kind_Reduction_Xnor_Operator => 1229, - Iir_Kind_And_Operator => 1234, - Iir_Kind_Or_Operator => 1239, - Iir_Kind_Nand_Operator => 1244, - Iir_Kind_Nor_Operator => 1249, - Iir_Kind_Xor_Operator => 1254, - Iir_Kind_Xnor_Operator => 1259, - Iir_Kind_Equality_Operator => 1264, - Iir_Kind_Inequality_Operator => 1269, - Iir_Kind_Less_Than_Operator => 1274, - Iir_Kind_Less_Than_Or_Equal_Operator => 1279, - Iir_Kind_Greater_Than_Operator => 1284, - Iir_Kind_Greater_Than_Or_Equal_Operator => 1289, - Iir_Kind_Match_Equality_Operator => 1294, - Iir_Kind_Match_Inequality_Operator => 1299, - Iir_Kind_Match_Less_Than_Operator => 1304, - Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1309, - Iir_Kind_Match_Greater_Than_Operator => 1314, - Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1319, - Iir_Kind_Sll_Operator => 1324, - Iir_Kind_Sla_Operator => 1329, - Iir_Kind_Srl_Operator => 1334, - Iir_Kind_Sra_Operator => 1339, - Iir_Kind_Rol_Operator => 1344, - Iir_Kind_Ror_Operator => 1349, - Iir_Kind_Addition_Operator => 1354, - Iir_Kind_Substraction_Operator => 1359, - Iir_Kind_Concatenation_Operator => 1364, - Iir_Kind_Multiplication_Operator => 1369, - Iir_Kind_Division_Operator => 1374, - Iir_Kind_Modulus_Operator => 1379, - Iir_Kind_Remainder_Operator => 1384, - Iir_Kind_Exponentiation_Operator => 1389, - Iir_Kind_Function_Call => 1397, - Iir_Kind_Aggregate => 1404, - Iir_Kind_Parenthesis_Expression => 1407, - Iir_Kind_Qualified_Expression => 1411, - Iir_Kind_Type_Conversion => 1416, - Iir_Kind_Allocator_By_Expression => 1420, - Iir_Kind_Allocator_By_Subtype => 1425, - Iir_Kind_Selected_Element => 1433, - Iir_Kind_Dereference => 1438, - Iir_Kind_Implicit_Dereference => 1443, - Iir_Kind_Slice_Name => 1450, - Iir_Kind_Indexed_Name => 1456, - Iir_Kind_Psl_Expression => 1458, - Iir_Kind_Sensitized_Process_Statement => 1479, - Iir_Kind_Process_Statement => 1499, - Iir_Kind_Concurrent_Simple_Signal_Assignment => 1512, - Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1525, - Iir_Kind_Concurrent_Selected_Signal_Assignment => 1539, - Iir_Kind_Concurrent_Assertion_Statement => 1547, - Iir_Kind_Concurrent_Procedure_Call_Statement => 1554, - Iir_Kind_Concurrent_Break_Statement => 1562, - Iir_Kind_Psl_Assert_Directive => 1575, - Iir_Kind_Psl_Assume_Directive => 1586, - Iir_Kind_Psl_Cover_Directive => 1598, - Iir_Kind_Psl_Restrict_Directive => 1609, - Iir_Kind_Block_Statement => 1623, - Iir_Kind_If_Generate_Statement => 1634, - Iir_Kind_Case_Generate_Statement => 1643, - Iir_Kind_For_Generate_Statement => 1652, - Iir_Kind_Component_Instantiation_Statement => 1663, - Iir_Kind_Psl_Default_Clock => 1667, - Iir_Kind_Generate_Statement_Body => 1678, - Iir_Kind_If_Generate_Else_Clause => 1684, - Iir_Kind_Simple_Simultaneous_Statement => 1691, - Iir_Kind_Simultaneous_Procedural_Statement => 1699, - Iir_Kind_Simultaneous_If_Statement => 1708, - Iir_Kind_Simultaneous_Elsif => 1714, - Iir_Kind_Simple_Signal_Assignment_Statement => 1725, - Iir_Kind_Conditional_Signal_Assignment_Statement => 1736, - Iir_Kind_Selected_Waveform_Assignment_Statement => 1748, - Iir_Kind_Null_Statement => 1752, - Iir_Kind_Assertion_Statement => 1759, - Iir_Kind_Report_Statement => 1765, - Iir_Kind_Wait_Statement => 1773, - Iir_Kind_Variable_Assignment_Statement => 1780, - Iir_Kind_Conditional_Variable_Assignment_Statement => 1787, - Iir_Kind_Return_Statement => 1793, - Iir_Kind_For_Loop_Statement => 1804, - Iir_Kind_While_Loop_Statement => 1815, - Iir_Kind_Next_Statement => 1822, - Iir_Kind_Exit_Statement => 1829, - Iir_Kind_Case_Statement => 1837, - Iir_Kind_Procedure_Call_Statement => 1843, - Iir_Kind_Break_Statement => 1850, - Iir_Kind_If_Statement => 1860, - Iir_Kind_Elsif => 1866, - Iir_Kind_Character_Literal => 1874, - Iir_Kind_Simple_Name => 1882, - Iir_Kind_Selected_Name => 1891, - Iir_Kind_Operator_Symbol => 1897, - Iir_Kind_Reference_Name => 1902, - Iir_Kind_External_Constant_Name => 1910, - Iir_Kind_External_Signal_Name => 1918, - Iir_Kind_External_Variable_Name => 1927, - Iir_Kind_Selected_By_All_Name => 1933, - Iir_Kind_Parenthesis_Name => 1938, - Iir_Kind_Package_Pathname => 1942, - Iir_Kind_Absolute_Pathname => 1943, - Iir_Kind_Relative_Pathname => 1944, - Iir_Kind_Pathname_Element => 1949, - Iir_Kind_Base_Attribute => 1951, - Iir_Kind_Subtype_Attribute => 1956, - Iir_Kind_Element_Attribute => 1961, - Iir_Kind_Across_Attribute => 1966, - Iir_Kind_Through_Attribute => 1971, - Iir_Kind_Nature_Reference_Attribute => 1975, - Iir_Kind_Left_Type_Attribute => 1980, - Iir_Kind_Right_Type_Attribute => 1985, - Iir_Kind_High_Type_Attribute => 1990, - Iir_Kind_Low_Type_Attribute => 1995, - Iir_Kind_Ascending_Type_Attribute => 2000, - Iir_Kind_Image_Attribute => 2006, - Iir_Kind_Value_Attribute => 2012, - Iir_Kind_Pos_Attribute => 2018, - Iir_Kind_Val_Attribute => 2024, - Iir_Kind_Succ_Attribute => 2030, - Iir_Kind_Pred_Attribute => 2036, - Iir_Kind_Leftof_Attribute => 2042, - Iir_Kind_Rightof_Attribute => 2048, - Iir_Kind_Signal_Slew_Attribute => 2056, - Iir_Kind_Quantity_Slew_Attribute => 2064, - Iir_Kind_Ramp_Attribute => 2072, - Iir_Kind_Dot_Attribute => 2079, - Iir_Kind_Integ_Attribute => 2086, - Iir_Kind_Above_Attribute => 2094, - Iir_Kind_Delayed_Attribute => 2103, - Iir_Kind_Stable_Attribute => 2112, - Iir_Kind_Quiet_Attribute => 2121, - Iir_Kind_Transaction_Attribute => 2130, - Iir_Kind_Event_Attribute => 2134, - Iir_Kind_Active_Attribute => 2138, - Iir_Kind_Last_Event_Attribute => 2142, - Iir_Kind_Last_Active_Attribute => 2146, - Iir_Kind_Last_Value_Attribute => 2150, - Iir_Kind_Driving_Attribute => 2154, - Iir_Kind_Driving_Value_Attribute => 2158, - Iir_Kind_Behavior_Attribute => 2158, - Iir_Kind_Structure_Attribute => 2158, - Iir_Kind_Simple_Name_Attribute => 2165, - Iir_Kind_Instance_Name_Attribute => 2170, - Iir_Kind_Path_Name_Attribute => 2175, - Iir_Kind_Left_Array_Attribute => 2182, - Iir_Kind_Right_Array_Attribute => 2189, - Iir_Kind_High_Array_Attribute => 2196, - Iir_Kind_Low_Array_Attribute => 2203, - Iir_Kind_Length_Array_Attribute => 2210, - Iir_Kind_Ascending_Array_Attribute => 2217, - Iir_Kind_Range_Array_Attribute => 2224, - Iir_Kind_Reverse_Range_Array_Attribute => 2231, - Iir_Kind_Attribute_Name => 2240 + Iir_Kind_Record_Nature_Definition => 503, + Iir_Kind_Array_Nature_Definition => 517, + Iir_Kind_Array_Subnature_Definition => 532, + Iir_Kind_Overload_List => 533, + Iir_Kind_Entity_Declaration => 546, + Iir_Kind_Configuration_Declaration => 555, + Iir_Kind_Context_Declaration => 561, + Iir_Kind_Package_Declaration => 576, + Iir_Kind_Package_Instantiation_Declaration => 590, + Iir_Kind_Vmode_Declaration => 601, + Iir_Kind_Vprop_Declaration => 612, + Iir_Kind_Vunit_Declaration => 624, + Iir_Kind_Package_Body => 632, + Iir_Kind_Architecture_Body => 645, + Iir_Kind_Type_Declaration => 652, + Iir_Kind_Anonymous_Type_Declaration => 658, + Iir_Kind_Subtype_Declaration => 665, + Iir_Kind_Nature_Declaration => 671, + Iir_Kind_Subnature_Declaration => 678, + Iir_Kind_Package_Header => 680, + Iir_Kind_Unit_Declaration => 689, + 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 => 733, + Iir_Kind_Nature_Element_Declaration => 740, + Iir_Kind_Non_Object_Alias_Declaration => 748, + Iir_Kind_Psl_Declaration => 756, + Iir_Kind_Psl_Endpoint_Declaration => 770, + Iir_Kind_Enumeration_Literal => 781, + Iir_Kind_Function_Declaration => 806, + Iir_Kind_Procedure_Declaration => 830, + Iir_Kind_Function_Body => 840, + Iir_Kind_Procedure_Body => 851, + Iir_Kind_Terminal_Declaration => 860, + Iir_Kind_Object_Alias_Declaration => 871, + Iir_Kind_Free_Quantity_Declaration => 883, + Iir_Kind_Spectrum_Quantity_Declaration => 896, + Iir_Kind_Noise_Quantity_Declaration => 908, + Iir_Kind_Across_Quantity_Declaration => 924, + Iir_Kind_Through_Quantity_Declaration => 940, + Iir_Kind_File_Declaration => 954, + Iir_Kind_Guard_Signal_Declaration => 967, + Iir_Kind_Signal_Declaration => 984, + Iir_Kind_Variable_Declaration => 997, + Iir_Kind_Constant_Declaration => 1011, + Iir_Kind_Iterator_Declaration => 1022, + Iir_Kind_Interface_Constant_Declaration => 1038, + Iir_Kind_Interface_Variable_Declaration => 1054, + Iir_Kind_Interface_Signal_Declaration => 1075, + Iir_Kind_Interface_File_Declaration => 1091, + Iir_Kind_Interface_Quantity_Declaration => 1107, + Iir_Kind_Interface_Terminal_Declaration => 1119, + Iir_Kind_Interface_Type_Declaration => 1129, + Iir_Kind_Interface_Package_Declaration => 1141, + Iir_Kind_Interface_Function_Declaration => 1158, + Iir_Kind_Interface_Procedure_Declaration => 1171, + Iir_Kind_Anonymous_Signal_Declaration => 1180, + Iir_Kind_Signal_Attribute_Declaration => 1183, + Iir_Kind_Identity_Operator => 1187, + Iir_Kind_Negation_Operator => 1191, + Iir_Kind_Absolute_Operator => 1195, + Iir_Kind_Not_Operator => 1199, + Iir_Kind_Implicit_Condition_Operator => 1203, + Iir_Kind_Condition_Operator => 1207, + Iir_Kind_Reduction_And_Operator => 1211, + Iir_Kind_Reduction_Or_Operator => 1215, + Iir_Kind_Reduction_Nand_Operator => 1219, + Iir_Kind_Reduction_Nor_Operator => 1223, + Iir_Kind_Reduction_Xor_Operator => 1227, + Iir_Kind_Reduction_Xnor_Operator => 1231, + Iir_Kind_And_Operator => 1236, + Iir_Kind_Or_Operator => 1241, + Iir_Kind_Nand_Operator => 1246, + Iir_Kind_Nor_Operator => 1251, + Iir_Kind_Xor_Operator => 1256, + Iir_Kind_Xnor_Operator => 1261, + Iir_Kind_Equality_Operator => 1266, + Iir_Kind_Inequality_Operator => 1271, + Iir_Kind_Less_Than_Operator => 1276, + Iir_Kind_Less_Than_Or_Equal_Operator => 1281, + Iir_Kind_Greater_Than_Operator => 1286, + Iir_Kind_Greater_Than_Or_Equal_Operator => 1291, + Iir_Kind_Match_Equality_Operator => 1296, + Iir_Kind_Match_Inequality_Operator => 1301, + Iir_Kind_Match_Less_Than_Operator => 1306, + Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1311, + Iir_Kind_Match_Greater_Than_Operator => 1316, + Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1321, + Iir_Kind_Sll_Operator => 1326, + Iir_Kind_Sla_Operator => 1331, + Iir_Kind_Srl_Operator => 1336, + Iir_Kind_Sra_Operator => 1341, + Iir_Kind_Rol_Operator => 1346, + Iir_Kind_Ror_Operator => 1351, + Iir_Kind_Addition_Operator => 1356, + Iir_Kind_Substraction_Operator => 1361, + Iir_Kind_Concatenation_Operator => 1366, + Iir_Kind_Multiplication_Operator => 1371, + Iir_Kind_Division_Operator => 1376, + Iir_Kind_Modulus_Operator => 1381, + Iir_Kind_Remainder_Operator => 1386, + Iir_Kind_Exponentiation_Operator => 1391, + Iir_Kind_Function_Call => 1399, + Iir_Kind_Aggregate => 1406, + Iir_Kind_Parenthesis_Expression => 1409, + Iir_Kind_Qualified_Expression => 1413, + Iir_Kind_Type_Conversion => 1418, + Iir_Kind_Allocator_By_Expression => 1422, + Iir_Kind_Allocator_By_Subtype => 1427, + Iir_Kind_Selected_Element => 1435, + Iir_Kind_Dereference => 1440, + Iir_Kind_Implicit_Dereference => 1445, + Iir_Kind_Slice_Name => 1452, + Iir_Kind_Indexed_Name => 1458, + Iir_Kind_Psl_Expression => 1460, + Iir_Kind_Sensitized_Process_Statement => 1481, + Iir_Kind_Process_Statement => 1501, + Iir_Kind_Concurrent_Simple_Signal_Assignment => 1514, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1527, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1541, + Iir_Kind_Concurrent_Assertion_Statement => 1549, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1556, + Iir_Kind_Concurrent_Break_Statement => 1564, + Iir_Kind_Psl_Assert_Directive => 1577, + Iir_Kind_Psl_Assume_Directive => 1588, + Iir_Kind_Psl_Cover_Directive => 1600, + Iir_Kind_Psl_Restrict_Directive => 1611, + Iir_Kind_Block_Statement => 1625, + Iir_Kind_If_Generate_Statement => 1636, + Iir_Kind_Case_Generate_Statement => 1645, + Iir_Kind_For_Generate_Statement => 1654, + Iir_Kind_Component_Instantiation_Statement => 1665, + Iir_Kind_Psl_Default_Clock => 1669, + Iir_Kind_Generate_Statement_Body => 1680, + Iir_Kind_If_Generate_Else_Clause => 1686, + Iir_Kind_Simple_Simultaneous_Statement => 1693, + Iir_Kind_Simultaneous_Procedural_Statement => 1701, + Iir_Kind_Simultaneous_If_Statement => 1710, + Iir_Kind_Simultaneous_Elsif => 1716, + Iir_Kind_Simple_Signal_Assignment_Statement => 1727, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1738, + Iir_Kind_Selected_Waveform_Assignment_Statement => 1750, + Iir_Kind_Null_Statement => 1754, + Iir_Kind_Assertion_Statement => 1761, + Iir_Kind_Report_Statement => 1767, + Iir_Kind_Wait_Statement => 1775, + Iir_Kind_Variable_Assignment_Statement => 1782, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1789, + Iir_Kind_Return_Statement => 1795, + Iir_Kind_For_Loop_Statement => 1806, + Iir_Kind_While_Loop_Statement => 1817, + Iir_Kind_Next_Statement => 1824, + Iir_Kind_Exit_Statement => 1831, + Iir_Kind_Case_Statement => 1839, + Iir_Kind_Procedure_Call_Statement => 1845, + Iir_Kind_Break_Statement => 1852, + Iir_Kind_If_Statement => 1862, + Iir_Kind_Elsif => 1868, + Iir_Kind_Character_Literal => 1876, + Iir_Kind_Simple_Name => 1884, + Iir_Kind_Selected_Name => 1893, + Iir_Kind_Operator_Symbol => 1899, + Iir_Kind_Reference_Name => 1904, + Iir_Kind_External_Constant_Name => 1912, + Iir_Kind_External_Signal_Name => 1920, + Iir_Kind_External_Variable_Name => 1929, + Iir_Kind_Selected_By_All_Name => 1935, + Iir_Kind_Parenthesis_Name => 1940, + Iir_Kind_Package_Pathname => 1944, + Iir_Kind_Absolute_Pathname => 1945, + Iir_Kind_Relative_Pathname => 1946, + Iir_Kind_Pathname_Element => 1951, + Iir_Kind_Base_Attribute => 1953, + Iir_Kind_Subtype_Attribute => 1958, + Iir_Kind_Element_Attribute => 1963, + Iir_Kind_Across_Attribute => 1968, + Iir_Kind_Through_Attribute => 1973, + Iir_Kind_Nature_Reference_Attribute => 1977, + Iir_Kind_Left_Type_Attribute => 1982, + Iir_Kind_Right_Type_Attribute => 1987, + Iir_Kind_High_Type_Attribute => 1992, + Iir_Kind_Low_Type_Attribute => 1997, + Iir_Kind_Ascending_Type_Attribute => 2002, + Iir_Kind_Image_Attribute => 2008, + Iir_Kind_Value_Attribute => 2014, + Iir_Kind_Pos_Attribute => 2020, + Iir_Kind_Val_Attribute => 2026, + Iir_Kind_Succ_Attribute => 2032, + Iir_Kind_Pred_Attribute => 2038, + Iir_Kind_Leftof_Attribute => 2044, + Iir_Kind_Rightof_Attribute => 2050, + Iir_Kind_Signal_Slew_Attribute => 2058, + Iir_Kind_Quantity_Slew_Attribute => 2066, + Iir_Kind_Ramp_Attribute => 2074, + Iir_Kind_Dot_Attribute => 2081, + Iir_Kind_Integ_Attribute => 2088, + Iir_Kind_Above_Attribute => 2096, + Iir_Kind_Delayed_Attribute => 2105, + Iir_Kind_Stable_Attribute => 2114, + Iir_Kind_Quiet_Attribute => 2123, + Iir_Kind_Transaction_Attribute => 2132, + Iir_Kind_Event_Attribute => 2136, + Iir_Kind_Active_Attribute => 2140, + Iir_Kind_Last_Event_Attribute => 2144, + Iir_Kind_Last_Active_Attribute => 2148, + Iir_Kind_Last_Value_Attribute => 2152, + Iir_Kind_Driving_Attribute => 2156, + Iir_Kind_Driving_Value_Attribute => 2160, + Iir_Kind_Behavior_Attribute => 2160, + Iir_Kind_Structure_Attribute => 2160, + Iir_Kind_Simple_Name_Attribute => 2167, + Iir_Kind_Instance_Name_Attribute => 2172, + Iir_Kind_Path_Name_Attribute => 2177, + Iir_Kind_Left_Array_Attribute => 2184, + Iir_Kind_Right_Array_Attribute => 2191, + Iir_Kind_High_Array_Attribute => 2198, + Iir_Kind_Low_Array_Attribute => 2205, + Iir_Kind_Length_Array_Attribute => 2212, + Iir_Kind_Ascending_Array_Attribute => 2219, + Iir_Kind_Range_Array_Attribute => 2226, + Iir_Kind_Reverse_Range_Array_Attribute => 2233, + Iir_Kind_Attribute_Name => 2242 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -5864,6 +5871,8 @@ package body Vhdl.Nodes_Meta is return Get_Right_Limit_Expr (N); when Field_Base_Type => return Get_Base_Type (N); + when Field_Simple_Nature => + return Get_Simple_Nature (N); when Field_Base_Nature => return Get_Base_Nature (N); when Field_Resolution_Indication => @@ -6306,6 +6315,8 @@ package body Vhdl.Nodes_Meta is Set_Right_Limit_Expr (N, V); when Field_Base_Type => Set_Base_Type (N, V); + when Field_Simple_Nature => + Set_Simple_Nature (N, V); when Field_Base_Nature => Set_Base_Nature (N, V); when Field_Resolution_Indication => @@ -9231,6 +9242,17 @@ package body Vhdl.Nodes_Meta is end case; end Has_Base_Type; + function Has_Simple_Nature (K : Iir_Kind) return Boolean is + begin + case K is + when Iir_Kind_Record_Nature_Definition + | Iir_Kind_Array_Nature_Definition => + return True; + when others => + return False; + end case; + end Has_Simple_Nature; + function Has_Base_Nature (K : Iir_Kind) return Boolean is begin case K is |