aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes_meta.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb221
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;