aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/nodes_meta.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/nodes_meta.adb')
-rw-r--r--src/vhdl/nodes_meta.adb163
1 files changed, 86 insertions, 77 deletions
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb
index 867b14f8d..2c1856613 100644
--- a/src/vhdl/nodes_meta.adb
+++ b/src/vhdl/nodes_meta.adb
@@ -93,8 +93,10 @@ package body Nodes_Meta is
Field_Entity_Name => Type_Iir,
Field_Package => Type_Iir,
Field_Package_Body => Type_Iir,
+ Field_Package_Instantiation_Bodies_Chain => Type_Iir,
Field_Need_Body => Type_Boolean,
Field_Macro_Expanded_Flag => Type_Boolean,
+ Field_Need_Instance_Bodies => Type_Boolean,
Field_Block_Configuration => Type_Iir,
Field_Concurrent_Statement_Chain => Type_Iir,
Field_Chain => Type_Iir,
@@ -264,7 +266,6 @@ package body Nodes_Meta is
Field_Index_Subtype => Type_Iir,
Field_Parameter => Type_Iir,
Field_Actual_Type => Type_Iir,
- Field_Associated_Interface => Type_Iir,
Field_Association_Chain => Type_Iir,
Field_Individual_Association_Chain => Type_Iir,
Field_Aggregate_Info => Type_Iir,
@@ -485,10 +486,14 @@ package body Nodes_Meta is
return "package";
when Field_Package_Body =>
return "package_body";
+ when Field_Package_Instantiation_Bodies_Chain =>
+ return "package_instantiation_bodies_chain";
when Field_Need_Body =>
return "need_body";
when Field_Macro_Expanded_Flag =>
return "macro_expanded_flag";
+ when Field_Need_Instance_Bodies =>
+ return "need_instance_bodies";
when Field_Block_Configuration =>
return "block_configuration";
when Field_Concurrent_Statement_Chain =>
@@ -827,8 +832,6 @@ package body Nodes_Meta is
return "parameter";
when Field_Actual_Type =>
return "actual_type";
- when Field_Associated_Interface =>
- return "associated_interface";
when Field_Association_Chain =>
return "association_chain";
when Field_Individual_Association_Chain =>
@@ -1631,10 +1634,14 @@ package body Nodes_Meta is
return Attr_Ref;
when Field_Package_Body =>
return Attr_Ref;
+ when Field_Package_Instantiation_Bodies_Chain =>
+ return Attr_Chain;
when Field_Need_Body =>
return Attr_None;
when Field_Macro_Expanded_Flag =>
return Attr_None;
+ when Field_Need_Instance_Bodies =>
+ return Attr_None;
when Field_Block_Configuration =>
return Attr_None;
when Field_Concurrent_Statement_Chain =>
@@ -1973,8 +1980,6 @@ package body Nodes_Meta is
return Attr_None;
when Field_Actual_Type =>
return Attr_None;
- when Field_Associated_Interface =>
- return Attr_Ref;
when Field_Association_Chain =>
return Attr_Chain;
when Field_Individual_Association_Chain =>
@@ -2245,7 +2250,6 @@ package body Nodes_Meta is
Field_Formal,
Field_Chain,
Field_Actual,
- Field_Associated_Interface,
-- Iir_Kind_Association_Element_Type
Field_Whole_Association_Flag,
Field_Collapse_Signal_Flag,
@@ -2253,7 +2257,6 @@ package body Nodes_Meta is
Field_Chain,
Field_Actual,
Field_Actual_Type,
- Field_Associated_Interface,
-- Iir_Kind_Choice_By_Others
Field_Same_Alternative_Flag,
Field_Chain,
@@ -2637,6 +2640,7 @@ package body Nodes_Meta is
Field_Identifier,
Field_Need_Body,
Field_Macro_Expanded_Flag,
+ Field_Need_Instance_Bodies,
Field_Visible_Flag,
Field_End_Has_Reserved_Id,
Field_End_Has_Identifier,
@@ -2645,6 +2649,7 @@ package body Nodes_Meta is
Field_Attribute_Value_Chain,
Field_Package_Header,
Field_Package_Origin,
+ Field_Package_Instantiation_Bodies_Chain,
Field_Parent,
Field_Package_Body,
-- Iir_Kind_Package_Instantiation_Declaration
@@ -4170,61 +4175,61 @@ package body Nodes_Meta is
Iir_Kind_Association_Element_By_Expression => 101,
Iir_Kind_Association_Element_By_Individual => 108,
Iir_Kind_Association_Element_Open => 113,
- Iir_Kind_Association_Element_Package => 119,
- Iir_Kind_Association_Element_Type => 126,
- Iir_Kind_Choice_By_Others => 131,
- Iir_Kind_Choice_By_Expression => 138,
- Iir_Kind_Choice_By_Range => 145,
- Iir_Kind_Choice_By_None => 150,
- Iir_Kind_Choice_By_Name => 156,
- Iir_Kind_Entity_Aspect_Entity => 158,
- Iir_Kind_Entity_Aspect_Configuration => 159,
- Iir_Kind_Entity_Aspect_Open => 159,
- Iir_Kind_Block_Configuration => 165,
- Iir_Kind_Block_Header => 169,
- Iir_Kind_Component_Configuration => 175,
- Iir_Kind_Binding_Indication => 181,
- Iir_Kind_Entity_Class => 183,
- Iir_Kind_Attribute_Value => 191,
- Iir_Kind_Signature => 194,
- Iir_Kind_Aggregate_Info => 201,
- Iir_Kind_Procedure_Call => 205,
- Iir_Kind_Record_Element_Constraint => 211,
- Iir_Kind_Array_Element_Resolution => 212,
- Iir_Kind_Record_Resolution => 213,
- Iir_Kind_Record_Element_Resolution => 216,
- Iir_Kind_Attribute_Specification => 225,
- Iir_Kind_Disconnection_Specification => 230,
- Iir_Kind_Configuration_Specification => 235,
- Iir_Kind_Access_Type_Definition => 242,
- Iir_Kind_Incomplete_Type_Definition => 249,
- Iir_Kind_Interface_Type_Definition => 255,
- Iir_Kind_File_Type_Definition => 262,
- Iir_Kind_Protected_Type_Declaration => 271,
- Iir_Kind_Record_Type_Definition => 281,
- Iir_Kind_Array_Type_Definition => 293,
- Iir_Kind_Array_Subtype_Definition => 308,
- Iir_Kind_Record_Subtype_Definition => 319,
- Iir_Kind_Access_Subtype_Definition => 327,
- Iir_Kind_Physical_Subtype_Definition => 336,
- Iir_Kind_Floating_Subtype_Definition => 346,
- Iir_Kind_Integer_Subtype_Definition => 355,
- Iir_Kind_Enumeration_Subtype_Definition => 364,
- Iir_Kind_Enumeration_Type_Definition => 373,
- Iir_Kind_Integer_Type_Definition => 379,
- Iir_Kind_Floating_Type_Definition => 385,
- Iir_Kind_Physical_Type_Definition => 394,
- Iir_Kind_Range_Expression => 400,
- Iir_Kind_Protected_Type_Body => 407,
- Iir_Kind_Wildcard_Type_Definition => 412,
- Iir_Kind_Subtype_Definition => 416,
- Iir_Kind_Scalar_Nature_Definition => 420,
- Iir_Kind_Overload_List => 421,
- Iir_Kind_Type_Declaration => 427,
- Iir_Kind_Anonymous_Type_Declaration => 432,
- Iir_Kind_Subtype_Declaration => 440,
- Iir_Kind_Nature_Declaration => 446,
- Iir_Kind_Subnature_Declaration => 452,
+ Iir_Kind_Association_Element_Package => 118,
+ Iir_Kind_Association_Element_Type => 124,
+ Iir_Kind_Choice_By_Others => 129,
+ Iir_Kind_Choice_By_Expression => 136,
+ Iir_Kind_Choice_By_Range => 143,
+ Iir_Kind_Choice_By_None => 148,
+ Iir_Kind_Choice_By_Name => 154,
+ Iir_Kind_Entity_Aspect_Entity => 156,
+ Iir_Kind_Entity_Aspect_Configuration => 157,
+ Iir_Kind_Entity_Aspect_Open => 157,
+ Iir_Kind_Block_Configuration => 163,
+ Iir_Kind_Block_Header => 167,
+ Iir_Kind_Component_Configuration => 173,
+ Iir_Kind_Binding_Indication => 179,
+ Iir_Kind_Entity_Class => 181,
+ Iir_Kind_Attribute_Value => 189,
+ Iir_Kind_Signature => 192,
+ Iir_Kind_Aggregate_Info => 199,
+ Iir_Kind_Procedure_Call => 203,
+ Iir_Kind_Record_Element_Constraint => 209,
+ Iir_Kind_Array_Element_Resolution => 210,
+ Iir_Kind_Record_Resolution => 211,
+ Iir_Kind_Record_Element_Resolution => 214,
+ Iir_Kind_Attribute_Specification => 223,
+ Iir_Kind_Disconnection_Specification => 228,
+ Iir_Kind_Configuration_Specification => 233,
+ Iir_Kind_Access_Type_Definition => 240,
+ Iir_Kind_Incomplete_Type_Definition => 247,
+ Iir_Kind_Interface_Type_Definition => 253,
+ Iir_Kind_File_Type_Definition => 260,
+ Iir_Kind_Protected_Type_Declaration => 269,
+ Iir_Kind_Record_Type_Definition => 279,
+ Iir_Kind_Array_Type_Definition => 291,
+ Iir_Kind_Array_Subtype_Definition => 306,
+ Iir_Kind_Record_Subtype_Definition => 317,
+ Iir_Kind_Access_Subtype_Definition => 325,
+ Iir_Kind_Physical_Subtype_Definition => 334,
+ Iir_Kind_Floating_Subtype_Definition => 344,
+ Iir_Kind_Integer_Subtype_Definition => 353,
+ Iir_Kind_Enumeration_Subtype_Definition => 362,
+ Iir_Kind_Enumeration_Type_Definition => 371,
+ Iir_Kind_Integer_Type_Definition => 377,
+ Iir_Kind_Floating_Type_Definition => 383,
+ Iir_Kind_Physical_Type_Definition => 392,
+ Iir_Kind_Range_Expression => 398,
+ Iir_Kind_Protected_Type_Body => 405,
+ Iir_Kind_Wildcard_Type_Definition => 410,
+ Iir_Kind_Subtype_Definition => 414,
+ Iir_Kind_Scalar_Nature_Definition => 418,
+ Iir_Kind_Overload_List => 419,
+ Iir_Kind_Type_Declaration => 425,
+ Iir_Kind_Anonymous_Type_Declaration => 430,
+ Iir_Kind_Subtype_Declaration => 438,
+ Iir_Kind_Nature_Declaration => 444,
+ Iir_Kind_Subnature_Declaration => 450,
Iir_Kind_Package_Declaration => 465,
Iir_Kind_Package_Instantiation_Declaration => 477,
Iir_Kind_Package_Body => 485,
@@ -4475,6 +4480,8 @@ package body Nodes_Meta is
return Get_Need_Body (N);
when Field_Macro_Expanded_Flag =>
return Get_Macro_Expanded_Flag (N);
+ when Field_Need_Instance_Bodies =>
+ return Get_Need_Instance_Bodies (N);
when Field_Guarded_Signal_Flag =>
return Get_Guarded_Signal_Flag (N);
when Field_Deferred_Declaration_Flag =>
@@ -4593,6 +4600,8 @@ package body Nodes_Meta is
Set_Need_Body (N, V);
when Field_Macro_Expanded_Flag =>
Set_Macro_Expanded_Flag (N, V);
+ when Field_Need_Instance_Bodies =>
+ Set_Need_Instance_Bodies (N, V);
when Field_Guarded_Signal_Flag =>
Set_Guarded_Signal_Flag (N, V);
when Field_Deferred_Declaration_Flag =>
@@ -4843,6 +4852,8 @@ package body Nodes_Meta is
return Get_Package (N);
when Field_Package_Body =>
return Get_Package_Body (N);
+ when Field_Package_Instantiation_Bodies_Chain =>
+ return Get_Package_Instantiation_Bodies_Chain (N);
when Field_Block_Configuration =>
return Get_Block_Configuration (N);
when Field_Concurrent_Statement_Chain =>
@@ -5079,8 +5090,6 @@ package body Nodes_Meta is
return Get_Parameter (N);
when Field_Actual_Type =>
return Get_Actual_Type (N);
- when Field_Associated_Interface =>
- return Get_Associated_Interface (N);
when Field_Association_Chain =>
return Get_Association_Chain (N);
when Field_Individual_Association_Chain =>
@@ -5217,6 +5226,8 @@ package body Nodes_Meta is
Set_Package (N, V);
when Field_Package_Body =>
Set_Package_Body (N, V);
+ when Field_Package_Instantiation_Bodies_Chain =>
+ Set_Package_Instantiation_Bodies_Chain (N, V);
when Field_Block_Configuration =>
Set_Block_Configuration (N, V);
when Field_Concurrent_Statement_Chain =>
@@ -5453,8 +5464,6 @@ package body Nodes_Meta is
Set_Parameter (N, V);
when Field_Actual_Type =>
Set_Actual_Type (N, V);
- when Field_Associated_Interface =>
- Set_Associated_Interface (N, V);
when Field_Association_Chain =>
Set_Association_Chain (N, V);
when Field_Individual_Association_Chain =>
@@ -6795,6 +6804,12 @@ package body Nodes_Meta is
end case;
end Has_Package_Body;
+ function Has_Package_Instantiation_Bodies_Chain (K : Iir_Kind)
+ return Boolean is
+ begin
+ return K = Iir_Kind_Package_Declaration;
+ end Has_Package_Instantiation_Bodies_Chain;
+
function Has_Need_Body (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Package_Declaration;
@@ -6805,6 +6820,11 @@ package body Nodes_Meta is
return K = Iir_Kind_Package_Declaration;
end Has_Macro_Expanded_Flag;
+ function Has_Need_Instance_Bodies (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Package_Declaration;
+ end Has_Need_Instance_Bodies;
+
function Has_Block_Configuration (K : Iir_Kind) return Boolean is
begin
case K is
@@ -9399,17 +9419,6 @@ package body Nodes_Meta is
end case;
end Has_Actual_Type;
- function Has_Associated_Interface (K : Iir_Kind) return Boolean is
- begin
- case K is
- when Iir_Kind_Association_Element_Package
- | Iir_Kind_Association_Element_Type =>
- return True;
- when others =>
- return False;
- end case;
- end Has_Associated_Interface;
-
function Has_Association_Chain (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Parenthesis_Name;