aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes_meta.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-12-30 06:28:26 +0100
committerTristan Gingold <tgingold@free.fr>2019-12-30 06:28:26 +0100
commita6a74017fd6b467627f23ff733218af1062d139f (patch)
tree70facbde8de4dab2ff32d5f626ca51f15198f4bf /src/vhdl/vhdl-nodes_meta.adb
parent2d835b7e171093b894aae52f54e1b3cfd373a5fe (diff)
downloadghdl-a6a74017fd6b467627f23ff733218af1062d139f.tar.gz
ghdl-a6a74017fd6b467627f23ff733218af1062d139f.tar.bz2
ghdl-a6a74017fd6b467627f23ff733218af1062d139f.zip
ams-vhdl: check nature for record natures and terminals.
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb472
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