aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2022-05-17 06:45:27 +0200
committerTristan Gingold <tgingold@free.fr>2022-05-17 06:45:27 +0200
commitdef68da3c9599dfd3818fe338551a3ae1bfb30aa (patch)
treea57099fc930b8cc169a80777203d83d035f4ffcc
parentfee2b44d9642a9a8d278db3aa32bb2d80b49bafe (diff)
downloadghdl-def68da3c9599dfd3818fe338551a3ae1bfb30aa.tar.gz
ghdl-def68da3c9599dfd3818fe338551a3ae1bfb30aa.tar.bz2
ghdl-def68da3c9599dfd3818fe338551a3ae1bfb30aa.zip
vhdl: add suspend state pseudo decl and stmt. WIP.
-rw-r--r--pyGHDL/libghdl/vhdl/nodes.py358
-rw-r--r--src/vhdl/vhdl-elocations.adb2
-rw-r--r--src/vhdl/vhdl-elocations.ads3
-rw-r--r--src/vhdl/vhdl-errors.adb6
-rw-r--r--src/vhdl/vhdl-nodes.adb2
-rw-r--r--src/vhdl/vhdl-nodes.ads19
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb372
-rw-r--r--src/vhdl/vhdl-utils.adb74
8 files changed, 444 insertions, 392 deletions
diff --git a/pyGHDL/libghdl/vhdl/nodes.py b/pyGHDL/libghdl/vhdl/nodes.py
index 619d5c2c4..196b7e811 100644
--- a/pyGHDL/libghdl/vhdl/nodes.py
+++ b/pyGHDL/libghdl/vhdl/nodes.py
@@ -186,184 +186,186 @@ class Iir_Kind(IntEnum):
Interface_Function_Declaration = 139
Interface_Procedure_Declaration = 140
Signal_Attribute_Declaration = 141
- Identity_Operator = 142
- Negation_Operator = 143
- Absolute_Operator = 144
- Not_Operator = 145
- Implicit_Condition_Operator = 146
- Condition_Operator = 147
- Reduction_And_Operator = 148
- Reduction_Or_Operator = 149
- Reduction_Nand_Operator = 150
- Reduction_Nor_Operator = 151
- Reduction_Xor_Operator = 152
- Reduction_Xnor_Operator = 153
- And_Operator = 154
- Or_Operator = 155
- Nand_Operator = 156
- Nor_Operator = 157
- Xor_Operator = 158
- Xnor_Operator = 159
- Equality_Operator = 160
- Inequality_Operator = 161
- Less_Than_Operator = 162
- Less_Than_Or_Equal_Operator = 163
- Greater_Than_Operator = 164
- Greater_Than_Or_Equal_Operator = 165
- Match_Equality_Operator = 166
- Match_Inequality_Operator = 167
- Match_Less_Than_Operator = 168
- Match_Less_Than_Or_Equal_Operator = 169
- Match_Greater_Than_Operator = 170
- Match_Greater_Than_Or_Equal_Operator = 171
- Sll_Operator = 172
- Sla_Operator = 173
- Srl_Operator = 174
- Sra_Operator = 175
- Rol_Operator = 176
- Ror_Operator = 177
- Addition_Operator = 178
- Substraction_Operator = 179
- Concatenation_Operator = 180
- Multiplication_Operator = 181
- Division_Operator = 182
- Modulus_Operator = 183
- Remainder_Operator = 184
- Exponentiation_Operator = 185
- Function_Call = 186
- Aggregate = 187
- Parenthesis_Expression = 188
- Qualified_Expression = 189
- Type_Conversion = 190
- Allocator_By_Expression = 191
- Allocator_By_Subtype = 192
- Selected_Element = 193
- Dereference = 194
- Implicit_Dereference = 195
- Slice_Name = 196
- Indexed_Name = 197
- Psl_Prev = 198
- Psl_Stable = 199
- Psl_Rose = 200
- Psl_Fell = 201
- Psl_Onehot = 202
- Psl_Onehot0 = 203
- Psl_Expression = 204
- Sensitized_Process_Statement = 205
- Process_Statement = 206
- Concurrent_Simple_Signal_Assignment = 207
- Concurrent_Conditional_Signal_Assignment = 208
- Concurrent_Selected_Signal_Assignment = 209
- Concurrent_Assertion_Statement = 210
- Concurrent_Procedure_Call_Statement = 211
- Concurrent_Break_Statement = 212
- Psl_Assert_Directive = 213
- Psl_Assume_Directive = 214
- Psl_Cover_Directive = 215
- Psl_Restrict_Directive = 216
- Block_Statement = 217
- If_Generate_Statement = 218
- Case_Generate_Statement = 219
- For_Generate_Statement = 220
- Component_Instantiation_Statement = 221
- Psl_Default_Clock = 222
- Generate_Statement_Body = 223
- If_Generate_Else_Clause = 224
- Simple_Simultaneous_Statement = 225
- Simultaneous_Null_Statement = 226
- Simultaneous_Procedural_Statement = 227
- Simultaneous_Case_Statement = 228
- Simultaneous_If_Statement = 229
- Simultaneous_Elsif = 230
- Simple_Signal_Assignment_Statement = 231
- Conditional_Signal_Assignment_Statement = 232
- Selected_Waveform_Assignment_Statement = 233
- Signal_Force_Assignment_Statement = 234
- Signal_Release_Assignment_Statement = 235
- Null_Statement = 236
- Assertion_Statement = 237
- Report_Statement = 238
- Wait_Statement = 239
- Variable_Assignment_Statement = 240
- Conditional_Variable_Assignment_Statement = 241
- Return_Statement = 242
- For_Loop_Statement = 243
- While_Loop_Statement = 244
- Next_Statement = 245
- Exit_Statement = 246
- Case_Statement = 247
- Procedure_Call_Statement = 248
- Break_Statement = 249
- If_Statement = 250
- Elsif = 251
- Character_Literal = 252
- Simple_Name = 253
- Selected_Name = 254
- Operator_Symbol = 255
- Reference_Name = 256
- External_Constant_Name = 257
- External_Signal_Name = 258
- External_Variable_Name = 259
- Selected_By_All_Name = 260
- Parenthesis_Name = 261
- Package_Pathname = 262
- Absolute_Pathname = 263
- Relative_Pathname = 264
- Pathname_Element = 265
- Base_Attribute = 266
- Subtype_Attribute = 267
- Element_Attribute = 268
- Across_Attribute = 269
- Through_Attribute = 270
- Nature_Reference_Attribute = 271
- Left_Type_Attribute = 272
- Right_Type_Attribute = 273
- High_Type_Attribute = 274
- Low_Type_Attribute = 275
- Ascending_Type_Attribute = 276
- Image_Attribute = 277
- Value_Attribute = 278
- Pos_Attribute = 279
- Val_Attribute = 280
- Succ_Attribute = 281
- Pred_Attribute = 282
- Leftof_Attribute = 283
- Rightof_Attribute = 284
- Signal_Slew_Attribute = 285
- Quantity_Slew_Attribute = 286
- Ramp_Attribute = 287
- Zoh_Attribute = 288
- Ltf_Attribute = 289
- Ztf_Attribute = 290
- Dot_Attribute = 291
- Integ_Attribute = 292
- Above_Attribute = 293
- Quantity_Delayed_Attribute = 294
- Delayed_Attribute = 295
- Stable_Attribute = 296
- Quiet_Attribute = 297
- Transaction_Attribute = 298
- Event_Attribute = 299
- Active_Attribute = 300
- Last_Event_Attribute = 301
- Last_Active_Attribute = 302
- Last_Value_Attribute = 303
- Driving_Attribute = 304
- Driving_Value_Attribute = 305
- Behavior_Attribute = 306
- Structure_Attribute = 307
- Simple_Name_Attribute = 308
- Instance_Name_Attribute = 309
- Path_Name_Attribute = 310
- Left_Array_Attribute = 311
- Right_Array_Attribute = 312
- High_Array_Attribute = 313
- Low_Array_Attribute = 314
- Length_Array_Attribute = 315
- Ascending_Array_Attribute = 316
- Range_Array_Attribute = 317
- Reverse_Range_Array_Attribute = 318
- Attribute_Name = 319
+ Suspend_State_Declaration = 142
+ Identity_Operator = 143
+ Negation_Operator = 144
+ Absolute_Operator = 145
+ Not_Operator = 146
+ Implicit_Condition_Operator = 147
+ Condition_Operator = 148
+ Reduction_And_Operator = 149
+ Reduction_Or_Operator = 150
+ Reduction_Nand_Operator = 151
+ Reduction_Nor_Operator = 152
+ Reduction_Xor_Operator = 153
+ Reduction_Xnor_Operator = 154
+ And_Operator = 155
+ Or_Operator = 156
+ Nand_Operator = 157
+ Nor_Operator = 158
+ Xor_Operator = 159
+ Xnor_Operator = 160
+ Equality_Operator = 161
+ Inequality_Operator = 162
+ Less_Than_Operator = 163
+ Less_Than_Or_Equal_Operator = 164
+ Greater_Than_Operator = 165
+ Greater_Than_Or_Equal_Operator = 166
+ Match_Equality_Operator = 167
+ Match_Inequality_Operator = 168
+ Match_Less_Than_Operator = 169
+ Match_Less_Than_Or_Equal_Operator = 170
+ Match_Greater_Than_Operator = 171
+ Match_Greater_Than_Or_Equal_Operator = 172
+ Sll_Operator = 173
+ Sla_Operator = 174
+ Srl_Operator = 175
+ Sra_Operator = 176
+ Rol_Operator = 177
+ Ror_Operator = 178
+ Addition_Operator = 179
+ Substraction_Operator = 180
+ Concatenation_Operator = 181
+ Multiplication_Operator = 182
+ Division_Operator = 183
+ Modulus_Operator = 184
+ Remainder_Operator = 185
+ Exponentiation_Operator = 186
+ Function_Call = 187
+ Aggregate = 188
+ Parenthesis_Expression = 189
+ Qualified_Expression = 190
+ Type_Conversion = 191
+ Allocator_By_Expression = 192
+ Allocator_By_Subtype = 193
+ Selected_Element = 194
+ Dereference = 195
+ Implicit_Dereference = 196
+ Slice_Name = 197
+ Indexed_Name = 198
+ Psl_Prev = 199
+ Psl_Stable = 200
+ Psl_Rose = 201
+ Psl_Fell = 202
+ Psl_Onehot = 203
+ Psl_Onehot0 = 204
+ Psl_Expression = 205
+ Sensitized_Process_Statement = 206
+ Process_Statement = 207
+ Concurrent_Simple_Signal_Assignment = 208
+ Concurrent_Conditional_Signal_Assignment = 209
+ Concurrent_Selected_Signal_Assignment = 210
+ Concurrent_Assertion_Statement = 211
+ Concurrent_Procedure_Call_Statement = 212
+ Concurrent_Break_Statement = 213
+ Psl_Assert_Directive = 214
+ Psl_Assume_Directive = 215
+ Psl_Cover_Directive = 216
+ Psl_Restrict_Directive = 217
+ Block_Statement = 218
+ If_Generate_Statement = 219
+ Case_Generate_Statement = 220
+ For_Generate_Statement = 221
+ Component_Instantiation_Statement = 222
+ Psl_Default_Clock = 223
+ Generate_Statement_Body = 224
+ If_Generate_Else_Clause = 225
+ Simple_Simultaneous_Statement = 226
+ Simultaneous_Null_Statement = 227
+ Simultaneous_Procedural_Statement = 228
+ Simultaneous_Case_Statement = 229
+ Simultaneous_If_Statement = 230
+ Simultaneous_Elsif = 231
+ Simple_Signal_Assignment_Statement = 232
+ Conditional_Signal_Assignment_Statement = 233
+ Selected_Waveform_Assignment_Statement = 234
+ Signal_Force_Assignment_Statement = 235
+ Signal_Release_Assignment_Statement = 236
+ Null_Statement = 237
+ Assertion_Statement = 238
+ Report_Statement = 239
+ Wait_Statement = 240
+ Variable_Assignment_Statement = 241
+ Conditional_Variable_Assignment_Statement = 242
+ Return_Statement = 243
+ For_Loop_Statement = 244
+ While_Loop_Statement = 245
+ Next_Statement = 246
+ Exit_Statement = 247
+ Case_Statement = 248
+ Procedure_Call_Statement = 249
+ Break_Statement = 250
+ If_Statement = 251
+ Elsif = 252
+ Suspend_State_Statement = 253
+ Character_Literal = 254
+ Simple_Name = 255
+ Selected_Name = 256
+ Operator_Symbol = 257
+ Reference_Name = 258
+ External_Constant_Name = 259
+ External_Signal_Name = 260
+ External_Variable_Name = 261
+ Selected_By_All_Name = 262
+ Parenthesis_Name = 263
+ Package_Pathname = 264
+ Absolute_Pathname = 265
+ Relative_Pathname = 266
+ Pathname_Element = 267
+ Base_Attribute = 268
+ Subtype_Attribute = 269
+ Element_Attribute = 270
+ Across_Attribute = 271
+ Through_Attribute = 272
+ Nature_Reference_Attribute = 273
+ Left_Type_Attribute = 274
+ Right_Type_Attribute = 275
+ High_Type_Attribute = 276
+ Low_Type_Attribute = 277
+ Ascending_Type_Attribute = 278
+ Image_Attribute = 279
+ Value_Attribute = 280
+ Pos_Attribute = 281
+ Val_Attribute = 282
+ Succ_Attribute = 283
+ Pred_Attribute = 284
+ Leftof_Attribute = 285
+ Rightof_Attribute = 286
+ Signal_Slew_Attribute = 287
+ Quantity_Slew_Attribute = 288
+ Ramp_Attribute = 289
+ Zoh_Attribute = 290
+ Ltf_Attribute = 291
+ Ztf_Attribute = 292
+ Dot_Attribute = 293
+ Integ_Attribute = 294
+ Above_Attribute = 295
+ Quantity_Delayed_Attribute = 296
+ Delayed_Attribute = 297
+ Stable_Attribute = 298
+ Quiet_Attribute = 299
+ Transaction_Attribute = 300
+ Event_Attribute = 301
+ Active_Attribute = 302
+ Last_Event_Attribute = 303
+ Last_Active_Attribute = 304
+ Last_Value_Attribute = 305
+ Driving_Attribute = 306
+ Driving_Value_Attribute = 307
+ Behavior_Attribute = 308
+ Structure_Attribute = 309
+ Simple_Name_Attribute = 310
+ Instance_Name_Attribute = 311
+ Path_Name_Attribute = 312
+ Left_Array_Attribute = 313
+ Right_Array_Attribute = 314
+ High_Array_Attribute = 315
+ Low_Array_Attribute = 316
+ Length_Array_Attribute = 317
+ Ascending_Array_Attribute = 318
+ Range_Array_Attribute = 319
+ Reverse_Range_Array_Attribute = 320
+ Attribute_Name = 321
@export
diff --git a/src/vhdl/vhdl-elocations.adb b/src/vhdl/vhdl-elocations.adb
index dbd610d3c..b428c4fab 100644
--- a/src/vhdl/vhdl-elocations.adb
+++ b/src/vhdl/vhdl-elocations.adb
@@ -297,6 +297,7 @@ package body Vhdl.Elocations is
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration
| Iir_Kind_Signal_Attribute_Declaration
+ | Iir_Kind_Suspend_State_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
| Iir_Kind_Absolute_Operator
@@ -386,6 +387,7 @@ package body Vhdl.Elocations is
| Iir_Kind_Exit_Statement
| Iir_Kind_Procedure_Call_Statement
| Iir_Kind_Break_Statement
+ | Iir_Kind_Suspend_State_Statement
| Iir_Kind_Character_Literal
| Iir_Kind_Simple_Name
| Iir_Kind_Selected_Name
diff --git a/src/vhdl/vhdl-elocations.ads b/src/vhdl/vhdl-elocations.ads
index eaa1f78a1..810507a9f 100644
--- a/src/vhdl/vhdl-elocations.ads
+++ b/src/vhdl/vhdl-elocations.ads
@@ -280,6 +280,7 @@ package Vhdl.Elocations is
-- Iir_Kind_Guard_Signal_Declaration (None)
-- Iir_Kind_Signal_Attribute_Declaration (None)
+ -- Iir_Kind_Suspend_State_Declaration (None)
-- Iir_Kind_Constant_Declaration (L1)
-- Iir_Kind_Iterator_Declaration (L1)
@@ -566,6 +567,8 @@ package Vhdl.Elocations is
-- Iir_Kind_Break_Element (None)
+ -- Iir_Kind_Suspend_State_Statement (None)
+
----------------
-- operators --
----------------
diff --git a/src/vhdl/vhdl-errors.adb b/src/vhdl/vhdl-errors.adb
index ddb2a9868..3388fcde8 100644
--- a/src/vhdl/vhdl-errors.adb
+++ b/src/vhdl/vhdl-errors.adb
@@ -495,6 +495,9 @@ package body Vhdl.Errors is
when Iir_Kind_Signal_Attribute_Declaration =>
-- Should not appear.
return "signal attribute";
+ when Iir_Kind_Suspend_State_Declaration =>
+ -- Should not appear.
+ return "suspend state variable";
when Iir_Kind_Group_Template_Declaration =>
return Disp_Identifier (Node, "group template");
when Iir_Kind_Group_Declaration =>
@@ -841,6 +844,9 @@ package body Vhdl.Errors is
return Disp_Label (Node, "report statement");
when Iir_Kind_Break_Statement =>
return Disp_Label (Node, "break statement");
+ when Iir_Kind_Suspend_State_Statement =>
+ -- Should not appear.
+ return "suspend state statement";
when Iir_Kind_Block_Configuration =>
return "block configuration";
diff --git a/src/vhdl/vhdl-nodes.adb b/src/vhdl/vhdl-nodes.adb
index 947cd771d..360fdbec5 100644
--- a/src/vhdl/vhdl-nodes.adb
+++ b/src/vhdl/vhdl-nodes.adb
@@ -1083,6 +1083,7 @@ package body Vhdl.Nodes is
| Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration
| Iir_Kind_Signal_Attribute_Declaration
+ | Iir_Kind_Suspend_State_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
| Iir_Kind_Absolute_Operator
@@ -1178,6 +1179,7 @@ package body Vhdl.Nodes is
| Iir_Kind_Break_Statement
| Iir_Kind_If_Statement
| Iir_Kind_Elsif
+ | Iir_Kind_Suspend_State_Statement
| Iir_Kind_Character_Literal
| Iir_Kind_Simple_Name
| Iir_Kind_Selected_Name
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 1e97286d0..ca38cec6c 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -1872,6 +1872,15 @@ package Vhdl.Nodes is
-- Chain of signals
-- Get/Set_Signal_Attribute_Chain (Field3)
+ -- Iir_Kind_Suspend_State_Declaration (Short)
+ --
+ -- Implicit state variable to handle suspension. Added after semantic
+ -- analysis.
+ --
+ -- Get/Set_Parent (Field0)
+ --
+ -- Get/Set_Chain (Field2)
+
-- Iir_Kind_Constant_Declaration (Medium)
-- Iir_Kind_Iterator_Declaration (Short)
--
@@ -4122,6 +4131,14 @@ package Vhdl.Nodes is
--
-- Get/Set_Expression (Field5)
+ -- Iir_Kind_Suspend_State_Statement (Short)
+ --
+ -- Implicit statement added to mark a suspend point.
+ --
+ -- Get/Set_Parent (Field0)
+ --
+ -- Get/Set_Chain (Field2)
+
----------------
-- operators --
----------------
@@ -4998,6 +5015,7 @@ package Vhdl.Nodes is
Iir_Kind_Interface_Procedure_Declaration, -- interface
Iir_Kind_Signal_Attribute_Declaration,
+ Iir_Kind_Suspend_State_Declaration,
-- Expressions.
Iir_Kind_Identity_Operator,
@@ -5118,6 +5136,7 @@ package Vhdl.Nodes is
Iir_Kind_Break_Statement,
Iir_Kind_If_Statement,
Iir_Kind_Elsif,
+ Iir_Kind_Suspend_State_Statement,
-- Names
Iir_Kind_Character_Literal, -- denoting_name
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index 9fd729275..b4ef6910e 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 =>
@@ -3922,6 +3926,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 +4790,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,
@@ -5404,184 +5414,186 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Interface_Function_Declaration => 1213,
Iir_Kind_Interface_Procedure_Declaration => 1227,
Iir_Kind_Signal_Attribute_Declaration => 1230,
- Iir_Kind_Identity_Operator => 1234,
- Iir_Kind_Negation_Operator => 1238,
- Iir_Kind_Absolute_Operator => 1242,
- Iir_Kind_Not_Operator => 1246,
- Iir_Kind_Implicit_Condition_Operator => 1250,
- Iir_Kind_Condition_Operator => 1254,
- Iir_Kind_Reduction_And_Operator => 1258,
- Iir_Kind_Reduction_Or_Operator => 1262,
- Iir_Kind_Reduction_Nand_Operator => 1266,
- Iir_Kind_Reduction_Nor_Operator => 1270,
- Iir_Kind_Reduction_Xor_Operator => 1274,
- Iir_Kind_Reduction_Xnor_Operator => 1278,
- Iir_Kind_And_Operator => 1283,
- Iir_Kind_Or_Operator => 1288,
- Iir_Kind_Nand_Operator => 1293,
- Iir_Kind_Nor_Operator => 1298,
- Iir_Kind_Xor_Operator => 1303,
- Iir_Kind_Xnor_Operator => 1308,
- Iir_Kind_Equality_Operator => 1313,
- Iir_Kind_Inequality_Operator => 1318,
- Iir_Kind_Less_Than_Operator => 1323,
- Iir_Kind_Less_Than_Or_Equal_Operator => 1328,
- Iir_Kind_Greater_Than_Operator => 1333,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 1338,
- Iir_Kind_Match_Equality_Operator => 1343,
- Iir_Kind_Match_Inequality_Operator => 1348,
- Iir_Kind_Match_Less_Than_Operator => 1353,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1358,
- Iir_Kind_Match_Greater_Than_Operator => 1363,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1368,
- Iir_Kind_Sll_Operator => 1373,
- Iir_Kind_Sla_Operator => 1378,
- Iir_Kind_Srl_Operator => 1383,
- Iir_Kind_Sra_Operator => 1388,
- Iir_Kind_Rol_Operator => 1393,
- Iir_Kind_Ror_Operator => 1398,
- Iir_Kind_Addition_Operator => 1403,
- Iir_Kind_Substraction_Operator => 1408,
- Iir_Kind_Concatenation_Operator => 1413,
- Iir_Kind_Multiplication_Operator => 1418,
- Iir_Kind_Division_Operator => 1423,
- Iir_Kind_Modulus_Operator => 1428,
- Iir_Kind_Remainder_Operator => 1433,
- Iir_Kind_Exponentiation_Operator => 1438,
- Iir_Kind_Function_Call => 1446,
- Iir_Kind_Aggregate => 1453,
- Iir_Kind_Parenthesis_Expression => 1456,
- Iir_Kind_Qualified_Expression => 1460,
- Iir_Kind_Type_Conversion => 1465,
- Iir_Kind_Allocator_By_Expression => 1470,
- Iir_Kind_Allocator_By_Subtype => 1476,
- Iir_Kind_Selected_Element => 1484,
- Iir_Kind_Dereference => 1489,
- Iir_Kind_Implicit_Dereference => 1494,
- Iir_Kind_Slice_Name => 1501,
- Iir_Kind_Indexed_Name => 1507,
- Iir_Kind_Psl_Prev => 1513,
- Iir_Kind_Psl_Stable => 1518,
- Iir_Kind_Psl_Rose => 1523,
- Iir_Kind_Psl_Fell => 1528,
- Iir_Kind_Psl_Onehot => 1531,
- Iir_Kind_Psl_Onehot0 => 1534,
- Iir_Kind_Psl_Expression => 1536,
- Iir_Kind_Sensitized_Process_Statement => 1557,
- Iir_Kind_Process_Statement => 1577,
- Iir_Kind_Concurrent_Simple_Signal_Assignment => 1590,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1603,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1617,
- Iir_Kind_Concurrent_Assertion_Statement => 1625,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1632,
- Iir_Kind_Concurrent_Break_Statement => 1640,
- Iir_Kind_Psl_Assert_Directive => 1654,
- Iir_Kind_Psl_Assume_Directive => 1666,
- Iir_Kind_Psl_Cover_Directive => 1678,
- Iir_Kind_Psl_Restrict_Directive => 1689,
- Iir_Kind_Block_Statement => 1703,
- Iir_Kind_If_Generate_Statement => 1714,
- Iir_Kind_Case_Generate_Statement => 1723,
- Iir_Kind_For_Generate_Statement => 1732,
- Iir_Kind_Component_Instantiation_Statement => 1743,
- Iir_Kind_Psl_Default_Clock => 1746,
- Iir_Kind_Generate_Statement_Body => 1757,
- Iir_Kind_If_Generate_Else_Clause => 1763,
- Iir_Kind_Simple_Simultaneous_Statement => 1770,
- Iir_Kind_Simultaneous_Null_Statement => 1774,
- Iir_Kind_Simultaneous_Procedural_Statement => 1785,
- Iir_Kind_Simultaneous_Case_Statement => 1794,
- Iir_Kind_Simultaneous_If_Statement => 1803,
- Iir_Kind_Simultaneous_Elsif => 1809,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1820,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1831,
- Iir_Kind_Selected_Waveform_Assignment_Statement => 1843,
- Iir_Kind_Signal_Force_Assignment_Statement => 1853,
- Iir_Kind_Signal_Release_Assignment_Statement => 1862,
- Iir_Kind_Null_Statement => 1866,
- Iir_Kind_Assertion_Statement => 1873,
- Iir_Kind_Report_Statement => 1879,
- Iir_Kind_Wait_Statement => 1887,
- Iir_Kind_Variable_Assignment_Statement => 1894,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1901,
- Iir_Kind_Return_Statement => 1907,
- Iir_Kind_For_Loop_Statement => 1918,
- Iir_Kind_While_Loop_Statement => 1929,
- Iir_Kind_Next_Statement => 1936,
- Iir_Kind_Exit_Statement => 1943,
- Iir_Kind_Case_Statement => 1952,
- Iir_Kind_Procedure_Call_Statement => 1958,
- 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_Declaration => 1232,
+ Iir_Kind_Identity_Operator => 1236,
+ Iir_Kind_Negation_Operator => 1240,
+ Iir_Kind_Absolute_Operator => 1244,
+ Iir_Kind_Not_Operator => 1248,
+ Iir_Kind_Implicit_Condition_Operator => 1252,
+ Iir_Kind_Condition_Operator => 1256,
+ Iir_Kind_Reduction_And_Operator => 1260,
+ Iir_Kind_Reduction_Or_Operator => 1264,
+ Iir_Kind_Reduction_Nand_Operator => 1268,
+ Iir_Kind_Reduction_Nor_Operator => 1272,
+ Iir_Kind_Reduction_Xor_Operator => 1276,
+ Iir_Kind_Reduction_Xnor_Operator => 1280,
+ Iir_Kind_And_Operator => 1285,
+ Iir_Kind_Or_Operator => 1290,
+ Iir_Kind_Nand_Operator => 1295,
+ Iir_Kind_Nor_Operator => 1300,
+ Iir_Kind_Xor_Operator => 1305,
+ Iir_Kind_Xnor_Operator => 1310,
+ Iir_Kind_Equality_Operator => 1315,
+ Iir_Kind_Inequality_Operator => 1320,
+ Iir_Kind_Less_Than_Operator => 1325,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 1330,
+ Iir_Kind_Greater_Than_Operator => 1335,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 1340,
+ Iir_Kind_Match_Equality_Operator => 1345,
+ Iir_Kind_Match_Inequality_Operator => 1350,
+ Iir_Kind_Match_Less_Than_Operator => 1355,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1360,
+ Iir_Kind_Match_Greater_Than_Operator => 1365,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1370,
+ Iir_Kind_Sll_Operator => 1375,
+ Iir_Kind_Sla_Operator => 1380,
+ Iir_Kind_Srl_Operator => 1385,
+ Iir_Kind_Sra_Operator => 1390,
+ Iir_Kind_Rol_Operator => 1395,
+ Iir_Kind_Ror_Operator => 1400,
+ Iir_Kind_Addition_Operator => 1405,
+ Iir_Kind_Substraction_Operator => 1410,
+ Iir_Kind_Concatenation_Operator => 1415,
+ Iir_Kind_Multiplication_Operator => 1420,
+ Iir_Kind_Division_Operator => 1425,
+ Iir_Kind_Modulus_Operator => 1430,
+ Iir_Kind_Remainder_Operator => 1435,
+ Iir_Kind_Exponentiation_Operator => 1440,
+ Iir_Kind_Function_Call => 1448,
+ Iir_Kind_Aggregate => 1455,
+ Iir_Kind_Parenthesis_Expression => 1458,
+ Iir_Kind_Qualified_Expression => 1462,
+ Iir_Kind_Type_Conversion => 1467,
+ Iir_Kind_Allocator_By_Expression => 1472,
+ Iir_Kind_Allocator_By_Subtype => 1478,
+ Iir_Kind_Selected_Element => 1486,
+ Iir_Kind_Dereference => 1491,
+ Iir_Kind_Implicit_Dereference => 1496,
+ Iir_Kind_Slice_Name => 1503,
+ Iir_Kind_Indexed_Name => 1509,
+ Iir_Kind_Psl_Prev => 1515,
+ Iir_Kind_Psl_Stable => 1520,
+ Iir_Kind_Psl_Rose => 1525,
+ Iir_Kind_Psl_Fell => 1530,
+ Iir_Kind_Psl_Onehot => 1533,
+ Iir_Kind_Psl_Onehot0 => 1536,
+ Iir_Kind_Psl_Expression => 1538,
+ Iir_Kind_Sensitized_Process_Statement => 1559,
+ Iir_Kind_Process_Statement => 1579,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1592,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1605,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1619,
+ Iir_Kind_Concurrent_Assertion_Statement => 1627,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1634,
+ Iir_Kind_Concurrent_Break_Statement => 1642,
+ Iir_Kind_Psl_Assert_Directive => 1656,
+ Iir_Kind_Psl_Assume_Directive => 1668,
+ Iir_Kind_Psl_Cover_Directive => 1680,
+ Iir_Kind_Psl_Restrict_Directive => 1691,
+ Iir_Kind_Block_Statement => 1705,
+ Iir_Kind_If_Generate_Statement => 1716,
+ Iir_Kind_Case_Generate_Statement => 1725,
+ Iir_Kind_For_Generate_Statement => 1734,
+ Iir_Kind_Component_Instantiation_Statement => 1745,
+ Iir_Kind_Psl_Default_Clock => 1748,
+ Iir_Kind_Generate_Statement_Body => 1759,
+ Iir_Kind_If_Generate_Else_Clause => 1765,
+ Iir_Kind_Simple_Simultaneous_Statement => 1772,
+ Iir_Kind_Simultaneous_Null_Statement => 1776,
+ Iir_Kind_Simultaneous_Procedural_Statement => 1787,
+ Iir_Kind_Simultaneous_Case_Statement => 1796,
+ Iir_Kind_Simultaneous_If_Statement => 1805,
+ Iir_Kind_Simultaneous_Elsif => 1811,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1822,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1833,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1845,
+ Iir_Kind_Signal_Force_Assignment_Statement => 1855,
+ Iir_Kind_Signal_Release_Assignment_Statement => 1864,
+ Iir_Kind_Null_Statement => 1868,
+ Iir_Kind_Assertion_Statement => 1875,
+ Iir_Kind_Report_Statement => 1881,
+ Iir_Kind_Wait_Statement => 1889,
+ Iir_Kind_Variable_Assignment_Statement => 1896,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1903,
+ Iir_Kind_Return_Statement => 1909,
+ Iir_Kind_For_Loop_Statement => 1920,
+ Iir_Kind_While_Loop_Statement => 1931,
+ Iir_Kind_Next_Statement => 1938,
+ Iir_Kind_Exit_Statement => 1945,
+ Iir_Kind_Case_Statement => 1954,
+ Iir_Kind_Procedure_Call_Statement => 1960,
+ Iir_Kind_Break_Statement => 1967,
+ Iir_Kind_If_Statement => 1977,
+ Iir_Kind_Elsif => 1983,
+ Iir_Kind_Suspend_State_Statement => 1985,
+ Iir_Kind_Character_Literal => 1992,
+ Iir_Kind_Simple_Name => 1999,
+ Iir_Kind_Selected_Name => 2007,
+ Iir_Kind_Operator_Symbol => 2012,
+ Iir_Kind_Reference_Name => 2017,
+ Iir_Kind_External_Constant_Name => 2026,
+ Iir_Kind_External_Signal_Name => 2035,
+ Iir_Kind_External_Variable_Name => 2045,
+ Iir_Kind_Selected_By_All_Name => 2051,
+ Iir_Kind_Parenthesis_Name => 2056,
+ Iir_Kind_Package_Pathname => 2060,
+ Iir_Kind_Absolute_Pathname => 2061,
+ Iir_Kind_Relative_Pathname => 2062,
+ Iir_Kind_Pathname_Element => 2067,
+ Iir_Kind_Base_Attribute => 2069,
+ Iir_Kind_Subtype_Attribute => 2074,
+ Iir_Kind_Element_Attribute => 2079,
+ Iir_Kind_Across_Attribute => 2084,
+ Iir_Kind_Through_Attribute => 2089,
+ Iir_Kind_Nature_Reference_Attribute => 2093,
+ Iir_Kind_Left_Type_Attribute => 2098,
+ Iir_Kind_Right_Type_Attribute => 2103,
+ Iir_Kind_High_Type_Attribute => 2108,
+ Iir_Kind_Low_Type_Attribute => 2113,
+ Iir_Kind_Ascending_Type_Attribute => 2118,
+ Iir_Kind_Image_Attribute => 2124,
+ Iir_Kind_Value_Attribute => 2130,
+ Iir_Kind_Pos_Attribute => 2136,
+ Iir_Kind_Val_Attribute => 2142,
+ Iir_Kind_Succ_Attribute => 2148,
+ Iir_Kind_Pred_Attribute => 2154,
+ Iir_Kind_Leftof_Attribute => 2160,
+ Iir_Kind_Rightof_Attribute => 2166,
+ Iir_Kind_Signal_Slew_Attribute => 2174,
+ Iir_Kind_Quantity_Slew_Attribute => 2182,
+ Iir_Kind_Ramp_Attribute => 2190,
+ Iir_Kind_Zoh_Attribute => 2198,
+ Iir_Kind_Ltf_Attribute => 2206,
+ Iir_Kind_Ztf_Attribute => 2216,
+ Iir_Kind_Dot_Attribute => 2223,
+ Iir_Kind_Integ_Attribute => 2230,
+ Iir_Kind_Above_Attribute => 2238,
+ Iir_Kind_Quantity_Delayed_Attribute => 2246,
+ Iir_Kind_Delayed_Attribute => 2255,
+ Iir_Kind_Stable_Attribute => 2264,
+ Iir_Kind_Quiet_Attribute => 2273,
+ Iir_Kind_Transaction_Attribute => 2282,
+ Iir_Kind_Event_Attribute => 2286,
+ Iir_Kind_Active_Attribute => 2290,
+ Iir_Kind_Last_Event_Attribute => 2294,
+ Iir_Kind_Last_Active_Attribute => 2298,
+ Iir_Kind_Last_Value_Attribute => 2302,
+ Iir_Kind_Driving_Attribute => 2306,
+ Iir_Kind_Driving_Value_Attribute => 2310,
+ Iir_Kind_Behavior_Attribute => 2310,
+ Iir_Kind_Structure_Attribute => 2310,
+ Iir_Kind_Simple_Name_Attribute => 2317,
+ Iir_Kind_Instance_Name_Attribute => 2322,
+ Iir_Kind_Path_Name_Attribute => 2327,
+ Iir_Kind_Left_Array_Attribute => 2334,
+ Iir_Kind_Right_Array_Attribute => 2341,
+ Iir_Kind_High_Array_Attribute => 2348,
+ Iir_Kind_Low_Array_Attribute => 2355,
+ Iir_Kind_Length_Array_Attribute => 2362,
+ Iir_Kind_Ascending_Array_Attribute => 2369,
+ Iir_Kind_Range_Array_Attribute => 2376,
+ Iir_Kind_Reverse_Range_Array_Attribute => 2383,
+ Iir_Kind_Attribute_Name => 2392
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -8570,6 +8582,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 +8626,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 =>
@@ -10997,6 +11011,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 +11059,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 =>
diff --git a/src/vhdl/vhdl-utils.adb b/src/vhdl/vhdl-utils.adb
index 8e9d5af90..fecb0602c 100644
--- a/src/vhdl/vhdl-utils.adb
+++ b/src/vhdl/vhdl-utils.adb
@@ -240,17 +240,17 @@ package body Vhdl.Utils is
loop
case Get_Kind (Adecl) is
when Iir_Kinds_Non_Alias_Object_Declaration
- | Iir_Kinds_Quantity_Declaration
- | Iir_Kind_Terminal_Declaration
- | Iir_Kind_Interface_Quantity_Declaration
- | Iir_Kind_Interface_Terminal_Declaration
- | Iir_Kind_Interface_Type_Declaration
- | Iir_Kind_Interface_Package_Declaration
- | Iir_Kind_Interface_Function_Declaration
- | Iir_Kind_Interface_Procedure_Declaration
- | Iir_Kind_External_Signal_Name
- | Iir_Kind_External_Constant_Name
- | Iir_Kind_External_Variable_Name =>
+ | Iir_Kinds_Quantity_Declaration
+ | Iir_Kind_Terminal_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration
+ | Iir_Kind_Interface_Type_Declaration
+ | Iir_Kind_Interface_Package_Declaration
+ | Iir_Kind_Interface_Function_Declaration
+ | Iir_Kind_Interface_Procedure_Declaration
+ | Iir_Kind_External_Signal_Name
+ | Iir_Kind_External_Constant_Name
+ | Iir_Kind_External_Variable_Name =>
return Adecl;
when Iir_Kind_Object_Alias_Declaration =>
if With_Alias then
@@ -259,35 +259,36 @@ package body Vhdl.Utils is
return Adecl;
end if;
when Iir_Kind_Indexed_Name
- | Iir_Kind_Slice_Name
- | Iir_Kind_Selected_Element
- | Iir_Kind_Selected_By_All_Name =>
+ | Iir_Kind_Slice_Name
+ | Iir_Kind_Selected_Element
+ | Iir_Kind_Selected_By_All_Name =>
Adecl := Get_Base_Name (Adecl);
when Iir_Kinds_Literal
- | Iir_Kind_Overflow_Literal
- | Iir_Kind_Enumeration_Literal
- | Iir_Kinds_Monadic_Operator
- | Iir_Kinds_Dyadic_Operator
- | Iir_Kind_Function_Call
- | Iir_Kind_Qualified_Expression
- | Iir_Kind_Type_Conversion
- | Iir_Kind_Allocator_By_Expression
- | Iir_Kind_Allocator_By_Subtype
- | Iir_Kind_Parenthesis_Expression
- | Iir_Kinds_Attribute
- | Iir_Kind_Attribute_Value
- | Iir_Kind_Aggregate
- | Iir_Kind_Simple_Aggregate
- | Iir_Kind_Dereference
- | Iir_Kind_Implicit_Dereference
- | Iir_Kind_Unit_Declaration
- | Iir_Kind_Psl_Expression
- | Iir_Kinds_Concurrent_Statement
- | Iir_Kinds_Sequential_Statement
- | Iir_Kinds_Simultaneous_Statement =>
+ | Iir_Kind_Overflow_Literal
+ | Iir_Kind_Enumeration_Literal
+ | Iir_Kinds_Monadic_Operator
+ | Iir_Kinds_Dyadic_Operator
+ | Iir_Kind_Function_Call
+ | Iir_Kind_Qualified_Expression
+ | Iir_Kind_Type_Conversion
+ | Iir_Kind_Allocator_By_Expression
+ | Iir_Kind_Allocator_By_Subtype
+ | Iir_Kind_Parenthesis_Expression
+ | Iir_Kinds_Attribute
+ | Iir_Kind_Attribute_Value
+ | Iir_Kind_Aggregate
+ | Iir_Kind_Simple_Aggregate
+ | Iir_Kind_Dereference
+ | Iir_Kind_Implicit_Dereference
+ | Iir_Kind_Unit_Declaration
+ | Iir_Kind_Psl_Expression
+ | Iir_Kinds_Concurrent_Statement
+ | Iir_Kinds_Sequential_Statement
+ | Iir_Kinds_Simultaneous_Statement
+ | Iir_Kind_Suspend_State_Statement =>
return Adecl;
when Iir_Kind_Simple_Name
- | Iir_Kind_Selected_Name =>
+ | Iir_Kind_Selected_Name =>
Adecl := Get_Named_Entity (Adecl);
when Iir_Kind_Attribute_Name =>
return Get_Named_Entity (Adecl);
@@ -323,6 +324,7 @@ package body Vhdl.Utils is
| Iir_Kind_Group_Template_Declaration
| Iir_Kind_Group_Declaration
| Iir_Kind_Signal_Attribute_Declaration
+ | Iir_Kind_Suspend_State_Declaration
| Iir_Kind_Unaffected_Waveform
| Iir_Kind_Waveform_Element
| Iir_Kind_Conditional_Waveform