aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/nodes_meta.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/nodes_meta.adb')
-rw-r--r--src/vhdl/nodes_meta.adb318
1 files changed, 174 insertions, 144 deletions
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb
index 7e3aba364..f43c07743 100644
--- a/src/vhdl/nodes_meta.adb
+++ b/src/vhdl/nodes_meta.adb
@@ -102,6 +102,7 @@ package body Nodes_Meta is
Field_Subtype_Definition => Type_Iir,
Field_Nature => Type_Iir,
Field_Mode => Type_Iir_Mode,
+ Field_Guarded_Signal_Flag => Type_Boolean,
Field_Signal_Kind => Type_Iir_Signal_Kind,
Field_Base_Name => Type_Iir,
Field_Interface_Declaration_Chain => Type_Iir,
@@ -481,6 +482,8 @@ package body Nodes_Meta is
return "nature";
when Field_Mode =>
return "mode";
+ when Field_Guarded_Signal_Flag =>
+ return "guarded_signal_flag";
when Field_Signal_Kind =>
return "signal_kind";
when Field_Base_Name =>
@@ -1545,6 +1548,8 @@ package body Nodes_Meta is
return Attr_None;
when Field_Mode =>
return Attr_None;
+ when Field_Guarded_Signal_Flag =>
+ return Attr_None;
when Field_Signal_Kind =>
return Attr_None;
when Field_Base_Name =>
@@ -2794,9 +2799,10 @@ package body Nodes_Meta is
Field_Has_Active_Flag,
Field_Visible_Flag,
Field_Use_Flag,
+ Field_Guarded_Signal_Flag,
+ Field_Signal_Kind,
Field_Expr_Staticness,
Field_Name_Staticness,
- Field_Signal_Kind,
Field_Guard_Expression,
Field_Guard_Sensitivity_List,
Field_Block_Statement,
@@ -2811,11 +2817,11 @@ package body Nodes_Meta is
Field_After_Drivers_Flag,
Field_Use_Flag,
Field_Is_Ref,
+ Field_Guarded_Signal_Flag,
+ Field_Signal_Kind,
Field_Expr_Staticness,
Field_Name_Staticness,
- Field_Signal_Kind,
Field_Chain,
- Field_Signal_Driver,
Field_Default_Value,
Field_Subtype_Indication,
Field_Parent,
@@ -2868,6 +2874,7 @@ package body Nodes_Meta is
Field_After_Drivers_Flag,
Field_Use_Flag,
Field_Is_Ref,
+ Field_Guarded_Signal_Flag,
Field_Mode,
Field_Lexical_Layout,
Field_Expr_Staticness,
@@ -2883,6 +2890,7 @@ package body Nodes_Meta is
Field_After_Drivers_Flag,
Field_Use_Flag,
Field_Is_Ref,
+ Field_Guarded_Signal_Flag,
Field_Mode,
Field_Lexical_Layout,
Field_Expr_Staticness,
@@ -2901,11 +2909,12 @@ package body Nodes_Meta is
Field_After_Drivers_Flag,
Field_Use_Flag,
Field_Is_Ref,
+ Field_Guarded_Signal_Flag,
+ Field_Signal_Kind,
Field_Mode,
Field_Lexical_Layout,
Field_Expr_Staticness,
Field_Name_Staticness,
- Field_Signal_Kind,
Field_Chain,
Field_Default_Value,
Field_Subtype_Indication,
@@ -2917,6 +2926,7 @@ package body Nodes_Meta is
Field_After_Drivers_Flag,
Field_Use_Flag,
Field_Is_Ref,
+ Field_Guarded_Signal_Flag,
Field_Mode,
Field_Lexical_Layout,
Field_Expr_Staticness,
@@ -3926,145 +3936,145 @@ package body Nodes_Meta is
Iir_Kind_Procedure_Body => 704,
Iir_Kind_Object_Alias_Declaration => 716,
Iir_Kind_File_Declaration => 731,
- Iir_Kind_Guard_Signal_Declaration => 743,
- Iir_Kind_Signal_Declaration => 760,
- Iir_Kind_Variable_Declaration => 773,
- Iir_Kind_Constant_Declaration => 787,
- Iir_Kind_Iterator_Declaration => 799,
- Iir_Kind_Interface_Constant_Declaration => 813,
- Iir_Kind_Interface_Variable_Declaration => 827,
- Iir_Kind_Interface_Signal_Declaration => 845,
- Iir_Kind_Interface_File_Declaration => 859,
- Iir_Kind_Interface_Package_Declaration => 868,
- Iir_Kind_Identity_Operator => 872,
- Iir_Kind_Negation_Operator => 876,
- Iir_Kind_Absolute_Operator => 880,
- Iir_Kind_Not_Operator => 884,
- Iir_Kind_Condition_Operator => 888,
- Iir_Kind_Reduction_And_Operator => 892,
- Iir_Kind_Reduction_Or_Operator => 896,
- Iir_Kind_Reduction_Nand_Operator => 900,
- Iir_Kind_Reduction_Nor_Operator => 904,
- Iir_Kind_Reduction_Xor_Operator => 908,
- Iir_Kind_Reduction_Xnor_Operator => 912,
- Iir_Kind_And_Operator => 917,
- Iir_Kind_Or_Operator => 922,
- Iir_Kind_Nand_Operator => 927,
- Iir_Kind_Nor_Operator => 932,
- Iir_Kind_Xor_Operator => 937,
- Iir_Kind_Xnor_Operator => 942,
- Iir_Kind_Equality_Operator => 947,
- Iir_Kind_Inequality_Operator => 952,
- Iir_Kind_Less_Than_Operator => 957,
- Iir_Kind_Less_Than_Or_Equal_Operator => 962,
- Iir_Kind_Greater_Than_Operator => 967,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 972,
- Iir_Kind_Match_Equality_Operator => 977,
- Iir_Kind_Match_Inequality_Operator => 982,
- Iir_Kind_Match_Less_Than_Operator => 987,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 992,
- Iir_Kind_Match_Greater_Than_Operator => 997,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1002,
- Iir_Kind_Sll_Operator => 1007,
- Iir_Kind_Sla_Operator => 1012,
- Iir_Kind_Srl_Operator => 1017,
- Iir_Kind_Sra_Operator => 1022,
- Iir_Kind_Rol_Operator => 1027,
- Iir_Kind_Ror_Operator => 1032,
- Iir_Kind_Addition_Operator => 1037,
- Iir_Kind_Substraction_Operator => 1042,
- Iir_Kind_Concatenation_Operator => 1047,
- Iir_Kind_Multiplication_Operator => 1052,
- Iir_Kind_Division_Operator => 1057,
- Iir_Kind_Modulus_Operator => 1062,
- Iir_Kind_Remainder_Operator => 1067,
- Iir_Kind_Exponentiation_Operator => 1072,
- Iir_Kind_Function_Call => 1080,
- Iir_Kind_Aggregate => 1086,
- Iir_Kind_Parenthesis_Expression => 1089,
- Iir_Kind_Qualified_Expression => 1093,
- Iir_Kind_Type_Conversion => 1098,
- Iir_Kind_Allocator_By_Expression => 1102,
- Iir_Kind_Allocator_By_Subtype => 1106,
- Iir_Kind_Selected_Element => 1112,
- Iir_Kind_Dereference => 1117,
- Iir_Kind_Implicit_Dereference => 1122,
- Iir_Kind_Slice_Name => 1129,
- Iir_Kind_Indexed_Name => 1135,
- Iir_Kind_Psl_Expression => 1137,
- Iir_Kind_Sensitized_Process_Statement => 1156,
- Iir_Kind_Process_Statement => 1174,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1185,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1197,
- Iir_Kind_Concurrent_Assertion_Statement => 1205,
- Iir_Kind_Psl_Default_Clock => 1209,
- Iir_Kind_Psl_Assert_Statement => 1218,
- Iir_Kind_Psl_Cover_Statement => 1227,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1233,
- Iir_Kind_Block_Statement => 1246,
- Iir_Kind_Generate_Statement => 1258,
- Iir_Kind_Component_Instantiation_Statement => 1268,
- Iir_Kind_Simple_Simultaneous_Statement => 1275,
- Iir_Kind_Signal_Assignment_Statement => 1284,
- Iir_Kind_Null_Statement => 1288,
- Iir_Kind_Assertion_Statement => 1295,
- Iir_Kind_Report_Statement => 1301,
- Iir_Kind_Wait_Statement => 1308,
- Iir_Kind_Variable_Assignment_Statement => 1314,
- Iir_Kind_Return_Statement => 1320,
- Iir_Kind_For_Loop_Statement => 1328,
- Iir_Kind_While_Loop_Statement => 1335,
- Iir_Kind_Next_Statement => 1341,
- Iir_Kind_Exit_Statement => 1347,
- Iir_Kind_Case_Statement => 1354,
- Iir_Kind_Procedure_Call_Statement => 1359,
- Iir_Kind_If_Statement => 1367,
- Iir_Kind_Elsif => 1372,
- Iir_Kind_Character_Literal => 1379,
- Iir_Kind_Simple_Name => 1386,
- Iir_Kind_Selected_Name => 1394,
- Iir_Kind_Operator_Symbol => 1399,
- Iir_Kind_Selected_By_All_Name => 1404,
- Iir_Kind_Parenthesis_Name => 1408,
- Iir_Kind_Base_Attribute => 1410,
- Iir_Kind_Left_Type_Attribute => 1415,
- Iir_Kind_Right_Type_Attribute => 1420,
- Iir_Kind_High_Type_Attribute => 1425,
- Iir_Kind_Low_Type_Attribute => 1430,
- Iir_Kind_Ascending_Type_Attribute => 1435,
- Iir_Kind_Image_Attribute => 1441,
- Iir_Kind_Value_Attribute => 1447,
- Iir_Kind_Pos_Attribute => 1453,
- Iir_Kind_Val_Attribute => 1459,
- Iir_Kind_Succ_Attribute => 1465,
- Iir_Kind_Pred_Attribute => 1471,
- Iir_Kind_Leftof_Attribute => 1477,
- Iir_Kind_Rightof_Attribute => 1483,
- Iir_Kind_Delayed_Attribute => 1491,
- Iir_Kind_Stable_Attribute => 1499,
- Iir_Kind_Quiet_Attribute => 1507,
- Iir_Kind_Transaction_Attribute => 1515,
- Iir_Kind_Event_Attribute => 1519,
- Iir_Kind_Active_Attribute => 1523,
- Iir_Kind_Last_Event_Attribute => 1527,
- Iir_Kind_Last_Active_Attribute => 1531,
- Iir_Kind_Last_Value_Attribute => 1535,
- Iir_Kind_Driving_Attribute => 1539,
- Iir_Kind_Driving_Value_Attribute => 1543,
- Iir_Kind_Behavior_Attribute => 1543,
- Iir_Kind_Structure_Attribute => 1543,
- Iir_Kind_Simple_Name_Attribute => 1550,
- Iir_Kind_Instance_Name_Attribute => 1555,
- Iir_Kind_Path_Name_Attribute => 1560,
- Iir_Kind_Left_Array_Attribute => 1567,
- Iir_Kind_Right_Array_Attribute => 1574,
- Iir_Kind_High_Array_Attribute => 1581,
- Iir_Kind_Low_Array_Attribute => 1588,
- Iir_Kind_Length_Array_Attribute => 1595,
- Iir_Kind_Ascending_Array_Attribute => 1602,
- Iir_Kind_Range_Array_Attribute => 1609,
- Iir_Kind_Reverse_Range_Array_Attribute => 1616,
- Iir_Kind_Attribute_Name => 1624
+ Iir_Kind_Guard_Signal_Declaration => 744,
+ Iir_Kind_Signal_Declaration => 761,
+ Iir_Kind_Variable_Declaration => 774,
+ Iir_Kind_Constant_Declaration => 788,
+ Iir_Kind_Iterator_Declaration => 800,
+ Iir_Kind_Interface_Constant_Declaration => 815,
+ Iir_Kind_Interface_Variable_Declaration => 830,
+ Iir_Kind_Interface_Signal_Declaration => 849,
+ Iir_Kind_Interface_File_Declaration => 864,
+ Iir_Kind_Interface_Package_Declaration => 873,
+ Iir_Kind_Identity_Operator => 877,
+ Iir_Kind_Negation_Operator => 881,
+ Iir_Kind_Absolute_Operator => 885,
+ Iir_Kind_Not_Operator => 889,
+ Iir_Kind_Condition_Operator => 893,
+ Iir_Kind_Reduction_And_Operator => 897,
+ Iir_Kind_Reduction_Or_Operator => 901,
+ Iir_Kind_Reduction_Nand_Operator => 905,
+ Iir_Kind_Reduction_Nor_Operator => 909,
+ Iir_Kind_Reduction_Xor_Operator => 913,
+ Iir_Kind_Reduction_Xnor_Operator => 917,
+ Iir_Kind_And_Operator => 922,
+ Iir_Kind_Or_Operator => 927,
+ Iir_Kind_Nand_Operator => 932,
+ Iir_Kind_Nor_Operator => 937,
+ Iir_Kind_Xor_Operator => 942,
+ Iir_Kind_Xnor_Operator => 947,
+ Iir_Kind_Equality_Operator => 952,
+ Iir_Kind_Inequality_Operator => 957,
+ Iir_Kind_Less_Than_Operator => 962,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 967,
+ Iir_Kind_Greater_Than_Operator => 972,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 977,
+ Iir_Kind_Match_Equality_Operator => 982,
+ Iir_Kind_Match_Inequality_Operator => 987,
+ Iir_Kind_Match_Less_Than_Operator => 992,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 997,
+ Iir_Kind_Match_Greater_Than_Operator => 1002,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1007,
+ Iir_Kind_Sll_Operator => 1012,
+ Iir_Kind_Sla_Operator => 1017,
+ Iir_Kind_Srl_Operator => 1022,
+ Iir_Kind_Sra_Operator => 1027,
+ Iir_Kind_Rol_Operator => 1032,
+ Iir_Kind_Ror_Operator => 1037,
+ Iir_Kind_Addition_Operator => 1042,
+ Iir_Kind_Substraction_Operator => 1047,
+ Iir_Kind_Concatenation_Operator => 1052,
+ Iir_Kind_Multiplication_Operator => 1057,
+ Iir_Kind_Division_Operator => 1062,
+ Iir_Kind_Modulus_Operator => 1067,
+ Iir_Kind_Remainder_Operator => 1072,
+ Iir_Kind_Exponentiation_Operator => 1077,
+ Iir_Kind_Function_Call => 1085,
+ Iir_Kind_Aggregate => 1091,
+ Iir_Kind_Parenthesis_Expression => 1094,
+ Iir_Kind_Qualified_Expression => 1098,
+ Iir_Kind_Type_Conversion => 1103,
+ Iir_Kind_Allocator_By_Expression => 1107,
+ Iir_Kind_Allocator_By_Subtype => 1111,
+ Iir_Kind_Selected_Element => 1117,
+ Iir_Kind_Dereference => 1122,
+ Iir_Kind_Implicit_Dereference => 1127,
+ Iir_Kind_Slice_Name => 1134,
+ Iir_Kind_Indexed_Name => 1140,
+ Iir_Kind_Psl_Expression => 1142,
+ Iir_Kind_Sensitized_Process_Statement => 1161,
+ Iir_Kind_Process_Statement => 1179,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1190,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1202,
+ Iir_Kind_Concurrent_Assertion_Statement => 1210,
+ Iir_Kind_Psl_Default_Clock => 1214,
+ Iir_Kind_Psl_Assert_Statement => 1223,
+ Iir_Kind_Psl_Cover_Statement => 1232,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1238,
+ Iir_Kind_Block_Statement => 1251,
+ Iir_Kind_Generate_Statement => 1263,
+ Iir_Kind_Component_Instantiation_Statement => 1273,
+ Iir_Kind_Simple_Simultaneous_Statement => 1280,
+ Iir_Kind_Signal_Assignment_Statement => 1289,
+ Iir_Kind_Null_Statement => 1293,
+ Iir_Kind_Assertion_Statement => 1300,
+ Iir_Kind_Report_Statement => 1306,
+ Iir_Kind_Wait_Statement => 1313,
+ Iir_Kind_Variable_Assignment_Statement => 1319,
+ Iir_Kind_Return_Statement => 1325,
+ Iir_Kind_For_Loop_Statement => 1333,
+ Iir_Kind_While_Loop_Statement => 1340,
+ Iir_Kind_Next_Statement => 1346,
+ Iir_Kind_Exit_Statement => 1352,
+ Iir_Kind_Case_Statement => 1359,
+ Iir_Kind_Procedure_Call_Statement => 1364,
+ Iir_Kind_If_Statement => 1372,
+ Iir_Kind_Elsif => 1377,
+ Iir_Kind_Character_Literal => 1384,
+ Iir_Kind_Simple_Name => 1391,
+ Iir_Kind_Selected_Name => 1399,
+ Iir_Kind_Operator_Symbol => 1404,
+ Iir_Kind_Selected_By_All_Name => 1409,
+ Iir_Kind_Parenthesis_Name => 1413,
+ Iir_Kind_Base_Attribute => 1415,
+ Iir_Kind_Left_Type_Attribute => 1420,
+ Iir_Kind_Right_Type_Attribute => 1425,
+ Iir_Kind_High_Type_Attribute => 1430,
+ Iir_Kind_Low_Type_Attribute => 1435,
+ Iir_Kind_Ascending_Type_Attribute => 1440,
+ Iir_Kind_Image_Attribute => 1446,
+ Iir_Kind_Value_Attribute => 1452,
+ Iir_Kind_Pos_Attribute => 1458,
+ Iir_Kind_Val_Attribute => 1464,
+ Iir_Kind_Succ_Attribute => 1470,
+ Iir_Kind_Pred_Attribute => 1476,
+ Iir_Kind_Leftof_Attribute => 1482,
+ Iir_Kind_Rightof_Attribute => 1488,
+ Iir_Kind_Delayed_Attribute => 1496,
+ Iir_Kind_Stable_Attribute => 1504,
+ Iir_Kind_Quiet_Attribute => 1512,
+ Iir_Kind_Transaction_Attribute => 1520,
+ Iir_Kind_Event_Attribute => 1524,
+ Iir_Kind_Active_Attribute => 1528,
+ Iir_Kind_Last_Event_Attribute => 1532,
+ Iir_Kind_Last_Active_Attribute => 1536,
+ Iir_Kind_Last_Value_Attribute => 1540,
+ Iir_Kind_Driving_Attribute => 1544,
+ Iir_Kind_Driving_Value_Attribute => 1548,
+ Iir_Kind_Behavior_Attribute => 1548,
+ Iir_Kind_Structure_Attribute => 1548,
+ Iir_Kind_Simple_Name_Attribute => 1555,
+ Iir_Kind_Instance_Name_Attribute => 1560,
+ Iir_Kind_Path_Name_Attribute => 1565,
+ Iir_Kind_Left_Array_Attribute => 1572,
+ Iir_Kind_Right_Array_Attribute => 1579,
+ Iir_Kind_High_Array_Attribute => 1586,
+ Iir_Kind_Low_Array_Attribute => 1593,
+ Iir_Kind_Length_Array_Attribute => 1600,
+ Iir_Kind_Ascending_Array_Attribute => 1607,
+ Iir_Kind_Range_Array_Attribute => 1614,
+ Iir_Kind_Reverse_Range_Array_Attribute => 1621,
+ Iir_Kind_Attribute_Name => 1629
);
function Get_Fields (K : Iir_Kind) return Fields_Array
@@ -4124,6 +4134,8 @@ package body Nodes_Meta is
return Get_Same_Alternative_Flag (N);
when Field_Need_Body =>
return Get_Need_Body (N);
+ when Field_Guarded_Signal_Flag =>
+ return Get_Guarded_Signal_Flag (N);
when Field_Deferred_Declaration_Flag =>
return Get_Deferred_Declaration_Flag (N);
when Field_Shared_Flag =>
@@ -4216,6 +4228,8 @@ package body Nodes_Meta is
Set_Same_Alternative_Flag (N, V);
when Field_Need_Body =>
Set_Need_Body (N, V);
+ when Field_Guarded_Signal_Flag =>
+ Set_Guarded_Signal_Flag (N, V);
when Field_Deferred_Declaration_Flag =>
Set_Deferred_Declaration_Flag (N, V);
when Field_Shared_Flag =>
@@ -6696,6 +6710,21 @@ package body Nodes_Meta is
end case;
end Has_Mode;
+ function Has_Guarded_Signal_Flag (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Guard_Signal_Declaration
+ | Iir_Kind_Signal_Declaration
+ | Iir_Kind_Interface_Constant_Declaration
+ | Iir_Kind_Interface_Variable_Declaration
+ | Iir_Kind_Interface_Signal_Declaration
+ | Iir_Kind_Interface_File_Declaration =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Guarded_Signal_Flag;
+
function Has_Signal_Kind (K : Iir_Kind) return Boolean is
begin
case K is
@@ -6948,8 +6977,9 @@ package body Nodes_Meta is
end Has_Block_Statement;
function Has_Signal_Driver (K : Iir_Kind) return Boolean is
+ pragma Unreferenced (K);
begin
- return K = Iir_Kind_Signal_Declaration;
+ return False;
end Has_Signal_Driver;
function Has_Declaration_Chain (K : Iir_Kind) return Boolean is