aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-10-30 18:39:34 +0100
committerTristan Gingold <tgingold@free.fr>2019-10-30 18:39:34 +0100
commit5460489790f0b2934b1b61c8610b798ab7a47d4d (patch)
treef0ad037c34e6e8ac53722c5236ca3c81b8c02482 /src/vhdl
parentbeadc8e7be3d5d58f6b76d405673642c58b23a30 (diff)
downloadghdl-5460489790f0b2934b1b61c8610b798ab7a47d4d.tar.gz
ghdl-5460489790f0b2934b1b61c8610b798ab7a47d4d.tar.bz2
ghdl-5460489790f0b2934b1b61c8610b798ab7a47d4d.zip
vhdl: allow attributes in vunit declarations.
Diffstat (limited to 'src/vhdl')
-rw-r--r--src/vhdl/vhdl-annotations.adb4
-rw-r--r--src/vhdl/vhdl-canon.adb4
-rw-r--r--src/vhdl/vhdl-nodes.ads2
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb400
-rw-r--r--src/vhdl/vhdl-sem_psl.adb4
-rw-r--r--src/vhdl/vhdl-sem_specs.adb2
6 files changed, 216 insertions, 200 deletions
diff --git a/src/vhdl/vhdl-annotations.adb b/src/vhdl/vhdl-annotations.adb
index fe6161b50..6d7ec3048 100644
--- a/src/vhdl/vhdl-annotations.adb
+++ b/src/vhdl/vhdl-annotations.adb
@@ -1195,7 +1195,9 @@ package body Vhdl.Annotations is
| Iir_Kind_Function_Declaration
| Iir_Kind_Procedure_Declaration
| Iir_Kind_Function_Body
- | Iir_Kind_Procedure_Body =>
+ | Iir_Kind_Procedure_Body
+ | Iir_Kind_Attribute_Declaration
+ | Iir_Kind_Attribute_Specification =>
Annotate_Declaration (Vunit_Info, Item);
when Iir_Kind_Concurrent_Simple_Signal_Assignment =>
Annotate_Concurrent_Statement (Vunit_Info, Item);
diff --git a/src/vhdl/vhdl-canon.adb b/src/vhdl/vhdl-canon.adb
index bc4da8806..9099cb064 100644
--- a/src/vhdl/vhdl-canon.adb
+++ b/src/vhdl/vhdl-canon.adb
@@ -3260,7 +3260,9 @@ package body Vhdl.Canon is
| Iir_Kind_Function_Declaration
| Iir_Kind_Procedure_Declaration
| Iir_Kind_Function_Body
- | Iir_Kind_Procedure_Body =>
+ | Iir_Kind_Procedure_Body
+ | Iir_Kind_Attribute_Declaration
+ | Iir_Kind_Attribute_Specification =>
Item := Canon_Declaration (Unit, Item, Null_Iir);
when Iir_Kind_Concurrent_Simple_Signal_Assignment =>
Canon_Concurrent_Label (Item, Proc_Num);
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 8de95478b..d02cddbc9 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -1055,6 +1055,8 @@ package Vhdl.Nodes is
--
-- Get/Set_Inherit_Spec_Chain (Field2)
--
+ -- Get/Set_Attribute_Value_Chain (Field4)
+ --
-- Get/Set_Vunit_Item_Chain (Field5)
--
-- Only for Iir_Kind_Vunit_Declaration:
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index 31b66a691..98f77cebb 100644
--- a/src/vhdl/vhdl-nodes_meta.adb
+++ b/src/vhdl/vhdl-nodes_meta.adb
@@ -2876,6 +2876,7 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Hierarchical_Name,
Field_Inherit_Spec_Chain,
+ Field_Attribute_Value_Chain,
Field_Vunit_Item_Chain,
-- Iir_Kind_Vprop_Declaration
Field_Identifier,
@@ -2887,6 +2888,7 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Hierarchical_Name,
Field_Inherit_Spec_Chain,
+ Field_Attribute_Value_Chain,
Field_Vunit_Item_Chain,
-- Iir_Kind_Vunit_Declaration
Field_Identifier,
@@ -2898,6 +2900,7 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Hierarchical_Name,
Field_Inherit_Spec_Chain,
+ Field_Attribute_Value_Chain,
Field_Vunit_Item_Chain,
Field_Bound_Vunit_Chain,
-- Iir_Kind_Package_Body
@@ -4619,203 +4622,203 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Context_Declaration => 499,
Iir_Kind_Package_Declaration => 514,
Iir_Kind_Package_Instantiation_Declaration => 528,
- Iir_Kind_Vmode_Declaration => 538,
- Iir_Kind_Vprop_Declaration => 548,
- Iir_Kind_Vunit_Declaration => 559,
- Iir_Kind_Package_Body => 567,
- Iir_Kind_Architecture_Body => 580,
- Iir_Kind_Type_Declaration => 587,
- Iir_Kind_Anonymous_Type_Declaration => 593,
- Iir_Kind_Subtype_Declaration => 600,
- Iir_Kind_Nature_Declaration => 606,
- Iir_Kind_Subnature_Declaration => 612,
- Iir_Kind_Package_Header => 614,
- Iir_Kind_Unit_Declaration => 623,
- Iir_Kind_Library_Declaration => 630,
- Iir_Kind_Component_Declaration => 640,
- Iir_Kind_Attribute_Declaration => 647,
- Iir_Kind_Group_Template_Declaration => 653,
- Iir_Kind_Group_Declaration => 660,
- Iir_Kind_Element_Declaration => 667,
- Iir_Kind_Non_Object_Alias_Declaration => 675,
- Iir_Kind_Psl_Declaration => 683,
- Iir_Kind_Psl_Endpoint_Declaration => 697,
- Iir_Kind_Terminal_Declaration => 704,
- Iir_Kind_Free_Quantity_Declaration => 715,
- Iir_Kind_Across_Quantity_Declaration => 727,
- Iir_Kind_Through_Quantity_Declaration => 739,
- Iir_Kind_Enumeration_Literal => 750,
- Iir_Kind_Function_Declaration => 775,
- Iir_Kind_Procedure_Declaration => 799,
- Iir_Kind_Function_Body => 809,
- Iir_Kind_Procedure_Body => 820,
- Iir_Kind_Object_Alias_Declaration => 831,
- Iir_Kind_File_Declaration => 845,
- Iir_Kind_Guard_Signal_Declaration => 858,
- Iir_Kind_Signal_Declaration => 875,
- Iir_Kind_Variable_Declaration => 888,
- Iir_Kind_Constant_Declaration => 902,
- Iir_Kind_Iterator_Declaration => 913,
- Iir_Kind_Interface_Constant_Declaration => 929,
- Iir_Kind_Interface_Variable_Declaration => 945,
- Iir_Kind_Interface_Signal_Declaration => 966,
- Iir_Kind_Interface_File_Declaration => 982,
- Iir_Kind_Interface_Type_Declaration => 992,
- Iir_Kind_Interface_Package_Declaration => 1004,
- Iir_Kind_Interface_Function_Declaration => 1021,
- Iir_Kind_Interface_Procedure_Declaration => 1034,
- Iir_Kind_Anonymous_Signal_Declaration => 1043,
- Iir_Kind_Signal_Attribute_Declaration => 1046,
- Iir_Kind_Identity_Operator => 1050,
- Iir_Kind_Negation_Operator => 1054,
- Iir_Kind_Absolute_Operator => 1058,
- Iir_Kind_Not_Operator => 1062,
- Iir_Kind_Implicit_Condition_Operator => 1066,
- Iir_Kind_Condition_Operator => 1070,
- Iir_Kind_Reduction_And_Operator => 1074,
- Iir_Kind_Reduction_Or_Operator => 1078,
- Iir_Kind_Reduction_Nand_Operator => 1082,
- Iir_Kind_Reduction_Nor_Operator => 1086,
- Iir_Kind_Reduction_Xor_Operator => 1090,
- Iir_Kind_Reduction_Xnor_Operator => 1094,
- Iir_Kind_And_Operator => 1099,
- Iir_Kind_Or_Operator => 1104,
- Iir_Kind_Nand_Operator => 1109,
- Iir_Kind_Nor_Operator => 1114,
- Iir_Kind_Xor_Operator => 1119,
- Iir_Kind_Xnor_Operator => 1124,
- Iir_Kind_Equality_Operator => 1129,
- Iir_Kind_Inequality_Operator => 1134,
- Iir_Kind_Less_Than_Operator => 1139,
- Iir_Kind_Less_Than_Or_Equal_Operator => 1144,
- Iir_Kind_Greater_Than_Operator => 1149,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 1154,
- Iir_Kind_Match_Equality_Operator => 1159,
- Iir_Kind_Match_Inequality_Operator => 1164,
- Iir_Kind_Match_Less_Than_Operator => 1169,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1174,
- Iir_Kind_Match_Greater_Than_Operator => 1179,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1184,
- Iir_Kind_Sll_Operator => 1189,
- Iir_Kind_Sla_Operator => 1194,
- Iir_Kind_Srl_Operator => 1199,
- Iir_Kind_Sra_Operator => 1204,
- Iir_Kind_Rol_Operator => 1209,
- Iir_Kind_Ror_Operator => 1214,
- Iir_Kind_Addition_Operator => 1219,
- Iir_Kind_Substraction_Operator => 1224,
- Iir_Kind_Concatenation_Operator => 1229,
- Iir_Kind_Multiplication_Operator => 1234,
- Iir_Kind_Division_Operator => 1239,
- Iir_Kind_Modulus_Operator => 1244,
- Iir_Kind_Remainder_Operator => 1249,
- Iir_Kind_Exponentiation_Operator => 1254,
- Iir_Kind_Function_Call => 1262,
- Iir_Kind_Aggregate => 1269,
- Iir_Kind_Parenthesis_Expression => 1272,
- Iir_Kind_Qualified_Expression => 1276,
- Iir_Kind_Type_Conversion => 1281,
- Iir_Kind_Allocator_By_Expression => 1285,
- Iir_Kind_Allocator_By_Subtype => 1290,
- Iir_Kind_Selected_Element => 1298,
- Iir_Kind_Dereference => 1303,
- Iir_Kind_Implicit_Dereference => 1308,
- Iir_Kind_Slice_Name => 1315,
- Iir_Kind_Indexed_Name => 1321,
- Iir_Kind_Psl_Expression => 1323,
- Iir_Kind_Sensitized_Process_Statement => 1344,
- Iir_Kind_Process_Statement => 1364,
- Iir_Kind_Concurrent_Simple_Signal_Assignment => 1376,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1388,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1401,
- Iir_Kind_Concurrent_Assertion_Statement => 1409,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1416,
- Iir_Kind_Psl_Assert_Directive => 1429,
- Iir_Kind_Psl_Assume_Directive => 1440,
- Iir_Kind_Psl_Cover_Directive => 1452,
- Iir_Kind_Psl_Restrict_Directive => 1463,
- Iir_Kind_Block_Statement => 1477,
- Iir_Kind_If_Generate_Statement => 1488,
- Iir_Kind_Case_Generate_Statement => 1497,
- Iir_Kind_For_Generate_Statement => 1506,
- Iir_Kind_Component_Instantiation_Statement => 1517,
- Iir_Kind_Psl_Default_Clock => 1521,
- Iir_Kind_Simple_Simultaneous_Statement => 1528,
- Iir_Kind_Generate_Statement_Body => 1539,
- Iir_Kind_If_Generate_Else_Clause => 1545,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1555,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1565,
- Iir_Kind_Selected_Waveform_Assignment_Statement => 1576,
- Iir_Kind_Null_Statement => 1580,
- Iir_Kind_Assertion_Statement => 1587,
- Iir_Kind_Report_Statement => 1593,
- Iir_Kind_Wait_Statement => 1601,
- Iir_Kind_Variable_Assignment_Statement => 1608,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1615,
- Iir_Kind_Return_Statement => 1621,
- Iir_Kind_For_Loop_Statement => 1632,
- Iir_Kind_While_Loop_Statement => 1643,
- Iir_Kind_Next_Statement => 1650,
- Iir_Kind_Exit_Statement => 1657,
- Iir_Kind_Case_Statement => 1665,
- Iir_Kind_Procedure_Call_Statement => 1671,
- Iir_Kind_If_Statement => 1681,
- Iir_Kind_Elsif => 1687,
- Iir_Kind_Character_Literal => 1695,
- Iir_Kind_Simple_Name => 1703,
- Iir_Kind_Selected_Name => 1712,
- Iir_Kind_Operator_Symbol => 1718,
- Iir_Kind_Reference_Name => 1723,
- Iir_Kind_External_Constant_Name => 1731,
- Iir_Kind_External_Signal_Name => 1739,
- Iir_Kind_External_Variable_Name => 1748,
- Iir_Kind_Selected_By_All_Name => 1754,
- Iir_Kind_Parenthesis_Name => 1759,
- Iir_Kind_Package_Pathname => 1763,
- Iir_Kind_Absolute_Pathname => 1764,
- Iir_Kind_Relative_Pathname => 1765,
- Iir_Kind_Pathname_Element => 1770,
- Iir_Kind_Base_Attribute => 1772,
- Iir_Kind_Subtype_Attribute => 1777,
- Iir_Kind_Element_Attribute => 1782,
- Iir_Kind_Left_Type_Attribute => 1787,
- Iir_Kind_Right_Type_Attribute => 1792,
- Iir_Kind_High_Type_Attribute => 1797,
- Iir_Kind_Low_Type_Attribute => 1802,
- Iir_Kind_Ascending_Type_Attribute => 1807,
- Iir_Kind_Image_Attribute => 1813,
- Iir_Kind_Value_Attribute => 1819,
- Iir_Kind_Pos_Attribute => 1825,
- Iir_Kind_Val_Attribute => 1831,
- Iir_Kind_Succ_Attribute => 1837,
- Iir_Kind_Pred_Attribute => 1843,
- Iir_Kind_Leftof_Attribute => 1849,
- Iir_Kind_Rightof_Attribute => 1855,
- Iir_Kind_Delayed_Attribute => 1864,
- Iir_Kind_Stable_Attribute => 1873,
- Iir_Kind_Quiet_Attribute => 1882,
- Iir_Kind_Transaction_Attribute => 1891,
- Iir_Kind_Event_Attribute => 1895,
- Iir_Kind_Active_Attribute => 1899,
- Iir_Kind_Last_Event_Attribute => 1903,
- Iir_Kind_Last_Active_Attribute => 1907,
- Iir_Kind_Last_Value_Attribute => 1911,
- Iir_Kind_Driving_Attribute => 1915,
- Iir_Kind_Driving_Value_Attribute => 1919,
- Iir_Kind_Behavior_Attribute => 1919,
- Iir_Kind_Structure_Attribute => 1919,
- Iir_Kind_Simple_Name_Attribute => 1926,
- Iir_Kind_Instance_Name_Attribute => 1931,
- Iir_Kind_Path_Name_Attribute => 1936,
- Iir_Kind_Left_Array_Attribute => 1943,
- Iir_Kind_Right_Array_Attribute => 1950,
- Iir_Kind_High_Array_Attribute => 1957,
- Iir_Kind_Low_Array_Attribute => 1964,
- Iir_Kind_Length_Array_Attribute => 1971,
- Iir_Kind_Ascending_Array_Attribute => 1978,
- Iir_Kind_Range_Array_Attribute => 1985,
- Iir_Kind_Reverse_Range_Array_Attribute => 1992,
- Iir_Kind_Attribute_Name => 2001
+ Iir_Kind_Vmode_Declaration => 539,
+ Iir_Kind_Vprop_Declaration => 550,
+ Iir_Kind_Vunit_Declaration => 562,
+ Iir_Kind_Package_Body => 570,
+ Iir_Kind_Architecture_Body => 583,
+ Iir_Kind_Type_Declaration => 590,
+ Iir_Kind_Anonymous_Type_Declaration => 596,
+ Iir_Kind_Subtype_Declaration => 603,
+ Iir_Kind_Nature_Declaration => 609,
+ Iir_Kind_Subnature_Declaration => 615,
+ Iir_Kind_Package_Header => 617,
+ Iir_Kind_Unit_Declaration => 626,
+ Iir_Kind_Library_Declaration => 633,
+ Iir_Kind_Component_Declaration => 643,
+ Iir_Kind_Attribute_Declaration => 650,
+ Iir_Kind_Group_Template_Declaration => 656,
+ Iir_Kind_Group_Declaration => 663,
+ Iir_Kind_Element_Declaration => 670,
+ Iir_Kind_Non_Object_Alias_Declaration => 678,
+ Iir_Kind_Psl_Declaration => 686,
+ Iir_Kind_Psl_Endpoint_Declaration => 700,
+ Iir_Kind_Terminal_Declaration => 707,
+ Iir_Kind_Free_Quantity_Declaration => 718,
+ Iir_Kind_Across_Quantity_Declaration => 730,
+ Iir_Kind_Through_Quantity_Declaration => 742,
+ Iir_Kind_Enumeration_Literal => 753,
+ Iir_Kind_Function_Declaration => 778,
+ Iir_Kind_Procedure_Declaration => 802,
+ Iir_Kind_Function_Body => 812,
+ Iir_Kind_Procedure_Body => 823,
+ Iir_Kind_Object_Alias_Declaration => 834,
+ Iir_Kind_File_Declaration => 848,
+ Iir_Kind_Guard_Signal_Declaration => 861,
+ Iir_Kind_Signal_Declaration => 878,
+ Iir_Kind_Variable_Declaration => 891,
+ Iir_Kind_Constant_Declaration => 905,
+ Iir_Kind_Iterator_Declaration => 916,
+ Iir_Kind_Interface_Constant_Declaration => 932,
+ Iir_Kind_Interface_Variable_Declaration => 948,
+ Iir_Kind_Interface_Signal_Declaration => 969,
+ Iir_Kind_Interface_File_Declaration => 985,
+ Iir_Kind_Interface_Type_Declaration => 995,
+ Iir_Kind_Interface_Package_Declaration => 1007,
+ Iir_Kind_Interface_Function_Declaration => 1024,
+ Iir_Kind_Interface_Procedure_Declaration => 1037,
+ Iir_Kind_Anonymous_Signal_Declaration => 1046,
+ Iir_Kind_Signal_Attribute_Declaration => 1049,
+ Iir_Kind_Identity_Operator => 1053,
+ Iir_Kind_Negation_Operator => 1057,
+ Iir_Kind_Absolute_Operator => 1061,
+ Iir_Kind_Not_Operator => 1065,
+ Iir_Kind_Implicit_Condition_Operator => 1069,
+ Iir_Kind_Condition_Operator => 1073,
+ Iir_Kind_Reduction_And_Operator => 1077,
+ Iir_Kind_Reduction_Or_Operator => 1081,
+ Iir_Kind_Reduction_Nand_Operator => 1085,
+ Iir_Kind_Reduction_Nor_Operator => 1089,
+ Iir_Kind_Reduction_Xor_Operator => 1093,
+ Iir_Kind_Reduction_Xnor_Operator => 1097,
+ Iir_Kind_And_Operator => 1102,
+ Iir_Kind_Or_Operator => 1107,
+ Iir_Kind_Nand_Operator => 1112,
+ Iir_Kind_Nor_Operator => 1117,
+ Iir_Kind_Xor_Operator => 1122,
+ Iir_Kind_Xnor_Operator => 1127,
+ Iir_Kind_Equality_Operator => 1132,
+ Iir_Kind_Inequality_Operator => 1137,
+ Iir_Kind_Less_Than_Operator => 1142,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 1147,
+ Iir_Kind_Greater_Than_Operator => 1152,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 1157,
+ Iir_Kind_Match_Equality_Operator => 1162,
+ Iir_Kind_Match_Inequality_Operator => 1167,
+ Iir_Kind_Match_Less_Than_Operator => 1172,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1177,
+ Iir_Kind_Match_Greater_Than_Operator => 1182,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1187,
+ Iir_Kind_Sll_Operator => 1192,
+ Iir_Kind_Sla_Operator => 1197,
+ Iir_Kind_Srl_Operator => 1202,
+ Iir_Kind_Sra_Operator => 1207,
+ Iir_Kind_Rol_Operator => 1212,
+ Iir_Kind_Ror_Operator => 1217,
+ Iir_Kind_Addition_Operator => 1222,
+ Iir_Kind_Substraction_Operator => 1227,
+ Iir_Kind_Concatenation_Operator => 1232,
+ Iir_Kind_Multiplication_Operator => 1237,
+ Iir_Kind_Division_Operator => 1242,
+ Iir_Kind_Modulus_Operator => 1247,
+ Iir_Kind_Remainder_Operator => 1252,
+ Iir_Kind_Exponentiation_Operator => 1257,
+ Iir_Kind_Function_Call => 1265,
+ Iir_Kind_Aggregate => 1272,
+ Iir_Kind_Parenthesis_Expression => 1275,
+ Iir_Kind_Qualified_Expression => 1279,
+ Iir_Kind_Type_Conversion => 1284,
+ Iir_Kind_Allocator_By_Expression => 1288,
+ Iir_Kind_Allocator_By_Subtype => 1293,
+ Iir_Kind_Selected_Element => 1301,
+ Iir_Kind_Dereference => 1306,
+ Iir_Kind_Implicit_Dereference => 1311,
+ Iir_Kind_Slice_Name => 1318,
+ Iir_Kind_Indexed_Name => 1324,
+ Iir_Kind_Psl_Expression => 1326,
+ Iir_Kind_Sensitized_Process_Statement => 1347,
+ Iir_Kind_Process_Statement => 1367,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1379,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1391,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1404,
+ Iir_Kind_Concurrent_Assertion_Statement => 1412,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1419,
+ Iir_Kind_Psl_Assert_Directive => 1432,
+ Iir_Kind_Psl_Assume_Directive => 1443,
+ Iir_Kind_Psl_Cover_Directive => 1455,
+ Iir_Kind_Psl_Restrict_Directive => 1466,
+ Iir_Kind_Block_Statement => 1480,
+ Iir_Kind_If_Generate_Statement => 1491,
+ Iir_Kind_Case_Generate_Statement => 1500,
+ Iir_Kind_For_Generate_Statement => 1509,
+ Iir_Kind_Component_Instantiation_Statement => 1520,
+ Iir_Kind_Psl_Default_Clock => 1524,
+ Iir_Kind_Simple_Simultaneous_Statement => 1531,
+ Iir_Kind_Generate_Statement_Body => 1542,
+ Iir_Kind_If_Generate_Else_Clause => 1548,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1558,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1568,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1579,
+ Iir_Kind_Null_Statement => 1583,
+ Iir_Kind_Assertion_Statement => 1590,
+ Iir_Kind_Report_Statement => 1596,
+ Iir_Kind_Wait_Statement => 1604,
+ Iir_Kind_Variable_Assignment_Statement => 1611,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1618,
+ Iir_Kind_Return_Statement => 1624,
+ Iir_Kind_For_Loop_Statement => 1635,
+ Iir_Kind_While_Loop_Statement => 1646,
+ Iir_Kind_Next_Statement => 1653,
+ Iir_Kind_Exit_Statement => 1660,
+ Iir_Kind_Case_Statement => 1668,
+ Iir_Kind_Procedure_Call_Statement => 1674,
+ Iir_Kind_If_Statement => 1684,
+ Iir_Kind_Elsif => 1690,
+ Iir_Kind_Character_Literal => 1698,
+ Iir_Kind_Simple_Name => 1706,
+ Iir_Kind_Selected_Name => 1715,
+ Iir_Kind_Operator_Symbol => 1721,
+ Iir_Kind_Reference_Name => 1726,
+ Iir_Kind_External_Constant_Name => 1734,
+ Iir_Kind_External_Signal_Name => 1742,
+ Iir_Kind_External_Variable_Name => 1751,
+ Iir_Kind_Selected_By_All_Name => 1757,
+ Iir_Kind_Parenthesis_Name => 1762,
+ Iir_Kind_Package_Pathname => 1766,
+ Iir_Kind_Absolute_Pathname => 1767,
+ Iir_Kind_Relative_Pathname => 1768,
+ Iir_Kind_Pathname_Element => 1773,
+ Iir_Kind_Base_Attribute => 1775,
+ Iir_Kind_Subtype_Attribute => 1780,
+ Iir_Kind_Element_Attribute => 1785,
+ Iir_Kind_Left_Type_Attribute => 1790,
+ Iir_Kind_Right_Type_Attribute => 1795,
+ Iir_Kind_High_Type_Attribute => 1800,
+ Iir_Kind_Low_Type_Attribute => 1805,
+ Iir_Kind_Ascending_Type_Attribute => 1810,
+ Iir_Kind_Image_Attribute => 1816,
+ Iir_Kind_Value_Attribute => 1822,
+ Iir_Kind_Pos_Attribute => 1828,
+ Iir_Kind_Val_Attribute => 1834,
+ Iir_Kind_Succ_Attribute => 1840,
+ Iir_Kind_Pred_Attribute => 1846,
+ Iir_Kind_Leftof_Attribute => 1852,
+ Iir_Kind_Rightof_Attribute => 1858,
+ Iir_Kind_Delayed_Attribute => 1867,
+ Iir_Kind_Stable_Attribute => 1876,
+ Iir_Kind_Quiet_Attribute => 1885,
+ Iir_Kind_Transaction_Attribute => 1894,
+ Iir_Kind_Event_Attribute => 1898,
+ Iir_Kind_Active_Attribute => 1902,
+ Iir_Kind_Last_Event_Attribute => 1906,
+ Iir_Kind_Last_Active_Attribute => 1910,
+ Iir_Kind_Last_Value_Attribute => 1914,
+ Iir_Kind_Driving_Attribute => 1918,
+ Iir_Kind_Driving_Value_Attribute => 1922,
+ Iir_Kind_Behavior_Attribute => 1922,
+ Iir_Kind_Structure_Attribute => 1922,
+ Iir_Kind_Simple_Name_Attribute => 1929,
+ Iir_Kind_Instance_Name_Attribute => 1934,
+ Iir_Kind_Path_Name_Attribute => 1939,
+ Iir_Kind_Left_Array_Attribute => 1946,
+ Iir_Kind_Right_Array_Attribute => 1953,
+ Iir_Kind_High_Array_Attribute => 1960,
+ Iir_Kind_Low_Array_Attribute => 1967,
+ Iir_Kind_Length_Array_Attribute => 1974,
+ Iir_Kind_Ascending_Array_Attribute => 1981,
+ Iir_Kind_Range_Array_Attribute => 1988,
+ Iir_Kind_Reverse_Range_Array_Attribute => 1995,
+ Iir_Kind_Attribute_Name => 2004
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -7320,6 +7323,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Configuration_Declaration
| Iir_Kind_Package_Declaration
| Iir_Kind_Package_Instantiation_Declaration
+ | Iir_Kind_Vmode_Declaration
+ | Iir_Kind_Vprop_Declaration
+ | Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
| Iir_Kind_Function_Body
diff --git a/src/vhdl/vhdl-sem_psl.adb b/src/vhdl/vhdl-sem_psl.adb
index 3843a3ff7..ca9192cb2 100644
--- a/src/vhdl/vhdl-sem_psl.adb
+++ b/src/vhdl/vhdl-sem_psl.adb
@@ -1010,7 +1010,9 @@ package body Vhdl.Sem_Psl is
| Iir_Kind_Function_Declaration
| Iir_Kind_Procedure_Declaration
| Iir_Kind_Function_Body
- | Iir_Kind_Procedure_Body =>
+ | Iir_Kind_Procedure_Body
+ | Iir_Kind_Attribute_Declaration
+ | Iir_Kind_Attribute_Specification =>
Sem_Decls.Sem_Declaration
(Item, Prev_Item, False, Attr_Spec_Chain);
when Iir_Kind_Concurrent_Simple_Signal_Assignment =>
diff --git a/src/vhdl/vhdl-sem_specs.adb b/src/vhdl/vhdl-sem_specs.adb
index 77619b3ce..b5860ae9f 100644
--- a/src/vhdl/vhdl-sem_specs.adb
+++ b/src/vhdl/vhdl-sem_specs.adb
@@ -654,6 +654,8 @@ package body Vhdl.Sem_Specs is
| Iir_Kind_Procedure_Body =>
Sem_Named_Entity_Chain (Get_Declaration_Chain (Scope));
Sem_Named_Entity_Chain (Get_Sequential_Statement_Chain (Scope));
+ when Iir_Kind_Vunit_Declaration =>
+ Sem_Named_Entity_Chain (Get_Vunit_Item_Chain (Scope));
when others =>
Error_Kind ("sem_named_entities", Scope);
end case;