diff options
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r-- | src/vhdl/vhdl-nodes_meta.adb | 221 |
1 files changed, 114 insertions, 107 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb index 9fd729275..410e4b9eb 100644 --- a/src/vhdl/vhdl-nodes_meta.adb +++ b/src/vhdl/vhdl-nodes_meta.adb @@ -1436,6 +1436,8 @@ package body Vhdl.Nodes_Meta is return "interface_procedure_declaration"; when Iir_Kind_Signal_Attribute_Declaration => return "signal_attribute_declaration"; + when Iir_Kind_Suspend_State_Declaration => + return "suspend_state_declaration"; when Iir_Kind_Identity_Operator => return "identity_operator"; when Iir_Kind_Negation_Operator => @@ -1656,6 +1658,8 @@ package body Vhdl.Nodes_Meta is return "if_statement"; when Iir_Kind_Elsif => return "elsif"; + when Iir_Kind_Suspend_State_Statement => + return "suspend_state_statement"; when Iir_Kind_Character_Literal => return "character_literal"; when Iir_Kind_Simple_Name => @@ -3517,9 +3521,7 @@ package body Vhdl.Nodes_Meta is Field_Chain, Field_Interface_Declaration_Chain, Field_Generic_Chain, - Field_Return_Type_Mark, Field_Subprogram_Body, - Field_Return_Identifier, -- Iir_Kind_Function_Body Field_Impure_Depth, Field_End_Has_Reserved_Id, @@ -3922,6 +3924,9 @@ package body Vhdl.Nodes_Meta is Field_Parent, Field_Chain, Field_Signal_Attribute_Chain, + -- Iir_Kind_Suspend_State_Declaration + Field_Parent, + Field_Chain, -- Iir_Kind_Identity_Operator Field_Expr_Staticness, Field_Type, @@ -4783,6 +4788,9 @@ package body Vhdl.Nodes_Meta is Field_Condition, Field_Sequential_Statement_Chain, Field_Else_Clause, + -- Iir_Kind_Suspend_State_Statement + Field_Parent, + Field_Chain, -- Iir_Kind_Character_Literal Field_Identifier, Field_Is_Forward_Ref, @@ -5375,35 +5383,36 @@ package body Vhdl.Nodes_Meta is Iir_Kind_Psl_Endpoint_Declaration => 793, Iir_Kind_Enumeration_Literal => 805, Iir_Kind_Function_Declaration => 831, - Iir_Kind_Procedure_Declaration => 856, - Iir_Kind_Function_Body => 866, - Iir_Kind_Procedure_Body => 877, - Iir_Kind_Function_Instantiation_Declaration => 888, - Iir_Kind_Procedure_Instantiation_Declaration => 898, - Iir_Kind_Terminal_Declaration => 907, - Iir_Kind_Object_Alias_Declaration => 919, - Iir_Kind_Free_Quantity_Declaration => 931, - Iir_Kind_Spectrum_Quantity_Declaration => 944, - Iir_Kind_Noise_Quantity_Declaration => 956, - Iir_Kind_Across_Quantity_Declaration => 972, - Iir_Kind_Through_Quantity_Declaration => 988, - Iir_Kind_File_Declaration => 1003, - Iir_Kind_Guard_Signal_Declaration => 1017, - Iir_Kind_Signal_Declaration => 1034, - Iir_Kind_Variable_Declaration => 1047, - Iir_Kind_Constant_Declaration => 1061, - Iir_Kind_Iterator_Declaration => 1073, - Iir_Kind_Interface_Constant_Declaration => 1090, - Iir_Kind_Interface_Variable_Declaration => 1106, - Iir_Kind_Interface_Signal_Declaration => 1127, - Iir_Kind_Interface_File_Declaration => 1143, - Iir_Kind_Interface_Quantity_Declaration => 1159, - Iir_Kind_Interface_Terminal_Declaration => 1171, - Iir_Kind_Interface_Type_Declaration => 1182, - Iir_Kind_Interface_Package_Declaration => 1195, - Iir_Kind_Interface_Function_Declaration => 1213, - Iir_Kind_Interface_Procedure_Declaration => 1227, - Iir_Kind_Signal_Attribute_Declaration => 1230, + Iir_Kind_Procedure_Declaration => 854, + Iir_Kind_Function_Body => 864, + Iir_Kind_Procedure_Body => 875, + Iir_Kind_Function_Instantiation_Declaration => 886, + Iir_Kind_Procedure_Instantiation_Declaration => 896, + Iir_Kind_Terminal_Declaration => 905, + Iir_Kind_Object_Alias_Declaration => 917, + Iir_Kind_Free_Quantity_Declaration => 929, + Iir_Kind_Spectrum_Quantity_Declaration => 942, + Iir_Kind_Noise_Quantity_Declaration => 954, + Iir_Kind_Across_Quantity_Declaration => 970, + Iir_Kind_Through_Quantity_Declaration => 986, + Iir_Kind_File_Declaration => 1001, + Iir_Kind_Guard_Signal_Declaration => 1015, + Iir_Kind_Signal_Declaration => 1032, + Iir_Kind_Variable_Declaration => 1045, + Iir_Kind_Constant_Declaration => 1059, + Iir_Kind_Iterator_Declaration => 1071, + Iir_Kind_Interface_Constant_Declaration => 1088, + Iir_Kind_Interface_Variable_Declaration => 1104, + Iir_Kind_Interface_Signal_Declaration => 1125, + Iir_Kind_Interface_File_Declaration => 1141, + Iir_Kind_Interface_Quantity_Declaration => 1157, + Iir_Kind_Interface_Terminal_Declaration => 1169, + Iir_Kind_Interface_Type_Declaration => 1180, + Iir_Kind_Interface_Package_Declaration => 1193, + Iir_Kind_Interface_Function_Declaration => 1211, + Iir_Kind_Interface_Procedure_Declaration => 1225, + Iir_Kind_Signal_Attribute_Declaration => 1228, + Iir_Kind_Suspend_State_Declaration => 1230, Iir_Kind_Identity_Operator => 1234, Iir_Kind_Negation_Operator => 1238, Iir_Kind_Absolute_Operator => 1242, @@ -5514,74 +5523,75 @@ package body Vhdl.Nodes_Meta is Iir_Kind_Break_Statement => 1965, Iir_Kind_If_Statement => 1975, Iir_Kind_Elsif => 1981, - Iir_Kind_Character_Literal => 1988, - Iir_Kind_Simple_Name => 1995, - Iir_Kind_Selected_Name => 2003, - Iir_Kind_Operator_Symbol => 2008, - Iir_Kind_Reference_Name => 2013, - Iir_Kind_External_Constant_Name => 2022, - Iir_Kind_External_Signal_Name => 2031, - Iir_Kind_External_Variable_Name => 2041, - Iir_Kind_Selected_By_All_Name => 2047, - Iir_Kind_Parenthesis_Name => 2052, - Iir_Kind_Package_Pathname => 2056, - Iir_Kind_Absolute_Pathname => 2057, - Iir_Kind_Relative_Pathname => 2058, - Iir_Kind_Pathname_Element => 2063, - Iir_Kind_Base_Attribute => 2065, - Iir_Kind_Subtype_Attribute => 2070, - Iir_Kind_Element_Attribute => 2075, - Iir_Kind_Across_Attribute => 2080, - Iir_Kind_Through_Attribute => 2085, - Iir_Kind_Nature_Reference_Attribute => 2089, - Iir_Kind_Left_Type_Attribute => 2094, - Iir_Kind_Right_Type_Attribute => 2099, - Iir_Kind_High_Type_Attribute => 2104, - Iir_Kind_Low_Type_Attribute => 2109, - Iir_Kind_Ascending_Type_Attribute => 2114, - Iir_Kind_Image_Attribute => 2120, - Iir_Kind_Value_Attribute => 2126, - Iir_Kind_Pos_Attribute => 2132, - Iir_Kind_Val_Attribute => 2138, - Iir_Kind_Succ_Attribute => 2144, - Iir_Kind_Pred_Attribute => 2150, - Iir_Kind_Leftof_Attribute => 2156, - Iir_Kind_Rightof_Attribute => 2162, - Iir_Kind_Signal_Slew_Attribute => 2170, - Iir_Kind_Quantity_Slew_Attribute => 2178, - Iir_Kind_Ramp_Attribute => 2186, - Iir_Kind_Zoh_Attribute => 2194, - Iir_Kind_Ltf_Attribute => 2202, - Iir_Kind_Ztf_Attribute => 2212, - Iir_Kind_Dot_Attribute => 2219, - Iir_Kind_Integ_Attribute => 2226, - Iir_Kind_Above_Attribute => 2234, - Iir_Kind_Quantity_Delayed_Attribute => 2242, - Iir_Kind_Delayed_Attribute => 2251, - Iir_Kind_Stable_Attribute => 2260, - Iir_Kind_Quiet_Attribute => 2269, - Iir_Kind_Transaction_Attribute => 2278, - Iir_Kind_Event_Attribute => 2282, - Iir_Kind_Active_Attribute => 2286, - Iir_Kind_Last_Event_Attribute => 2290, - Iir_Kind_Last_Active_Attribute => 2294, - Iir_Kind_Last_Value_Attribute => 2298, - Iir_Kind_Driving_Attribute => 2302, - Iir_Kind_Driving_Value_Attribute => 2306, - Iir_Kind_Behavior_Attribute => 2306, - Iir_Kind_Structure_Attribute => 2306, - Iir_Kind_Simple_Name_Attribute => 2313, - Iir_Kind_Instance_Name_Attribute => 2318, - Iir_Kind_Path_Name_Attribute => 2323, - Iir_Kind_Left_Array_Attribute => 2330, - Iir_Kind_Right_Array_Attribute => 2337, - Iir_Kind_High_Array_Attribute => 2344, - Iir_Kind_Low_Array_Attribute => 2351, - Iir_Kind_Length_Array_Attribute => 2358, - Iir_Kind_Ascending_Array_Attribute => 2365, - Iir_Kind_Range_Array_Attribute => 2372, - Iir_Kind_Reverse_Range_Array_Attribute => 2379, - Iir_Kind_Attribute_Name => 2388 + Iir_Kind_Suspend_State_Statement => 1983, + Iir_Kind_Character_Literal => 1990, + Iir_Kind_Simple_Name => 1997, + Iir_Kind_Selected_Name => 2005, + Iir_Kind_Operator_Symbol => 2010, + Iir_Kind_Reference_Name => 2015, + Iir_Kind_External_Constant_Name => 2024, + Iir_Kind_External_Signal_Name => 2033, + Iir_Kind_External_Variable_Name => 2043, + Iir_Kind_Selected_By_All_Name => 2049, + Iir_Kind_Parenthesis_Name => 2054, + Iir_Kind_Package_Pathname => 2058, + Iir_Kind_Absolute_Pathname => 2059, + Iir_Kind_Relative_Pathname => 2060, + Iir_Kind_Pathname_Element => 2065, + Iir_Kind_Base_Attribute => 2067, + Iir_Kind_Subtype_Attribute => 2072, + Iir_Kind_Element_Attribute => 2077, + Iir_Kind_Across_Attribute => 2082, + Iir_Kind_Through_Attribute => 2087, + Iir_Kind_Nature_Reference_Attribute => 2091, + Iir_Kind_Left_Type_Attribute => 2096, + Iir_Kind_Right_Type_Attribute => 2101, + Iir_Kind_High_Type_Attribute => 2106, + Iir_Kind_Low_Type_Attribute => 2111, + Iir_Kind_Ascending_Type_Attribute => 2116, + Iir_Kind_Image_Attribute => 2122, + Iir_Kind_Value_Attribute => 2128, + Iir_Kind_Pos_Attribute => 2134, + Iir_Kind_Val_Attribute => 2140, + Iir_Kind_Succ_Attribute => 2146, + Iir_Kind_Pred_Attribute => 2152, + Iir_Kind_Leftof_Attribute => 2158, + Iir_Kind_Rightof_Attribute => 2164, + Iir_Kind_Signal_Slew_Attribute => 2172, + Iir_Kind_Quantity_Slew_Attribute => 2180, + Iir_Kind_Ramp_Attribute => 2188, + Iir_Kind_Zoh_Attribute => 2196, + Iir_Kind_Ltf_Attribute => 2204, + Iir_Kind_Ztf_Attribute => 2214, + Iir_Kind_Dot_Attribute => 2221, + Iir_Kind_Integ_Attribute => 2228, + Iir_Kind_Above_Attribute => 2236, + Iir_Kind_Quantity_Delayed_Attribute => 2244, + Iir_Kind_Delayed_Attribute => 2253, + Iir_Kind_Stable_Attribute => 2262, + Iir_Kind_Quiet_Attribute => 2271, + Iir_Kind_Transaction_Attribute => 2280, + Iir_Kind_Event_Attribute => 2284, + Iir_Kind_Active_Attribute => 2288, + Iir_Kind_Last_Event_Attribute => 2292, + Iir_Kind_Last_Active_Attribute => 2296, + Iir_Kind_Last_Value_Attribute => 2300, + Iir_Kind_Driving_Attribute => 2304, + Iir_Kind_Driving_Value_Attribute => 2308, + Iir_Kind_Behavior_Attribute => 2308, + Iir_Kind_Structure_Attribute => 2308, + Iir_Kind_Simple_Name_Attribute => 2315, + Iir_Kind_Instance_Name_Attribute => 2320, + Iir_Kind_Path_Name_Attribute => 2325, + Iir_Kind_Left_Array_Attribute => 2332, + Iir_Kind_Right_Array_Attribute => 2339, + Iir_Kind_High_Array_Attribute => 2346, + Iir_Kind_Low_Array_Attribute => 2353, + Iir_Kind_Length_Array_Attribute => 2360, + Iir_Kind_Ascending_Array_Attribute => 2367, + Iir_Kind_Range_Array_Attribute => 2374, + Iir_Kind_Reverse_Range_Array_Attribute => 2381, + Iir_Kind_Attribute_Name => 2390 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -8570,6 +8580,7 @@ package body Vhdl.Nodes_Meta is | Iir_Kind_Interface_Function_Declaration | Iir_Kind_Interface_Procedure_Declaration | Iir_Kind_Signal_Attribute_Declaration + | Iir_Kind_Suspend_State_Declaration | Iir_Kind_Sensitized_Process_Statement | Iir_Kind_Process_Statement | Iir_Kind_Concurrent_Simple_Signal_Assignment @@ -8613,6 +8624,7 @@ package body Vhdl.Nodes_Meta is | Iir_Kind_Procedure_Call_Statement | Iir_Kind_Break_Statement | Iir_Kind_If_Statement + | Iir_Kind_Suspend_State_Statement | Iir_Kind_External_Constant_Name | Iir_Kind_External_Signal_Name | Iir_Kind_External_Variable_Name => @@ -9583,13 +9595,7 @@ package body Vhdl.Nodes_Meta is function Has_Return_Identifier (K : Iir_Kind) return Boolean is begin - case K is - when Iir_Kind_Function_Declaration - | Iir_Kind_Procedure_Declaration => - return True; - when others => - return False; - end case; + return K = Iir_Kind_Function_Declaration; end Has_Return_Identifier; function Has_Visible_Flag (K : Iir_Kind) return Boolean is @@ -10997,6 +11003,7 @@ package body Vhdl.Nodes_Meta is | Iir_Kind_Interface_Function_Declaration | Iir_Kind_Interface_Procedure_Declaration | Iir_Kind_Signal_Attribute_Declaration + | Iir_Kind_Suspend_State_Declaration | Iir_Kind_Sensitized_Process_Statement | Iir_Kind_Process_Statement | Iir_Kind_Concurrent_Simple_Signal_Assignment @@ -11044,6 +11051,7 @@ package body Vhdl.Nodes_Meta is | Iir_Kind_Break_Statement | Iir_Kind_If_Statement | Iir_Kind_Elsif + | Iir_Kind_Suspend_State_Statement | Iir_Kind_External_Constant_Name | Iir_Kind_External_Signal_Name | Iir_Kind_External_Variable_Name => @@ -12072,7 +12080,6 @@ package body Vhdl.Nodes_Meta is case K is when Iir_Kind_Signature | Iir_Kind_Function_Declaration - | Iir_Kind_Procedure_Declaration | Iir_Kind_Interface_Function_Declaration | Iir_Kind_Interface_Procedure_Declaration => return True; |