diff options
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 212 |
1 files changed, 121 insertions, 91 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index 98f77cebb..b27ac9249 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -338,6 +338,7 @@ package body Vhdl.Nodes_Meta is Field_Has_Identifier_List => Type_Boolean, Field_Has_Mode => Type_Boolean, Field_Has_Class => Type_Boolean, + Field_Has_Delay_Mechanism => Type_Boolean, Field_Suspend_Flag => Type_Boolean, Field_Is_Ref => Type_Boolean, Field_Is_Forward_Ref => Type_Boolean, @@ -999,6 +1000,8 @@ package body Vhdl.Nodes_Meta is return "has_mode"; when Field_Has_Class => return "has_class"; + when Field_Has_Delay_Mechanism => + return "has_delay_mechanism"; when Field_Suspend_Flag => return "suspend_flag"; when Field_Is_Ref => @@ -2227,6 +2230,8 @@ package body Vhdl.Nodes_Meta is return Attr_None; when Field_Has_Class => return Attr_None; + when Field_Has_Delay_Mechanism => + return Attr_None; when Field_Suspend_Flag => return Attr_None; when Field_Is_Ref => @@ -3815,6 +3820,7 @@ package body Vhdl.Nodes_Meta is Field_Label, Field_Delay_Mechanism, Field_Is_Ref, + Field_Has_Delay_Mechanism, Field_Postponed_Flag, Field_Visible_Flag, Field_Guarded_Target_State, @@ -3828,6 +3834,7 @@ package body Vhdl.Nodes_Meta is Field_Label, Field_Delay_Mechanism, Field_Is_Ref, + Field_Has_Delay_Mechanism, Field_Postponed_Flag, Field_Visible_Flag, Field_Guarded_Target_State, @@ -3841,6 +3848,7 @@ package body Vhdl.Nodes_Meta is Field_Label, Field_Delay_Mechanism, Field_Is_Ref, + Field_Has_Delay_Mechanism, Field_Postponed_Flag, Field_Visible_Flag, Field_Guarded_Target_State, @@ -4014,6 +4022,7 @@ package body Vhdl.Nodes_Meta is Field_Label, Field_Delay_Mechanism, Field_Is_Ref, + Field_Has_Delay_Mechanism, Field_Visible_Flag, Field_Guarded_Target_State, Field_Parent, @@ -4025,6 +4034,7 @@ package body Vhdl.Nodes_Meta is Field_Label, Field_Delay_Mechanism, Field_Is_Ref, + Field_Has_Delay_Mechanism, Field_Visible_Flag, Field_Guarded_Target_State, Field_Parent, @@ -4036,6 +4046,7 @@ package body Vhdl.Nodes_Meta is Field_Label, Field_Delay_Mechanism, Field_Is_Ref, + Field_Has_Delay_Mechanism, Field_Visible_Flag, Field_Guarded_Target_State, Field_Parent, @@ -4728,97 +4739,97 @@ package body Vhdl.Nodes_Meta is 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 + Iir_Kind_Concurrent_Simple_Signal_Assignment => 1380, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1393, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1407, + Iir_Kind_Concurrent_Assertion_Statement => 1415, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1422, + Iir_Kind_Psl_Assert_Directive => 1435, + Iir_Kind_Psl_Assume_Directive => 1446, + Iir_Kind_Psl_Cover_Directive => 1458, + Iir_Kind_Psl_Restrict_Directive => 1469, + Iir_Kind_Block_Statement => 1483, + Iir_Kind_If_Generate_Statement => 1494, + Iir_Kind_Case_Generate_Statement => 1503, + Iir_Kind_For_Generate_Statement => 1512, + Iir_Kind_Component_Instantiation_Statement => 1523, + Iir_Kind_Psl_Default_Clock => 1527, + Iir_Kind_Simple_Simultaneous_Statement => 1534, + Iir_Kind_Generate_Statement_Body => 1545, + Iir_Kind_If_Generate_Else_Clause => 1551, + Iir_Kind_Simple_Signal_Assignment_Statement => 1562, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1573, + Iir_Kind_Selected_Waveform_Assignment_Statement => 1585, + Iir_Kind_Null_Statement => 1589, + Iir_Kind_Assertion_Statement => 1596, + Iir_Kind_Report_Statement => 1602, + Iir_Kind_Wait_Statement => 1610, + Iir_Kind_Variable_Assignment_Statement => 1617, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1624, + Iir_Kind_Return_Statement => 1630, + Iir_Kind_For_Loop_Statement => 1641, + Iir_Kind_While_Loop_Statement => 1652, + Iir_Kind_Next_Statement => 1659, + Iir_Kind_Exit_Statement => 1666, + Iir_Kind_Case_Statement => 1674, + Iir_Kind_Procedure_Call_Statement => 1680, + Iir_Kind_If_Statement => 1690, + Iir_Kind_Elsif => 1696, + Iir_Kind_Character_Literal => 1704, + Iir_Kind_Simple_Name => 1712, + Iir_Kind_Selected_Name => 1721, + Iir_Kind_Operator_Symbol => 1727, + Iir_Kind_Reference_Name => 1732, + Iir_Kind_External_Constant_Name => 1740, + Iir_Kind_External_Signal_Name => 1748, + Iir_Kind_External_Variable_Name => 1757, + Iir_Kind_Selected_By_All_Name => 1763, + Iir_Kind_Parenthesis_Name => 1768, + Iir_Kind_Package_Pathname => 1772, + Iir_Kind_Absolute_Pathname => 1773, + Iir_Kind_Relative_Pathname => 1774, + Iir_Kind_Pathname_Element => 1779, + Iir_Kind_Base_Attribute => 1781, + Iir_Kind_Subtype_Attribute => 1786, + Iir_Kind_Element_Attribute => 1791, + Iir_Kind_Left_Type_Attribute => 1796, + Iir_Kind_Right_Type_Attribute => 1801, + Iir_Kind_High_Type_Attribute => 1806, + Iir_Kind_Low_Type_Attribute => 1811, + Iir_Kind_Ascending_Type_Attribute => 1816, + Iir_Kind_Image_Attribute => 1822, + Iir_Kind_Value_Attribute => 1828, + Iir_Kind_Pos_Attribute => 1834, + Iir_Kind_Val_Attribute => 1840, + Iir_Kind_Succ_Attribute => 1846, + Iir_Kind_Pred_Attribute => 1852, + Iir_Kind_Leftof_Attribute => 1858, + Iir_Kind_Rightof_Attribute => 1864, + Iir_Kind_Delayed_Attribute => 1873, + Iir_Kind_Stable_Attribute => 1882, + Iir_Kind_Quiet_Attribute => 1891, + Iir_Kind_Transaction_Attribute => 1900, + Iir_Kind_Event_Attribute => 1904, + Iir_Kind_Active_Attribute => 1908, + Iir_Kind_Last_Event_Attribute => 1912, + Iir_Kind_Last_Active_Attribute => 1916, + Iir_Kind_Last_Value_Attribute => 1920, + Iir_Kind_Driving_Attribute => 1924, + Iir_Kind_Driving_Value_Attribute => 1928, + Iir_Kind_Behavior_Attribute => 1928, + Iir_Kind_Structure_Attribute => 1928, + Iir_Kind_Simple_Name_Attribute => 1935, + Iir_Kind_Instance_Name_Attribute => 1940, + Iir_Kind_Path_Name_Attribute => 1945, + Iir_Kind_Left_Array_Attribute => 1952, + Iir_Kind_Right_Array_Attribute => 1959, + Iir_Kind_High_Array_Attribute => 1966, + Iir_Kind_Low_Array_Attribute => 1973, + Iir_Kind_Length_Array_Attribute => 1980, + Iir_Kind_Ascending_Array_Attribute => 1987, + Iir_Kind_Range_Array_Attribute => 1994, + Iir_Kind_Reverse_Range_Array_Attribute => 2001, + Iir_Kind_Attribute_Name => 2010 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -4973,6 +4984,8 @@ package body Vhdl.Nodes_Meta is return Get_Has_Mode (N); when Field_Has_Class => return Get_Has_Class (N); + when Field_Has_Delay_Mechanism => + return Get_Has_Delay_Mechanism (N); when Field_Suspend_Flag => return Get_Suspend_Flag (N); when Field_Is_Ref => @@ -5111,6 +5124,8 @@ package body Vhdl.Nodes_Meta is Set_Has_Mode (N, V); when Field_Has_Class => Set_Has_Class (N, V); + when Field_Has_Delay_Mechanism => + Set_Has_Delay_Mechanism (N, V); when Field_Suspend_Flag => Set_Suspend_Flag (N, V); when Field_Is_Ref => @@ -10878,6 +10893,21 @@ package body Vhdl.Nodes_Meta is end case; end Has_Has_Class; + function Has_Has_Delay_Mechanism (K : Iir_Kind) return Boolean is + begin + case K is + when Iir_Kind_Concurrent_Simple_Signal_Assignment + | Iir_Kind_Concurrent_Conditional_Signal_Assignment + | Iir_Kind_Concurrent_Selected_Signal_Assignment + | Iir_Kind_Simple_Signal_Assignment_Statement + | Iir_Kind_Conditional_Signal_Assignment_Statement + | Iir_Kind_Selected_Waveform_Assignment_Statement => + return True; + when others => + return False; + end case; + end Has_Has_Delay_Mechanism; + function Has_Suspend_Flag (K : Iir_Kind) return Boolean is begin case K is |