aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/nodes_meta.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-08 04:53:25 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-08 14:57:24 +0200
commit8b090b01da269679e98a578f4fda17e3e4adce12 (patch)
tree8d3284a5aacde88d6662300d87abf645065d8e16 /src/vhdl/nodes_meta.adb
parent120548782cb62cc5d8f82b1569e2383a8528b98a (diff)
downloadghdl-8b090b01da269679e98a578f4fda17e3e4adce12.tar.gz
ghdl-8b090b01da269679e98a578f4fda17e3e4adce12.tar.bz2
ghdl-8b090b01da269679e98a578f4fda17e3e4adce12.zip
Add signal_attribute_declaration to hold implicit atribute signals.
Diffstat (limited to 'src/vhdl/nodes_meta.adb')
-rw-r--r--src/vhdl/nodes_meta.adb371
1 files changed, 219 insertions, 152 deletions
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb
index 21142d2d3..0efd08967 100644
--- a/src/vhdl/nodes_meta.adb
+++ b/src/vhdl/nodes_meta.adb
@@ -231,6 +231,7 @@ package body Nodes_Meta is
Field_Guard_Expression => Type_Iir,
Field_Guard_Decl => Type_Iir,
Field_Guard_Sensitivity_List => Type_Iir_List,
+ Field_Signal_Attribute_Chain => Type_Iir,
Field_Block_Block_Configuration => Type_Iir,
Field_Package_Header => Type_Iir,
Field_Block_Header => Type_Iir,
@@ -271,6 +272,8 @@ package body Nodes_Meta is
Field_Suffix => Type_Iir,
Field_Index_Subtype => Type_Iir,
Field_Parameter => Type_Iir,
+ Field_Attr_Chain => Type_Iir,
+ Field_Signal_Attribute_Declaration => Type_Iir,
Field_Actual_Type => Type_Iir,
Field_Association_Chain => Type_Iir,
Field_Individual_Association_Chain => Type_Iir,
@@ -769,6 +772,8 @@ package body Nodes_Meta is
return "guard_decl";
when Field_Guard_Sensitivity_List =>
return "guard_sensitivity_list";
+ when Field_Signal_Attribute_Chain =>
+ return "signal_attribute_chain";
when Field_Block_Block_Configuration =>
return "block_block_configuration";
when Field_Package_Header =>
@@ -849,6 +854,10 @@ package body Nodes_Meta is
return "index_subtype";
when Field_Parameter =>
return "parameter";
+ when Field_Attr_Chain =>
+ return "attr_chain";
+ when Field_Signal_Attribute_Declaration =>
+ return "signal_attribute_declaration";
when Field_Actual_Type =>
return "actual_type";
when Field_Association_Chain =>
@@ -1221,6 +1230,8 @@ package body Nodes_Meta is
return "interface_function_declaration";
when Iir_Kind_Interface_Procedure_Declaration =>
return "interface_procedure_declaration";
+ when Iir_Kind_Signal_Attribute_Declaration =>
+ return "signal_attribute_declaration";
when Iir_Kind_Identity_Operator =>
return "identity_operator";
when Iir_Kind_Negation_Operator =>
@@ -1937,6 +1948,8 @@ package body Nodes_Meta is
return Attr_None;
when Field_Guard_Sensitivity_List =>
return Attr_None;
+ when Field_Signal_Attribute_Chain =>
+ return Attr_Forward_Ref;
when Field_Block_Block_Configuration =>
return Attr_None;
when Field_Package_Header =>
@@ -2017,6 +2030,10 @@ package body Nodes_Meta is
return Attr_Ref;
when Field_Parameter =>
return Attr_None;
+ when Field_Attr_Chain =>
+ return Attr_Forward_Ref;
+ when Field_Signal_Attribute_Declaration =>
+ return Attr_Forward_Ref;
when Field_Actual_Type =>
return Attr_None;
when Field_Association_Chain =>
@@ -3220,6 +3237,10 @@ package body Nodes_Meta is
Field_Interface_Declaration_Chain,
Field_Return_Type_Mark,
Field_Parent,
+ -- Iir_Kind_Signal_Attribute_Declaration
+ Field_Chain,
+ Field_Parent,
+ Field_Signal_Attribute_Chain,
-- Iir_Kind_Identity_Operator
Field_Expr_Staticness,
Field_Operand,
@@ -4067,36 +4088,40 @@ package body Nodes_Meta is
Field_Expr_Staticness,
Field_Name_Staticness,
Field_Prefix,
- Field_Chain,
Field_Parameter,
Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
Field_Base_Name,
-- Iir_Kind_Stable_Attribute
Field_Has_Active_Flag,
Field_Expr_Staticness,
Field_Name_Staticness,
Field_Prefix,
- Field_Chain,
Field_Parameter,
Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
Field_Base_Name,
-- Iir_Kind_Quiet_Attribute
Field_Has_Active_Flag,
Field_Expr_Staticness,
Field_Name_Staticness,
Field_Prefix,
- Field_Chain,
Field_Parameter,
Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
Field_Base_Name,
-- Iir_Kind_Transaction_Attribute
Field_Has_Active_Flag,
Field_Expr_Staticness,
Field_Name_Staticness,
Field_Prefix,
- Field_Chain,
Field_Parameter,
Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
Field_Base_Name,
-- Iir_Kind_Event_Attribute
Field_Expr_Staticness,
@@ -4351,149 +4376,150 @@ package body Nodes_Meta is
Iir_Kind_Interface_Package_Declaration => 920,
Iir_Kind_Interface_Function_Declaration => 937,
Iir_Kind_Interface_Procedure_Declaration => 950,
- Iir_Kind_Identity_Operator => 954,
- Iir_Kind_Negation_Operator => 958,
- Iir_Kind_Absolute_Operator => 962,
- Iir_Kind_Not_Operator => 966,
- Iir_Kind_Condition_Operator => 970,
- Iir_Kind_Reduction_And_Operator => 974,
- Iir_Kind_Reduction_Or_Operator => 978,
- Iir_Kind_Reduction_Nand_Operator => 982,
- Iir_Kind_Reduction_Nor_Operator => 986,
- Iir_Kind_Reduction_Xor_Operator => 990,
- Iir_Kind_Reduction_Xnor_Operator => 994,
- Iir_Kind_And_Operator => 999,
- Iir_Kind_Or_Operator => 1004,
- Iir_Kind_Nand_Operator => 1009,
- Iir_Kind_Nor_Operator => 1014,
- Iir_Kind_Xor_Operator => 1019,
- Iir_Kind_Xnor_Operator => 1024,
- Iir_Kind_Equality_Operator => 1029,
- Iir_Kind_Inequality_Operator => 1034,
- Iir_Kind_Less_Than_Operator => 1039,
- Iir_Kind_Less_Than_Or_Equal_Operator => 1044,
- Iir_Kind_Greater_Than_Operator => 1049,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 1054,
- Iir_Kind_Match_Equality_Operator => 1059,
- Iir_Kind_Match_Inequality_Operator => 1064,
- Iir_Kind_Match_Less_Than_Operator => 1069,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1074,
- Iir_Kind_Match_Greater_Than_Operator => 1079,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1084,
- Iir_Kind_Sll_Operator => 1089,
- Iir_Kind_Sla_Operator => 1094,
- Iir_Kind_Srl_Operator => 1099,
- Iir_Kind_Sra_Operator => 1104,
- Iir_Kind_Rol_Operator => 1109,
- Iir_Kind_Ror_Operator => 1114,
- Iir_Kind_Addition_Operator => 1119,
- Iir_Kind_Substraction_Operator => 1124,
- Iir_Kind_Concatenation_Operator => 1129,
- Iir_Kind_Multiplication_Operator => 1134,
- Iir_Kind_Division_Operator => 1139,
- Iir_Kind_Modulus_Operator => 1144,
- Iir_Kind_Remainder_Operator => 1149,
- Iir_Kind_Exponentiation_Operator => 1154,
- Iir_Kind_Function_Call => 1162,
- Iir_Kind_Aggregate => 1168,
- Iir_Kind_Parenthesis_Expression => 1171,
- Iir_Kind_Qualified_Expression => 1175,
- Iir_Kind_Type_Conversion => 1180,
- Iir_Kind_Allocator_By_Expression => 1184,
- Iir_Kind_Allocator_By_Subtype => 1189,
- Iir_Kind_Selected_Element => 1195,
- Iir_Kind_Dereference => 1200,
- Iir_Kind_Implicit_Dereference => 1205,
- Iir_Kind_Slice_Name => 1212,
- Iir_Kind_Indexed_Name => 1218,
- Iir_Kind_Psl_Expression => 1220,
- Iir_Kind_Sensitized_Process_Statement => 1240,
- Iir_Kind_Process_Statement => 1260,
- Iir_Kind_Concurrent_Simple_Signal_Assignment => 1271,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1282,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1294,
- Iir_Kind_Concurrent_Assertion_Statement => 1302,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1309,
- Iir_Kind_Psl_Assert_Statement => 1322,
- Iir_Kind_Psl_Cover_Statement => 1335,
- Iir_Kind_Block_Statement => 1348,
- Iir_Kind_If_Generate_Statement => 1358,
- Iir_Kind_Case_Generate_Statement => 1367,
- Iir_Kind_For_Generate_Statement => 1376,
- Iir_Kind_Component_Instantiation_Statement => 1386,
- Iir_Kind_Psl_Default_Clock => 1390,
- Iir_Kind_Simple_Simultaneous_Statement => 1397,
- Iir_Kind_Generate_Statement_Body => 1408,
- Iir_Kind_If_Generate_Else_Clause => 1413,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1422,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1431,
- Iir_Kind_Null_Statement => 1435,
- Iir_Kind_Assertion_Statement => 1442,
- Iir_Kind_Report_Statement => 1448,
- Iir_Kind_Wait_Statement => 1455,
- Iir_Kind_Variable_Assignment_Statement => 1461,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1467,
- Iir_Kind_Return_Statement => 1473,
- Iir_Kind_For_Loop_Statement => 1482,
- Iir_Kind_While_Loop_Statement => 1490,
- Iir_Kind_Next_Statement => 1496,
- Iir_Kind_Exit_Statement => 1502,
- Iir_Kind_Case_Statement => 1510,
- Iir_Kind_Procedure_Call_Statement => 1516,
- Iir_Kind_If_Statement => 1525,
- Iir_Kind_Elsif => 1530,
- Iir_Kind_Character_Literal => 1537,
- Iir_Kind_Simple_Name => 1544,
- Iir_Kind_Selected_Name => 1552,
- Iir_Kind_Operator_Symbol => 1557,
- Iir_Kind_Selected_By_All_Name => 1562,
- Iir_Kind_Parenthesis_Name => 1566,
- Iir_Kind_External_Constant_Name => 1574,
- Iir_Kind_External_Signal_Name => 1582,
- Iir_Kind_External_Variable_Name => 1590,
- Iir_Kind_Package_Pathname => 1593,
- Iir_Kind_Absolute_Pathname => 1594,
- Iir_Kind_Relative_Pathname => 1595,
- Iir_Kind_Pathname_Element => 1599,
- Iir_Kind_Base_Attribute => 1601,
- Iir_Kind_Left_Type_Attribute => 1606,
- Iir_Kind_Right_Type_Attribute => 1611,
- Iir_Kind_High_Type_Attribute => 1616,
- Iir_Kind_Low_Type_Attribute => 1621,
- Iir_Kind_Ascending_Type_Attribute => 1626,
- Iir_Kind_Image_Attribute => 1632,
- Iir_Kind_Value_Attribute => 1638,
- Iir_Kind_Pos_Attribute => 1644,
- Iir_Kind_Val_Attribute => 1650,
- Iir_Kind_Succ_Attribute => 1656,
- Iir_Kind_Pred_Attribute => 1662,
- Iir_Kind_Leftof_Attribute => 1668,
- Iir_Kind_Rightof_Attribute => 1674,
- Iir_Kind_Delayed_Attribute => 1682,
- Iir_Kind_Stable_Attribute => 1690,
- Iir_Kind_Quiet_Attribute => 1698,
- Iir_Kind_Transaction_Attribute => 1706,
- Iir_Kind_Event_Attribute => 1710,
- Iir_Kind_Active_Attribute => 1714,
- Iir_Kind_Last_Event_Attribute => 1718,
- Iir_Kind_Last_Active_Attribute => 1722,
- Iir_Kind_Last_Value_Attribute => 1726,
- Iir_Kind_Driving_Attribute => 1730,
- Iir_Kind_Driving_Value_Attribute => 1734,
- Iir_Kind_Behavior_Attribute => 1734,
- Iir_Kind_Structure_Attribute => 1734,
- Iir_Kind_Simple_Name_Attribute => 1741,
- Iir_Kind_Instance_Name_Attribute => 1746,
- Iir_Kind_Path_Name_Attribute => 1751,
- Iir_Kind_Left_Array_Attribute => 1758,
- Iir_Kind_Right_Array_Attribute => 1765,
- Iir_Kind_High_Array_Attribute => 1772,
- Iir_Kind_Low_Array_Attribute => 1779,
- Iir_Kind_Length_Array_Attribute => 1786,
- Iir_Kind_Ascending_Array_Attribute => 1793,
- Iir_Kind_Range_Array_Attribute => 1800,
- Iir_Kind_Reverse_Range_Array_Attribute => 1807,
- Iir_Kind_Attribute_Name => 1815
+ Iir_Kind_Signal_Attribute_Declaration => 953,
+ Iir_Kind_Identity_Operator => 957,
+ Iir_Kind_Negation_Operator => 961,
+ Iir_Kind_Absolute_Operator => 965,
+ Iir_Kind_Not_Operator => 969,
+ Iir_Kind_Condition_Operator => 973,
+ Iir_Kind_Reduction_And_Operator => 977,
+ Iir_Kind_Reduction_Or_Operator => 981,
+ Iir_Kind_Reduction_Nand_Operator => 985,
+ Iir_Kind_Reduction_Nor_Operator => 989,
+ Iir_Kind_Reduction_Xor_Operator => 993,
+ Iir_Kind_Reduction_Xnor_Operator => 997,
+ Iir_Kind_And_Operator => 1002,
+ Iir_Kind_Or_Operator => 1007,
+ Iir_Kind_Nand_Operator => 1012,
+ Iir_Kind_Nor_Operator => 1017,
+ Iir_Kind_Xor_Operator => 1022,
+ Iir_Kind_Xnor_Operator => 1027,
+ Iir_Kind_Equality_Operator => 1032,
+ Iir_Kind_Inequality_Operator => 1037,
+ Iir_Kind_Less_Than_Operator => 1042,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 1047,
+ Iir_Kind_Greater_Than_Operator => 1052,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 1057,
+ Iir_Kind_Match_Equality_Operator => 1062,
+ Iir_Kind_Match_Inequality_Operator => 1067,
+ Iir_Kind_Match_Less_Than_Operator => 1072,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1077,
+ Iir_Kind_Match_Greater_Than_Operator => 1082,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1087,
+ Iir_Kind_Sll_Operator => 1092,
+ Iir_Kind_Sla_Operator => 1097,
+ Iir_Kind_Srl_Operator => 1102,
+ Iir_Kind_Sra_Operator => 1107,
+ Iir_Kind_Rol_Operator => 1112,
+ Iir_Kind_Ror_Operator => 1117,
+ Iir_Kind_Addition_Operator => 1122,
+ Iir_Kind_Substraction_Operator => 1127,
+ Iir_Kind_Concatenation_Operator => 1132,
+ Iir_Kind_Multiplication_Operator => 1137,
+ Iir_Kind_Division_Operator => 1142,
+ Iir_Kind_Modulus_Operator => 1147,
+ Iir_Kind_Remainder_Operator => 1152,
+ Iir_Kind_Exponentiation_Operator => 1157,
+ Iir_Kind_Function_Call => 1165,
+ Iir_Kind_Aggregate => 1171,
+ Iir_Kind_Parenthesis_Expression => 1174,
+ Iir_Kind_Qualified_Expression => 1178,
+ Iir_Kind_Type_Conversion => 1183,
+ Iir_Kind_Allocator_By_Expression => 1187,
+ Iir_Kind_Allocator_By_Subtype => 1192,
+ Iir_Kind_Selected_Element => 1198,
+ Iir_Kind_Dereference => 1203,
+ Iir_Kind_Implicit_Dereference => 1208,
+ Iir_Kind_Slice_Name => 1215,
+ Iir_Kind_Indexed_Name => 1221,
+ Iir_Kind_Psl_Expression => 1223,
+ Iir_Kind_Sensitized_Process_Statement => 1243,
+ Iir_Kind_Process_Statement => 1263,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1274,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1285,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1297,
+ Iir_Kind_Concurrent_Assertion_Statement => 1305,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1312,
+ Iir_Kind_Psl_Assert_Statement => 1325,
+ Iir_Kind_Psl_Cover_Statement => 1338,
+ Iir_Kind_Block_Statement => 1351,
+ Iir_Kind_If_Generate_Statement => 1361,
+ Iir_Kind_Case_Generate_Statement => 1370,
+ Iir_Kind_For_Generate_Statement => 1379,
+ Iir_Kind_Component_Instantiation_Statement => 1389,
+ Iir_Kind_Psl_Default_Clock => 1393,
+ Iir_Kind_Simple_Simultaneous_Statement => 1400,
+ Iir_Kind_Generate_Statement_Body => 1411,
+ Iir_Kind_If_Generate_Else_Clause => 1416,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1425,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1434,
+ Iir_Kind_Null_Statement => 1438,
+ Iir_Kind_Assertion_Statement => 1445,
+ Iir_Kind_Report_Statement => 1451,
+ Iir_Kind_Wait_Statement => 1458,
+ Iir_Kind_Variable_Assignment_Statement => 1464,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1470,
+ Iir_Kind_Return_Statement => 1476,
+ Iir_Kind_For_Loop_Statement => 1485,
+ Iir_Kind_While_Loop_Statement => 1493,
+ Iir_Kind_Next_Statement => 1499,
+ Iir_Kind_Exit_Statement => 1505,
+ Iir_Kind_Case_Statement => 1513,
+ Iir_Kind_Procedure_Call_Statement => 1519,
+ Iir_Kind_If_Statement => 1528,
+ Iir_Kind_Elsif => 1533,
+ Iir_Kind_Character_Literal => 1540,
+ Iir_Kind_Simple_Name => 1547,
+ Iir_Kind_Selected_Name => 1555,
+ Iir_Kind_Operator_Symbol => 1560,
+ Iir_Kind_Selected_By_All_Name => 1565,
+ Iir_Kind_Parenthesis_Name => 1569,
+ Iir_Kind_External_Constant_Name => 1577,
+ Iir_Kind_External_Signal_Name => 1585,
+ Iir_Kind_External_Variable_Name => 1593,
+ Iir_Kind_Package_Pathname => 1596,
+ Iir_Kind_Absolute_Pathname => 1597,
+ Iir_Kind_Relative_Pathname => 1598,
+ Iir_Kind_Pathname_Element => 1602,
+ Iir_Kind_Base_Attribute => 1604,
+ Iir_Kind_Left_Type_Attribute => 1609,
+ Iir_Kind_Right_Type_Attribute => 1614,
+ Iir_Kind_High_Type_Attribute => 1619,
+ Iir_Kind_Low_Type_Attribute => 1624,
+ Iir_Kind_Ascending_Type_Attribute => 1629,
+ Iir_Kind_Image_Attribute => 1635,
+ Iir_Kind_Value_Attribute => 1641,
+ Iir_Kind_Pos_Attribute => 1647,
+ Iir_Kind_Val_Attribute => 1653,
+ Iir_Kind_Succ_Attribute => 1659,
+ Iir_Kind_Pred_Attribute => 1665,
+ Iir_Kind_Leftof_Attribute => 1671,
+ Iir_Kind_Rightof_Attribute => 1677,
+ Iir_Kind_Delayed_Attribute => 1686,
+ Iir_Kind_Stable_Attribute => 1695,
+ Iir_Kind_Quiet_Attribute => 1704,
+ Iir_Kind_Transaction_Attribute => 1713,
+ Iir_Kind_Event_Attribute => 1717,
+ Iir_Kind_Active_Attribute => 1721,
+ Iir_Kind_Last_Event_Attribute => 1725,
+ Iir_Kind_Last_Active_Attribute => 1729,
+ Iir_Kind_Last_Value_Attribute => 1733,
+ Iir_Kind_Driving_Attribute => 1737,
+ Iir_Kind_Driving_Value_Attribute => 1741,
+ Iir_Kind_Behavior_Attribute => 1741,
+ Iir_Kind_Structure_Attribute => 1741,
+ Iir_Kind_Simple_Name_Attribute => 1748,
+ Iir_Kind_Instance_Name_Attribute => 1753,
+ Iir_Kind_Path_Name_Attribute => 1758,
+ Iir_Kind_Left_Array_Attribute => 1765,
+ Iir_Kind_Right_Array_Attribute => 1772,
+ Iir_Kind_High_Array_Attribute => 1779,
+ Iir_Kind_Low_Array_Attribute => 1786,
+ Iir_Kind_Length_Array_Attribute => 1793,
+ Iir_Kind_Ascending_Array_Attribute => 1800,
+ Iir_Kind_Range_Array_Attribute => 1807,
+ Iir_Kind_Reverse_Range_Array_Attribute => 1814,
+ Iir_Kind_Attribute_Name => 1822
);
function Get_Fields (K : Iir_Kind) return Fields_Array
@@ -5113,6 +5139,8 @@ package body Nodes_Meta is
return Get_Guard_Expression (N);
when Field_Guard_Decl =>
return Get_Guard_Decl (N);
+ when Field_Signal_Attribute_Chain =>
+ return Get_Signal_Attribute_Chain (N);
when Field_Block_Block_Configuration =>
return Get_Block_Block_Configuration (N);
when Field_Package_Header =>
@@ -5185,6 +5213,10 @@ package body Nodes_Meta is
return Get_Index_Subtype (N);
when Field_Parameter =>
return Get_Parameter (N);
+ when Field_Attr_Chain =>
+ return Get_Attr_Chain (N);
+ when Field_Signal_Attribute_Declaration =>
+ return Get_Signal_Attribute_Declaration (N);
when Field_Actual_Type =>
return Get_Actual_Type (N);
when Field_Association_Chain =>
@@ -5501,6 +5533,8 @@ package body Nodes_Meta is
Set_Guard_Expression (N, V);
when Field_Guard_Decl =>
Set_Guard_Decl (N, V);
+ when Field_Signal_Attribute_Chain =>
+ Set_Signal_Attribute_Chain (N, V);
when Field_Block_Block_Configuration =>
Set_Block_Block_Configuration (N, V);
when Field_Package_Header =>
@@ -5573,6 +5607,10 @@ package body Nodes_Meta is
Set_Index_Subtype (N, V);
when Field_Parameter =>
Set_Parameter (N, V);
+ when Field_Attr_Chain =>
+ Set_Attr_Chain (N, V);
+ when Field_Signal_Attribute_Declaration =>
+ Set_Signal_Attribute_Declaration (N, V);
when Field_Actual_Type =>
Set_Actual_Type (N, V);
when Field_Association_Chain =>
@@ -7032,6 +7070,7 @@ package body Nodes_Meta is
| Iir_Kind_Interface_Package_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
+ | Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
| Iir_Kind_Concurrent_Simple_Signal_Assignment
@@ -7066,11 +7105,7 @@ package body Nodes_Meta is
| Iir_Kind_If_Statement
| Iir_Kind_External_Constant_Name
| Iir_Kind_External_Signal_Name
- | Iir_Kind_External_Variable_Name
- | Iir_Kind_Delayed_Attribute
- | Iir_Kind_Stable_Attribute
- | Iir_Kind_Quiet_Attribute
- | Iir_Kind_Transaction_Attribute =>
+ | Iir_Kind_External_Variable_Name =>
return True;
when others =>
return False;
@@ -8801,6 +8836,11 @@ package body Nodes_Meta is
return K = Iir_Kind_Guard_Signal_Declaration;
end Has_Guard_Sensitivity_List;
+ function Has_Signal_Attribute_Chain (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Signal_Attribute_Declaration;
+ end Has_Signal_Attribute_Chain;
+
function Has_Block_Block_Configuration (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Block_Statement;
@@ -8964,6 +9004,7 @@ package body Nodes_Meta is
| Iir_Kind_Interface_Package_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
+ | Iir_Kind_Signal_Attribute_Declaration
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
| Iir_Kind_Concurrent_Simple_Signal_Assignment
@@ -9597,6 +9638,32 @@ package body Nodes_Meta is
end case;
end Has_Parameter;
+ function Has_Attr_Chain (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Delayed_Attribute
+ | Iir_Kind_Stable_Attribute
+ | Iir_Kind_Quiet_Attribute
+ | Iir_Kind_Transaction_Attribute =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Attr_Chain;
+
+ function Has_Signal_Attribute_Declaration (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Delayed_Attribute
+ | Iir_Kind_Stable_Attribute
+ | Iir_Kind_Quiet_Attribute
+ | Iir_Kind_Transaction_Attribute =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Signal_Attribute_Declaration;
+
function Has_Actual_Type (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Association_Element_By_Individual;