aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pyGHDL/libghdl/vhdl/nodes.py459
-rw-r--r--src/vhdl/vhdl-elocations.adb1
-rw-r--r--src/vhdl/vhdl-elocations.ads2
-rw-r--r--src/vhdl/vhdl-errors.adb2
-rw-r--r--src/vhdl/vhdl-nodes.adb1
-rw-r--r--src/vhdl/vhdl-nodes.ads3
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb269
-rw-r--r--src/vhdl/vhdl-prints.adb6
-rw-r--r--src/vhdl/vhdl-utils.adb1
9 files changed, 513 insertions, 231 deletions
diff --git a/pyGHDL/libghdl/vhdl/nodes.py b/pyGHDL/libghdl/vhdl/nodes.py
index dad9f26a0..ce86ea36e 100644
--- a/pyGHDL/libghdl/vhdl/nodes.py
+++ b/pyGHDL/libghdl/vhdl/nodes.py
@@ -151,235 +151,236 @@ class Iir_Kind(IntEnum):
Vunit_Declaration = 92
Package_Body = 93
Architecture_Body = 94
- Type_Declaration = 95
- Anonymous_Type_Declaration = 96
- Subtype_Declaration = 97
- Nature_Declaration = 98
- Subnature_Declaration = 99
- Package_Header = 100
- Unit_Declaration = 101
- Library_Declaration = 102
- Component_Declaration = 103
- Attribute_Declaration = 104
- Group_Template_Declaration = 105
- Group_Declaration = 106
- Element_Declaration = 107
- Nature_Element_Declaration = 108
- Non_Object_Alias_Declaration = 109
- Psl_Declaration = 110
- Psl_Boolean_Parameter = 111
- Psl_Endpoint_Declaration = 112
- Enumeration_Literal = 113
- Function_Declaration = 114
- Procedure_Declaration = 115
- Function_Body = 116
- Procedure_Body = 117
- Function_Instantiation_Declaration = 118
- Procedure_Instantiation_Declaration = 119
- Terminal_Declaration = 120
- Object_Alias_Declaration = 121
- Free_Quantity_Declaration = 122
- Spectrum_Quantity_Declaration = 123
- Noise_Quantity_Declaration = 124
- Across_Quantity_Declaration = 125
- Through_Quantity_Declaration = 126
- File_Declaration = 127
- Guard_Signal_Declaration = 128
- Signal_Declaration = 129
- Variable_Declaration = 130
- Constant_Declaration = 131
- Iterator_Declaration = 132
- Interface_Constant_Declaration = 133
- Interface_Variable_Declaration = 134
- Interface_Signal_Declaration = 135
- Interface_File_Declaration = 136
- Interface_Quantity_Declaration = 137
- Interface_Terminal_Declaration = 138
- Interface_Type_Declaration = 139
- Interface_Package_Declaration = 140
- Interface_Function_Declaration = 141
- Interface_Procedure_Declaration = 142
- Attribute_Implicit_Declaration = 143
- Suspend_State_Declaration = 144
- Identity_Operator = 145
- Negation_Operator = 146
- Absolute_Operator = 147
- Not_Operator = 148
- Implicit_Condition_Operator = 149
- Condition_Operator = 150
- Reduction_And_Operator = 151
- Reduction_Or_Operator = 152
- Reduction_Nand_Operator = 153
- Reduction_Nor_Operator = 154
- Reduction_Xor_Operator = 155
- Reduction_Xnor_Operator = 156
- And_Operator = 157
- Or_Operator = 158
- Nand_Operator = 159
- Nor_Operator = 160
- Xor_Operator = 161
- Xnor_Operator = 162
- Equality_Operator = 163
- Inequality_Operator = 164
- Less_Than_Operator = 165
- Less_Than_Or_Equal_Operator = 166
- Greater_Than_Operator = 167
- Greater_Than_Or_Equal_Operator = 168
- Match_Equality_Operator = 169
- Match_Inequality_Operator = 170
- Match_Less_Than_Operator = 171
- Match_Less_Than_Or_Equal_Operator = 172
- Match_Greater_Than_Operator = 173
- Match_Greater_Than_Or_Equal_Operator = 174
- Sll_Operator = 175
- Sla_Operator = 176
- Srl_Operator = 177
- Sra_Operator = 178
- Rol_Operator = 179
- Ror_Operator = 180
- Addition_Operator = 181
- Substraction_Operator = 182
- Concatenation_Operator = 183
- Multiplication_Operator = 184
- Division_Operator = 185
- Modulus_Operator = 186
- Remainder_Operator = 187
- Exponentiation_Operator = 188
- Function_Call = 189
- Aggregate = 190
- Parenthesis_Expression = 191
- Qualified_Expression = 192
- Type_Conversion = 193
- Allocator_By_Expression = 194
- Allocator_By_Subtype = 195
- Selected_Element = 196
- Dereference = 197
- Implicit_Dereference = 198
- Slice_Name = 199
- Indexed_Name = 200
- Psl_Prev = 201
- Psl_Stable = 202
- Psl_Rose = 203
- Psl_Fell = 204
- Psl_Onehot = 205
- Psl_Onehot0 = 206
- Psl_Expression = 207
- Sensitized_Process_Statement = 208
- Process_Statement = 209
- Concurrent_Simple_Signal_Assignment = 210
- Concurrent_Conditional_Signal_Assignment = 211
- Concurrent_Selected_Signal_Assignment = 212
- Concurrent_Assertion_Statement = 213
- Concurrent_Procedure_Call_Statement = 214
- Concurrent_Break_Statement = 215
- Psl_Assert_Directive = 216
- Psl_Assume_Directive = 217
- Psl_Cover_Directive = 218
- Psl_Restrict_Directive = 219
- Block_Statement = 220
- If_Generate_Statement = 221
- Case_Generate_Statement = 222
- For_Generate_Statement = 223
- Component_Instantiation_Statement = 224
- Psl_Default_Clock = 225
- Generate_Statement_Body = 226
- If_Generate_Else_Clause = 227
- Simple_Simultaneous_Statement = 228
- Simultaneous_Null_Statement = 229
- Simultaneous_Procedural_Statement = 230
- Simultaneous_Case_Statement = 231
- Simultaneous_If_Statement = 232
- Simultaneous_Elsif = 233
- Simple_Signal_Assignment_Statement = 234
- Conditional_Signal_Assignment_Statement = 235
- Selected_Waveform_Assignment_Statement = 236
- Signal_Force_Assignment_Statement = 237
- Signal_Release_Assignment_Statement = 238
- Null_Statement = 239
- Assertion_Statement = 240
- Report_Statement = 241
- Wait_Statement = 242
- Variable_Assignment_Statement = 243
- Conditional_Variable_Assignment_Statement = 244
- Return_Statement = 245
- For_Loop_Statement = 246
- While_Loop_Statement = 247
- Next_Statement = 248
- Exit_Statement = 249
- Case_Statement = 250
- Procedure_Call_Statement = 251
- Break_Statement = 252
- If_Statement = 253
- Suspend_State_Statement = 254
- Elsif = 255
- Character_Literal = 256
- Simple_Name = 257
- Selected_Name = 258
- Operator_Symbol = 259
- Reference_Name = 260
- External_Constant_Name = 261
- External_Signal_Name = 262
- External_Variable_Name = 263
- Selected_By_All_Name = 264
- Parenthesis_Name = 265
- Package_Pathname = 266
- Absolute_Pathname = 267
- Relative_Pathname = 268
- Pathname_Element = 269
- Base_Attribute = 270
- Subtype_Attribute = 271
- Element_Attribute = 272
- Across_Attribute = 273
- Through_Attribute = 274
- Nature_Reference_Attribute = 275
- Left_Type_Attribute = 276
- Right_Type_Attribute = 277
- High_Type_Attribute = 278
- Low_Type_Attribute = 279
- Ascending_Type_Attribute = 280
- Image_Attribute = 281
- Value_Attribute = 282
- Pos_Attribute = 283
- Val_Attribute = 284
- Succ_Attribute = 285
- Pred_Attribute = 286
- Leftof_Attribute = 287
- Rightof_Attribute = 288
- Signal_Slew_Attribute = 289
- Quantity_Slew_Attribute = 290
- Ramp_Attribute = 291
- Zoh_Attribute = 292
- Ltf_Attribute = 293
- Ztf_Attribute = 294
- Dot_Attribute = 295
- Integ_Attribute = 296
- Quantity_Delayed_Attribute = 297
- Above_Attribute = 298
- Delayed_Attribute = 299
- Stable_Attribute = 300
- Quiet_Attribute = 301
- Transaction_Attribute = 302
- Event_Attribute = 303
- Active_Attribute = 304
- Last_Event_Attribute = 305
- Last_Active_Attribute = 306
- Last_Value_Attribute = 307
- Driving_Attribute = 308
- Driving_Value_Attribute = 309
- Behavior_Attribute = 310
- Structure_Attribute = 311
- Simple_Name_Attribute = 312
- Instance_Name_Attribute = 313
- Path_Name_Attribute = 314
- Left_Array_Attribute = 315
- Right_Array_Attribute = 316
- High_Array_Attribute = 317
- Low_Array_Attribute = 318
- Length_Array_Attribute = 319
- Ascending_Array_Attribute = 320
- Range_Array_Attribute = 321
- Reverse_Range_Array_Attribute = 322
- Attribute_Name = 323
+ Package_Instantiation_Body = 95
+ Type_Declaration = 96
+ Anonymous_Type_Declaration = 97
+ Subtype_Declaration = 98
+ Nature_Declaration = 99
+ Subnature_Declaration = 100
+ Package_Header = 101
+ Unit_Declaration = 102
+ Library_Declaration = 103
+ Component_Declaration = 104
+ Attribute_Declaration = 105
+ Group_Template_Declaration = 106
+ Group_Declaration = 107
+ Element_Declaration = 108
+ Nature_Element_Declaration = 109
+ Non_Object_Alias_Declaration = 110
+ Psl_Declaration = 111
+ Psl_Boolean_Parameter = 112
+ Psl_Endpoint_Declaration = 113
+ Enumeration_Literal = 114
+ Function_Declaration = 115
+ Procedure_Declaration = 116
+ Function_Body = 117
+ Procedure_Body = 118
+ Function_Instantiation_Declaration = 119
+ Procedure_Instantiation_Declaration = 120
+ Terminal_Declaration = 121
+ Object_Alias_Declaration = 122
+ Free_Quantity_Declaration = 123
+ Spectrum_Quantity_Declaration = 124
+ Noise_Quantity_Declaration = 125
+ Across_Quantity_Declaration = 126
+ Through_Quantity_Declaration = 127
+ File_Declaration = 128
+ Guard_Signal_Declaration = 129
+ Signal_Declaration = 130
+ Variable_Declaration = 131
+ Constant_Declaration = 132
+ Iterator_Declaration = 133
+ Interface_Constant_Declaration = 134
+ Interface_Variable_Declaration = 135
+ Interface_Signal_Declaration = 136
+ Interface_File_Declaration = 137
+ Interface_Quantity_Declaration = 138
+ Interface_Terminal_Declaration = 139
+ Interface_Type_Declaration = 140
+ Interface_Package_Declaration = 141
+ Interface_Function_Declaration = 142
+ Interface_Procedure_Declaration = 143
+ Attribute_Implicit_Declaration = 144
+ Suspend_State_Declaration = 145
+ Identity_Operator = 146
+ Negation_Operator = 147
+ Absolute_Operator = 148
+ Not_Operator = 149
+ Implicit_Condition_Operator = 150
+ Condition_Operator = 151
+ Reduction_And_Operator = 152
+ Reduction_Or_Operator = 153
+ Reduction_Nand_Operator = 154
+ Reduction_Nor_Operator = 155
+ Reduction_Xor_Operator = 156
+ Reduction_Xnor_Operator = 157
+ And_Operator = 158
+ Or_Operator = 159
+ Nand_Operator = 160
+ Nor_Operator = 161
+ Xor_Operator = 162
+ Xnor_Operator = 163
+ Equality_Operator = 164
+ Inequality_Operator = 165
+ Less_Than_Operator = 166
+ Less_Than_Or_Equal_Operator = 167
+ Greater_Than_Operator = 168
+ Greater_Than_Or_Equal_Operator = 169
+ Match_Equality_Operator = 170
+ Match_Inequality_Operator = 171
+ Match_Less_Than_Operator = 172
+ Match_Less_Than_Or_Equal_Operator = 173
+ Match_Greater_Than_Operator = 174
+ Match_Greater_Than_Or_Equal_Operator = 175
+ Sll_Operator = 176
+ Sla_Operator = 177
+ Srl_Operator = 178
+ Sra_Operator = 179
+ Rol_Operator = 180
+ Ror_Operator = 181
+ Addition_Operator = 182
+ Substraction_Operator = 183
+ Concatenation_Operator = 184
+ Multiplication_Operator = 185
+ Division_Operator = 186
+ Modulus_Operator = 187
+ Remainder_Operator = 188
+ Exponentiation_Operator = 189
+ Function_Call = 190
+ Aggregate = 191
+ Parenthesis_Expression = 192
+ Qualified_Expression = 193
+ Type_Conversion = 194
+ Allocator_By_Expression = 195
+ Allocator_By_Subtype = 196
+ Selected_Element = 197
+ Dereference = 198
+ Implicit_Dereference = 199
+ Slice_Name = 200
+ Indexed_Name = 201
+ Psl_Prev = 202
+ Psl_Stable = 203
+ Psl_Rose = 204
+ Psl_Fell = 205
+ Psl_Onehot = 206
+ Psl_Onehot0 = 207
+ Psl_Expression = 208
+ Sensitized_Process_Statement = 209
+ Process_Statement = 210
+ Concurrent_Simple_Signal_Assignment = 211
+ Concurrent_Conditional_Signal_Assignment = 212
+ Concurrent_Selected_Signal_Assignment = 213
+ Concurrent_Assertion_Statement = 214
+ Concurrent_Procedure_Call_Statement = 215
+ Concurrent_Break_Statement = 216
+ Psl_Assert_Directive = 217
+ Psl_Assume_Directive = 218
+ Psl_Cover_Directive = 219
+ Psl_Restrict_Directive = 220
+ Block_Statement = 221
+ If_Generate_Statement = 222
+ Case_Generate_Statement = 223
+ For_Generate_Statement = 224
+ Component_Instantiation_Statement = 225
+ Psl_Default_Clock = 226
+ Generate_Statement_Body = 227
+ If_Generate_Else_Clause = 228
+ Simple_Simultaneous_Statement = 229
+ Simultaneous_Null_Statement = 230
+ Simultaneous_Procedural_Statement = 231
+ Simultaneous_Case_Statement = 232
+ Simultaneous_If_Statement = 233
+ Simultaneous_Elsif = 234
+ Simple_Signal_Assignment_Statement = 235
+ Conditional_Signal_Assignment_Statement = 236
+ Selected_Waveform_Assignment_Statement = 237
+ Signal_Force_Assignment_Statement = 238
+ Signal_Release_Assignment_Statement = 239
+ Null_Statement = 240
+ Assertion_Statement = 241
+ Report_Statement = 242
+ Wait_Statement = 243
+ Variable_Assignment_Statement = 244
+ Conditional_Variable_Assignment_Statement = 245
+ Return_Statement = 246
+ For_Loop_Statement = 247
+ While_Loop_Statement = 248
+ Next_Statement = 249
+ Exit_Statement = 250
+ Case_Statement = 251
+ Procedure_Call_Statement = 252
+ Break_Statement = 253
+ If_Statement = 254
+ Suspend_State_Statement = 255
+ Elsif = 256
+ Character_Literal = 257
+ Simple_Name = 258
+ Selected_Name = 259
+ Operator_Symbol = 260
+ Reference_Name = 261
+ External_Constant_Name = 262
+ External_Signal_Name = 263
+ External_Variable_Name = 264
+ Selected_By_All_Name = 265
+ Parenthesis_Name = 266
+ Package_Pathname = 267
+ Absolute_Pathname = 268
+ Relative_Pathname = 269
+ Pathname_Element = 270
+ Base_Attribute = 271
+ Subtype_Attribute = 272
+ Element_Attribute = 273
+ Across_Attribute = 274
+ Through_Attribute = 275
+ Nature_Reference_Attribute = 276
+ Left_Type_Attribute = 277
+ Right_Type_Attribute = 278
+ High_Type_Attribute = 279
+ Low_Type_Attribute = 280
+ Ascending_Type_Attribute = 281
+ Image_Attribute = 282
+ Value_Attribute = 283
+ Pos_Attribute = 284
+ Val_Attribute = 285
+ Succ_Attribute = 286
+ Pred_Attribute = 287
+ Leftof_Attribute = 288
+ Rightof_Attribute = 289
+ Signal_Slew_Attribute = 290
+ Quantity_Slew_Attribute = 291
+ Ramp_Attribute = 292
+ Zoh_Attribute = 293
+ Ltf_Attribute = 294
+ Ztf_Attribute = 295
+ Dot_Attribute = 296
+ Integ_Attribute = 297
+ Quantity_Delayed_Attribute = 298
+ Above_Attribute = 299
+ Delayed_Attribute = 300
+ Stable_Attribute = 301
+ Quiet_Attribute = 302
+ Transaction_Attribute = 303
+ Event_Attribute = 304
+ Active_Attribute = 305
+ Last_Event_Attribute = 306
+ Last_Active_Attribute = 307
+ Last_Value_Attribute = 308
+ Driving_Attribute = 309
+ Driving_Value_Attribute = 310
+ Behavior_Attribute = 311
+ Structure_Attribute = 312
+ Simple_Name_Attribute = 313
+ Instance_Name_Attribute = 314
+ Path_Name_Attribute = 315
+ Left_Array_Attribute = 316
+ Right_Array_Attribute = 317
+ High_Array_Attribute = 318
+ Low_Array_Attribute = 319
+ Length_Array_Attribute = 320
+ Ascending_Array_Attribute = 321
+ Range_Array_Attribute = 322
+ Reverse_Range_Array_Attribute = 323
+ Attribute_Name = 324
@export
diff --git a/src/vhdl/vhdl-elocations.adb b/src/vhdl/vhdl-elocations.adb
index b34e04a1e..d4e0ef55b 100644
--- a/src/vhdl/vhdl-elocations.adb
+++ b/src/vhdl/vhdl-elocations.adb
@@ -276,6 +276,7 @@ package body Vhdl.Elocations is
| Iir_Kind_Vmode_Declaration
| Iir_Kind_Vprop_Declaration
| Iir_Kind_Vunit_Declaration
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Nature_Declaration
| Iir_Kind_Subnature_Declaration
| Iir_Kind_Unit_Declaration
diff --git a/src/vhdl/vhdl-elocations.ads b/src/vhdl/vhdl-elocations.ads
index 42449793a..2851fb8fa 100644
--- a/src/vhdl/vhdl-elocations.ads
+++ b/src/vhdl/vhdl-elocations.ads
@@ -173,6 +173,8 @@ package Vhdl.Elocations is
--
-- Get/Set_End_Location (Field2)
+ -- Iir_Kind_Package_Instantiation_Body (None)
+
-- Iir_Kind_Package_Instantiation_Declaration (L3)
--
-- Get/Set_Start_Location (Field1)
diff --git a/src/vhdl/vhdl-errors.adb b/src/vhdl/vhdl-errors.adb
index 7877fd8de..e6e49c52a 100644
--- a/src/vhdl/vhdl-errors.adb
+++ b/src/vhdl/vhdl-errors.adb
@@ -528,6 +528,8 @@ package body Vhdl.Errors is
return Disp_Identifier (Node, "package");
when Iir_Kind_Package_Body =>
return Disp_Identifier (Node, "package body");
+ when Iir_Kind_Package_Instantiation_Body =>
+ return "package instantiation body";
when Iir_Kind_Entity_Declaration =>
return Disp_Identifier (Node, "entity");
when Iir_Kind_Architecture_Body =>
diff --git a/src/vhdl/vhdl-nodes.adb b/src/vhdl/vhdl-nodes.adb
index e3ece3128..4048d2cf2 100644
--- a/src/vhdl/vhdl-nodes.adb
+++ b/src/vhdl/vhdl-nodes.adb
@@ -1054,6 +1054,7 @@ package body Vhdl.Nodes is
| Iir_Kind_Configuration_Declaration
| Iir_Kind_Context_Declaration
| Iir_Kind_Package_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Type_Declaration
| Iir_Kind_Anonymous_Type_Declaration
| Iir_Kind_Subtype_Declaration
diff --git a/src/vhdl/vhdl-nodes.ads b/src/vhdl/vhdl-nodes.ads
index 23de77b2f..0cd02d637 100644
--- a/src/vhdl/vhdl-nodes.ads
+++ b/src/vhdl/vhdl-nodes.ads
@@ -1071,6 +1071,7 @@ package Vhdl.Nodes is
-- Get/Set_End_Has_Identifier (Flag9)
-- Iir_Kind_Package_Body (Short)
+ -- Iir_Kind_Package_Instantiation_Body (Short)
-- Note: a body is not a declaration, that's the reason why there is no
-- _declaration suffix in the name.
--
@@ -5072,6 +5073,8 @@ package Vhdl.Nodes is
Iir_Kind_Package_Body,
Iir_Kind_Architecture_Body,
+ Iir_Kind_Package_Instantiation_Body,
+
Iir_Kind_Type_Declaration,
Iir_Kind_Anonymous_Type_Declaration,
Iir_Kind_Subtype_Declaration,
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index 7fd44159b..4004c8509 100644
--- a/src/vhdl/vhdl-nodes_meta.adb
+++ b/src/vhdl/vhdl-nodes_meta.adb
@@ -1384,6 +1384,8 @@ package body Vhdl.Nodes_Meta is
return "package_body";
when Iir_Kind_Architecture_Body =>
return "architecture_body";
+ when Iir_Kind_Package_Instantiation_Body =>
+ return "package_instantiation_body";
when Iir_Kind_Type_Declaration =>
return "type_declaration";
when Iir_Kind_Anonymous_Type_Declaration =>
@@ -3402,6 +3404,15 @@ package body Vhdl.Nodes_Meta is
Field_Attribute_Value_Chain,
Field_Default_Configuration_Declaration,
Field_Bound_Vunit_Chain,
+ -- Iir_Kind_Package_Instantiation_Body
+ Field_Identifier,
+ Field_End_Has_Reserved_Id,
+ Field_End_Has_Identifier,
+ Field_Parent,
+ Field_Declaration_Chain,
+ Field_Chain,
+ Field_Attribute_Value_Chain,
+ Field_Package,
-- Iir_Kind_Type_Declaration
Field_Identifier,
Field_Visible_Flag,
@@ -5476,6 +5487,7 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Entity_Declaration => 576,
Iir_Kind_Configuration_Declaration => 586,
Iir_Kind_Context_Declaration => 592,
+<<<<<<< HEAD
Iir_Kind_Package_Declaration => 607,
Iir_Kind_Package_Instantiation_Declaration => 621,
Iir_Kind_Vmode_Declaration => 633,
@@ -5712,6 +5724,245 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Range_Array_Attribute => 2416,
Iir_Kind_Reverse_Range_Array_Attribute => 2423,
Iir_Kind_Attribute_Name => 2432
+=======
+ Iir_Kind_Package_Declaration => 608,
+ Iir_Kind_Package_Instantiation_Declaration => 622,
+ Iir_Kind_Vmode_Declaration => 634,
+ Iir_Kind_Vprop_Declaration => 646,
+ Iir_Kind_Vunit_Declaration => 659,
+ Iir_Kind_Package_Body => 667,
+ Iir_Kind_Architecture_Body => 680,
+ Iir_Kind_Package_Instantiation_Body => 688,
+ Iir_Kind_Type_Declaration => 695,
+ Iir_Kind_Anonymous_Type_Declaration => 701,
+ Iir_Kind_Subtype_Declaration => 709,
+ Iir_Kind_Nature_Declaration => 715,
+ Iir_Kind_Subnature_Declaration => 722,
+ Iir_Kind_Package_Header => 724,
+ Iir_Kind_Unit_Declaration => 733,
+ Iir_Kind_Library_Declaration => 741,
+ Iir_Kind_Component_Declaration => 751,
+ Iir_Kind_Attribute_Declaration => 758,
+ Iir_Kind_Group_Template_Declaration => 764,
+ Iir_Kind_Group_Declaration => 771,
+ Iir_Kind_Element_Declaration => 779,
+ Iir_Kind_Nature_Element_Declaration => 786,
+ Iir_Kind_Non_Object_Alias_Declaration => 794,
+ Iir_Kind_Psl_Declaration => 802,
+ Iir_Kind_Psl_Boolean_Parameter => 810,
+ Iir_Kind_Psl_Endpoint_Declaration => 824,
+ Iir_Kind_Enumeration_Literal => 836,
+ Iir_Kind_Function_Declaration => 863,
+ Iir_Kind_Procedure_Declaration => 887,
+ Iir_Kind_Function_Body => 897,
+ Iir_Kind_Procedure_Body => 908,
+ Iir_Kind_Function_Instantiation_Declaration => 919,
+ Iir_Kind_Procedure_Instantiation_Declaration => 929,
+ Iir_Kind_Terminal_Declaration => 939,
+ Iir_Kind_Object_Alias_Declaration => 951,
+ Iir_Kind_Free_Quantity_Declaration => 963,
+ Iir_Kind_Spectrum_Quantity_Declaration => 976,
+ Iir_Kind_Noise_Quantity_Declaration => 988,
+ Iir_Kind_Across_Quantity_Declaration => 1004,
+ Iir_Kind_Through_Quantity_Declaration => 1020,
+ Iir_Kind_File_Declaration => 1035,
+ Iir_Kind_Guard_Signal_Declaration => 1049,
+ Iir_Kind_Signal_Declaration => 1066,
+ Iir_Kind_Variable_Declaration => 1079,
+ Iir_Kind_Constant_Declaration => 1094,
+ Iir_Kind_Iterator_Declaration => 1106,
+ Iir_Kind_Interface_Constant_Declaration => 1123,
+ Iir_Kind_Interface_Variable_Declaration => 1139,
+ Iir_Kind_Interface_Signal_Declaration => 1160,
+ Iir_Kind_Interface_File_Declaration => 1176,
+ Iir_Kind_Interface_Quantity_Declaration => 1192,
+ Iir_Kind_Interface_Terminal_Declaration => 1204,
+ Iir_Kind_Interface_Type_Declaration => 1216,
+ Iir_Kind_Interface_Package_Declaration => 1230,
+ Iir_Kind_Interface_Function_Declaration => 1250,
+ Iir_Kind_Interface_Procedure_Declaration => 1266,
+ Iir_Kind_Attribute_Implicit_Declaration => 1269,
+ Iir_Kind_Suspend_State_Declaration => 1273,
+ Iir_Kind_Identity_Operator => 1277,
+ Iir_Kind_Negation_Operator => 1281,
+ Iir_Kind_Absolute_Operator => 1285,
+ Iir_Kind_Not_Operator => 1289,
+ Iir_Kind_Implicit_Condition_Operator => 1293,
+ Iir_Kind_Condition_Operator => 1297,
+ Iir_Kind_Reduction_And_Operator => 1301,
+ Iir_Kind_Reduction_Or_Operator => 1305,
+ Iir_Kind_Reduction_Nand_Operator => 1309,
+ Iir_Kind_Reduction_Nor_Operator => 1313,
+ Iir_Kind_Reduction_Xor_Operator => 1317,
+ Iir_Kind_Reduction_Xnor_Operator => 1321,
+ Iir_Kind_And_Operator => 1326,
+ Iir_Kind_Or_Operator => 1331,
+ Iir_Kind_Nand_Operator => 1336,
+ Iir_Kind_Nor_Operator => 1341,
+ Iir_Kind_Xor_Operator => 1346,
+ Iir_Kind_Xnor_Operator => 1351,
+ Iir_Kind_Equality_Operator => 1356,
+ Iir_Kind_Inequality_Operator => 1361,
+ Iir_Kind_Less_Than_Operator => 1366,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 1371,
+ Iir_Kind_Greater_Than_Operator => 1376,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 1381,
+ Iir_Kind_Match_Equality_Operator => 1386,
+ Iir_Kind_Match_Inequality_Operator => 1391,
+ Iir_Kind_Match_Less_Than_Operator => 1396,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1401,
+ Iir_Kind_Match_Greater_Than_Operator => 1406,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1411,
+ Iir_Kind_Sll_Operator => 1416,
+ Iir_Kind_Sla_Operator => 1421,
+ Iir_Kind_Srl_Operator => 1426,
+ Iir_Kind_Sra_Operator => 1431,
+ Iir_Kind_Rol_Operator => 1436,
+ Iir_Kind_Ror_Operator => 1441,
+ Iir_Kind_Addition_Operator => 1446,
+ Iir_Kind_Substraction_Operator => 1451,
+ Iir_Kind_Concatenation_Operator => 1456,
+ Iir_Kind_Multiplication_Operator => 1461,
+ Iir_Kind_Division_Operator => 1466,
+ Iir_Kind_Modulus_Operator => 1471,
+ Iir_Kind_Remainder_Operator => 1476,
+ Iir_Kind_Exponentiation_Operator => 1481,
+ Iir_Kind_Function_Call => 1489,
+ Iir_Kind_Aggregate => 1497,
+ Iir_Kind_Parenthesis_Expression => 1500,
+ Iir_Kind_Qualified_Expression => 1504,
+ Iir_Kind_Type_Conversion => 1509,
+ Iir_Kind_Allocator_By_Expression => 1514,
+ Iir_Kind_Allocator_By_Subtype => 1520,
+ Iir_Kind_Selected_Element => 1528,
+ Iir_Kind_Dereference => 1533,
+ Iir_Kind_Implicit_Dereference => 1538,
+ Iir_Kind_Slice_Name => 1545,
+ Iir_Kind_Indexed_Name => 1551,
+ Iir_Kind_Psl_Prev => 1557,
+ Iir_Kind_Psl_Stable => 1562,
+ Iir_Kind_Psl_Rose => 1567,
+ Iir_Kind_Psl_Fell => 1572,
+ Iir_Kind_Psl_Onehot => 1575,
+ Iir_Kind_Psl_Onehot0 => 1578,
+ Iir_Kind_Psl_Expression => 1580,
+ Iir_Kind_Sensitized_Process_Statement => 1602,
+ Iir_Kind_Process_Statement => 1623,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1636,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1649,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1663,
+ Iir_Kind_Concurrent_Assertion_Statement => 1671,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1678,
+ Iir_Kind_Concurrent_Break_Statement => 1686,
+ Iir_Kind_Psl_Assert_Directive => 1700,
+ Iir_Kind_Psl_Assume_Directive => 1712,
+ Iir_Kind_Psl_Cover_Directive => 1724,
+ Iir_Kind_Psl_Restrict_Directive => 1735,
+ Iir_Kind_Block_Statement => 1749,
+ Iir_Kind_If_Generate_Statement => 1760,
+ Iir_Kind_Case_Generate_Statement => 1769,
+ Iir_Kind_For_Generate_Statement => 1778,
+ Iir_Kind_Component_Instantiation_Statement => 1790,
+ Iir_Kind_Psl_Default_Clock => 1793,
+ Iir_Kind_Generate_Statement_Body => 1804,
+ Iir_Kind_If_Generate_Else_Clause => 1810,
+ Iir_Kind_Simple_Simultaneous_Statement => 1817,
+ Iir_Kind_Simultaneous_Null_Statement => 1821,
+ Iir_Kind_Simultaneous_Procedural_Statement => 1832,
+ Iir_Kind_Simultaneous_Case_Statement => 1841,
+ Iir_Kind_Simultaneous_If_Statement => 1850,
+ Iir_Kind_Simultaneous_Elsif => 1856,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1867,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1878,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1890,
+ Iir_Kind_Signal_Force_Assignment_Statement => 1900,
+ Iir_Kind_Signal_Release_Assignment_Statement => 1909,
+ Iir_Kind_Null_Statement => 1913,
+ Iir_Kind_Assertion_Statement => 1920,
+ Iir_Kind_Report_Statement => 1926,
+ Iir_Kind_Wait_Statement => 1934,
+ Iir_Kind_Variable_Assignment_Statement => 1941,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1948,
+ Iir_Kind_Return_Statement => 1954,
+ Iir_Kind_For_Loop_Statement => 1965,
+ Iir_Kind_While_Loop_Statement => 1976,
+ Iir_Kind_Next_Statement => 1983,
+ Iir_Kind_Exit_Statement => 1990,
+ Iir_Kind_Case_Statement => 1999,
+ Iir_Kind_Procedure_Call_Statement => 2005,
+ Iir_Kind_Break_Statement => 2012,
+ Iir_Kind_If_Statement => 2022,
+ Iir_Kind_Suspend_State_Statement => 2027,
+ Iir_Kind_Elsif => 2033,
+ Iir_Kind_Character_Literal => 2040,
+ Iir_Kind_Simple_Name => 2047,
+ Iir_Kind_Selected_Name => 2055,
+ Iir_Kind_Operator_Symbol => 2060,
+ Iir_Kind_Reference_Name => 2065,
+ Iir_Kind_External_Constant_Name => 2074,
+ Iir_Kind_External_Signal_Name => 2084,
+ Iir_Kind_External_Variable_Name => 2094,
+ Iir_Kind_Selected_By_All_Name => 2100,
+ Iir_Kind_Parenthesis_Name => 2105,
+ Iir_Kind_Package_Pathname => 2109,
+ Iir_Kind_Absolute_Pathname => 2110,
+ Iir_Kind_Relative_Pathname => 2111,
+ Iir_Kind_Pathname_Element => 2116,
+ Iir_Kind_Base_Attribute => 2118,
+ Iir_Kind_Subtype_Attribute => 2123,
+ Iir_Kind_Element_Attribute => 2128,
+ Iir_Kind_Across_Attribute => 2133,
+ Iir_Kind_Through_Attribute => 2138,
+ Iir_Kind_Nature_Reference_Attribute => 2142,
+ Iir_Kind_Left_Type_Attribute => 2147,
+ Iir_Kind_Right_Type_Attribute => 2152,
+ Iir_Kind_High_Type_Attribute => 2157,
+ Iir_Kind_Low_Type_Attribute => 2162,
+ Iir_Kind_Ascending_Type_Attribute => 2167,
+ Iir_Kind_Image_Attribute => 2173,
+ Iir_Kind_Value_Attribute => 2179,
+ Iir_Kind_Pos_Attribute => 2185,
+ Iir_Kind_Val_Attribute => 2191,
+ Iir_Kind_Succ_Attribute => 2197,
+ Iir_Kind_Pred_Attribute => 2203,
+ Iir_Kind_Leftof_Attribute => 2209,
+ Iir_Kind_Rightof_Attribute => 2215,
+ Iir_Kind_Signal_Slew_Attribute => 2223,
+ Iir_Kind_Quantity_Slew_Attribute => 2231,
+ Iir_Kind_Ramp_Attribute => 2239,
+ Iir_Kind_Zoh_Attribute => 2247,
+ Iir_Kind_Ltf_Attribute => 2255,
+ Iir_Kind_Ztf_Attribute => 2265,
+ Iir_Kind_Dot_Attribute => 2272,
+ Iir_Kind_Integ_Attribute => 2279,
+ Iir_Kind_Quantity_Delayed_Attribute => 2287,
+ Iir_Kind_Above_Attribute => 2295,
+ Iir_Kind_Delayed_Attribute => 2304,
+ Iir_Kind_Stable_Attribute => 2313,
+ Iir_Kind_Quiet_Attribute => 2322,
+ Iir_Kind_Transaction_Attribute => 2331,
+ Iir_Kind_Event_Attribute => 2335,
+ Iir_Kind_Active_Attribute => 2339,
+ Iir_Kind_Last_Event_Attribute => 2343,
+ Iir_Kind_Last_Active_Attribute => 2347,
+ Iir_Kind_Last_Value_Attribute => 2351,
+ Iir_Kind_Driving_Attribute => 2355,
+ Iir_Kind_Driving_Value_Attribute => 2359,
+ Iir_Kind_Behavior_Attribute => 2359,
+ Iir_Kind_Structure_Attribute => 2359,
+ Iir_Kind_Simple_Name_Attribute => 2366,
+ Iir_Kind_Instance_Name_Attribute => 2371,
+ Iir_Kind_Path_Name_Attribute => 2376,
+ Iir_Kind_Left_Array_Attribute => 2383,
+ Iir_Kind_Right_Array_Attribute => 2390,
+ Iir_Kind_High_Array_Attribute => 2397,
+ Iir_Kind_Low_Array_Attribute => 2404,
+ Iir_Kind_Length_Array_Attribute => 2411,
+ Iir_Kind_Ascending_Array_Attribute => 2418,
+ Iir_Kind_Range_Array_Attribute => 2425,
+ Iir_Kind_Reverse_Range_Array_Attribute => 2432,
+ Iir_Kind_Attribute_Name => 2441
+>>>>>>> a5a8fda... vhdl: add iir_kind_package_instantiation_body
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -8525,6 +8776,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body
| Iir_Kind_Interface_Package_Declaration
@@ -8569,7 +8821,13 @@ package body Vhdl.Nodes_Meta is
function Has_Package (K : Iir_Kind) return Boolean is
begin
- return K = Iir_Kind_Package_Body;
+ case K is
+ when Iir_Kind_Package_Body
+ | Iir_Kind_Package_Instantiation_Body =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Package;
function Has_Package_Body (K : Iir_Kind) return Boolean is
@@ -8713,6 +8971,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vprop_Declaration
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Type_Declaration
| Iir_Kind_Anonymous_Type_Declaration
| Iir_Kind_Subtype_Declaration
@@ -9463,7 +9722,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vprop_Declaration
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
- | Iir_Kind_Architecture_Body =>
+ | Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body =>
return True;
when others =>
return False;
@@ -9493,6 +9753,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Package_Instantiation_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body
| Iir_Kind_Interface_Package_Declaration
@@ -9652,6 +9913,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Type_Declaration
| Iir_Kind_Anonymous_Type_Declaration
| Iir_Kind_Subtype_Declaration
@@ -11191,6 +11453,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Type_Declaration
| Iir_Kind_Anonymous_Type_Declaration
| Iir_Kind_Subtype_Declaration
@@ -12518,6 +12781,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Component_Declaration
| Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body
@@ -12553,6 +12817,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Vunit_Declaration
| Iir_Kind_Package_Body
| Iir_Kind_Architecture_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Component_Declaration
| Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body
diff --git a/src/vhdl/vhdl-prints.adb b/src/vhdl/vhdl-prints.adb
index dcf348099..b09c00db6 100644
--- a/src/vhdl/vhdl-prints.adb
+++ b/src/vhdl/vhdl-prints.adb
@@ -2631,6 +2631,12 @@ package body Vhdl.Prints is
Disp_Token (Ctxt, Tok_Semi_Colon);
Close_Hbox (Ctxt);
+ when Iir_Kind_Package_Instantiation_Body =>
+ Start_Hbox (Ctxt);
+ OOB.Put ("-- body for instantiation ");
+ Disp_Ident (Ctxt, Get_Identifier (Get_Package (Decl)));
+ Close_Hbox (Ctxt);
+
when others =>
Error_Kind ("disp_declaration_chain", Decl);
end case;
diff --git a/src/vhdl/vhdl-utils.adb b/src/vhdl/vhdl-utils.adb
index a9f2c76dd..f17ed448d 100644
--- a/src/vhdl/vhdl-utils.adb
+++ b/src/vhdl/vhdl-utils.adb
@@ -336,6 +336,7 @@ package body Vhdl.Utils is
| Iir_Kinds_Subprogram_Body
| Iir_Kind_Protected_Type_Body
| Iir_Kind_Generate_Statement_Body
+ | Iir_Kind_Package_Instantiation_Body
| Iir_Kind_Procedure_Call
| Iir_Kind_Aggregate_Info
| Iir_Kind_Entity_Class