diff options
author | Tristan Gingold | 2014-12-14 10:47:40 +0100 |
---|---|---|
committer | Tristan Gingold | 2014-12-14 10:47:40 +0100 |
commit | df03d4120b0689b30dc4f629407d96b45b0db5a4 (patch) | |
tree | 7f5512e73e729647127e9f1b932665a6193a91eb /src/vhdl | |
parent | da4e9284b867a22a2af4bb83d37f26312cee1984 (diff) | |
download | ghdl-df03d4120b0689b30dc4f629407d96b45b0db5a4.tar.gz ghdl-df03d4120b0689b30dc4f629407d96b45b0db5a4.tar.bz2 ghdl-df03d4120b0689b30dc4f629407d96b45b0db5a4.zip |
iirs: reduce memory size.
Diffstat (limited to 'src/vhdl')
-rw-r--r-- | src/vhdl/iirs.adb | 46 | ||||
-rw-r--r-- | src/vhdl/iirs.ads | 98 | ||||
-rw-r--r-- | src/vhdl/nodes_meta.adb | 468 |
3 files changed, 264 insertions, 348 deletions
diff --git a/src/vhdl/iirs.adb b/src/vhdl/iirs.adb index 04649b5..92bd7a1 100644 --- a/src/vhdl/iirs.adb +++ b/src/vhdl/iirs.adb @@ -297,7 +297,9 @@ package body Iirs is | Iir_Kind_Element_Declaration | Iir_Kind_Non_Object_Alias_Declaration | Iir_Kind_Terminal_Declaration + | Iir_Kind_Free_Quantity_Declaration | Iir_Kind_Object_Alias_Declaration + | Iir_Kind_Variable_Declaration | Iir_Kind_Identity_Operator | Iir_Kind_Negation_Operator | Iir_Kind_Absolute_Operator @@ -354,9 +356,13 @@ package body Iirs is | Iir_Kind_Slice_Name | Iir_Kind_Indexed_Name | Iir_Kind_Psl_Expression + | Iir_Kind_Concurrent_Assertion_Statement | Iir_Kind_Psl_Default_Clock | Iir_Kind_Concurrent_Procedure_Call_Statement + | Iir_Kind_Signal_Assignment_Statement | Iir_Kind_Null_Statement + | Iir_Kind_Assertion_Statement + | Iir_Kind_Report_Statement | Iir_Kind_Variable_Assignment_Statement | Iir_Kind_Return_Statement | Iir_Kind_For_Loop_Statement @@ -365,6 +371,8 @@ package body Iirs is | Iir_Kind_Exit_Statement | Iir_Kind_Case_Statement | Iir_Kind_Procedure_Call_Statement + | Iir_Kind_If_Statement + | Iir_Kind_Elsif | Iir_Kind_Character_Literal | Iir_Kind_Simple_Name | Iir_Kind_Selected_Name @@ -433,7 +441,6 @@ package body Iirs is | Iir_Kind_Library_Declaration | Iir_Kind_Component_Declaration | Iir_Kind_Psl_Declaration - | Iir_Kind_Free_Quantity_Declaration | Iir_Kind_Across_Quantity_Declaration | Iir_Kind_Through_Quantity_Declaration | Iir_Kind_Enumeration_Literal @@ -446,7 +453,6 @@ package body Iirs is | Iir_Kind_File_Declaration | Iir_Kind_Guard_Signal_Declaration | Iir_Kind_Signal_Declaration - | Iir_Kind_Variable_Declaration | Iir_Kind_Constant_Declaration | Iir_Kind_Iterator_Declaration | Iir_Kind_Interface_Constant_Declaration @@ -458,19 +464,13 @@ package body Iirs is | Iir_Kind_Process_Statement | Iir_Kind_Concurrent_Conditional_Signal_Assignment | Iir_Kind_Concurrent_Selected_Signal_Assignment - | Iir_Kind_Concurrent_Assertion_Statement | Iir_Kind_Psl_Assert_Statement | Iir_Kind_Psl_Cover_Statement | Iir_Kind_Block_Statement | Iir_Kind_Generate_Statement | Iir_Kind_Component_Instantiation_Statement | Iir_Kind_Simple_Simultaneous_Statement - | Iir_Kind_Signal_Assignment_Statement - | Iir_Kind_Assertion_Statement - | Iir_Kind_Report_Statement - | Iir_Kind_Wait_Statement - | Iir_Kind_If_Statement - | Iir_Kind_Elsif => + | Iir_Kind_Wait_Statement => return Format_Medium; when Iir_Kind_Floating_Point_Literal | Iir_Kind_Physical_Fp_Literal => @@ -730,14 +730,14 @@ package body Iirs is begin pragma Assert (Stmt /= Null_Iir); pragma Assert (Has_Guarded_Target_State (Get_Kind (Stmt))); - return Tri_State_Type'Val (Get_State3 (Stmt)); + return Tri_State_Type'Val (Get_State1 (Stmt)); end Get_Guarded_Target_State; procedure Set_Guarded_Target_State (Stmt : Iir; State : Tri_State_Type) is begin pragma Assert (Stmt /= Null_Iir); pragma Assert (Has_Guarded_Target_State (Get_Kind (Stmt))); - Set_State3 (Stmt, Tri_State_Type'Pos (State)); + Set_State1 (Stmt, Tri_State_Type'Pos (State)); end Set_Guarded_Target_State; function Get_Library_Unit (Design_Unit : Iir_Design_Unit) return Iir is @@ -1843,28 +1843,28 @@ package body Iirs is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Default_Value (Get_Kind (Target))); - return Get_Field6 (Target); + return Get_Field4 (Target); end Get_Default_Value; procedure Set_Default_Value (Target : Iir; Value : Iir) is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Default_Value (Get_Kind (Target))); - Set_Field6 (Target, Value); + Set_Field4 (Target, Value); end Set_Default_Value; function Get_Deferred_Declaration (Target : Iir) return Iir is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Deferred_Declaration (Get_Kind (Target))); - return Get_Field7 (Target); + return Get_Field6 (Target); end Get_Deferred_Declaration; procedure Set_Deferred_Declaration (Target : Iir; Decl : Iir) is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Deferred_Declaration (Get_Kind (Target))); - Set_Field7 (Target, Decl); + Set_Field6 (Target, Decl); end Set_Deferred_Declaration; function Get_Deferred_Declaration_Flag (Target : Iir) return Boolean is @@ -2658,14 +2658,14 @@ package body Iirs is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Reject_Time_Expression (Get_Kind (Target))); - return Get_Field6 (Target); + return Get_Field4 (Target); end Get_Reject_Time_Expression; procedure Set_Reject_Time_Expression (Target : Iir; Expr : Iir) is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Reject_Time_Expression (Get_Kind (Target))); - Set_Field6 (Target, Expr); + Set_Field4 (Target, Expr); end Set_Reject_Time_Expression; function Get_Sensitivity_List (Wait : Iir) return Iir_List is @@ -2953,28 +2953,28 @@ package body Iirs is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Report_Expression (Get_Kind (Target))); - return Get_Field6 (Target); + return Get_Field5 (Target); end Get_Report_Expression; procedure Set_Report_Expression (Target : Iir; Expr : Iir) is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Report_Expression (Get_Kind (Target))); - Set_Field6 (Target, Expr); + Set_Field5 (Target, Expr); end Set_Report_Expression; function Get_Severity_Expression (Target : Iir) return Iir is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Severity_Expression (Get_Kind (Target))); - return Get_Field5 (Target); + return Get_Field4 (Target); end Get_Severity_Expression; procedure Set_Severity_Expression (Target : Iir; Expr : Iir) is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Severity_Expression (Get_Kind (Target))); - Set_Field5 (Target, Expr); + Set_Field4 (Target, Expr); end Set_Severity_Expression; function Get_Instantiated_Unit (Target : Iir) return Iir is @@ -3292,14 +3292,14 @@ package body Iirs is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Else_Clause (Get_Kind (Target))); - return Get_Field6 (Target); + return Get_Field4 (Target); end Get_Else_Clause; procedure Set_Else_Clause (Target : Iir; Clause : Iir) is begin pragma Assert (Target /= Null_Iir); pragma Assert (Has_Else_Clause (Get_Kind (Target))); - Set_Field6 (Target, Clause); + Set_Field4 (Target, Clause); end Set_Else_Clause; function Get_Parameter_Specification (Target : Iir) return Iir is diff --git a/src/vhdl/iirs.ads b/src/vhdl/iirs.ads index 90d3157..591da44 100644 --- a/src/vhdl/iirs.ads +++ b/src/vhdl/iirs.ads @@ -1088,10 +1088,10 @@ package Iirs is -- -- Get/Set_Identifier (Field3) -- - -- Get/Set_Subtype_Indication (Field5) - -- -- Must always be null_iir for iir_kind_interface_file_declaration. - -- Get/Set_Default_Value (Field6) + -- Get/Set_Default_Value (Field4) + -- + -- Get/Set_Subtype_Indication (Field5) -- -- Get/Set_Mode (Odigit1) -- @@ -1334,9 +1334,9 @@ package Iirs is -- -- Get/Set_Identifier (Field3) -- - -- Get/Set_Subtype_Indication (Field5) + -- Get/Set_Default_Value (Field4) -- - -- Get/Set_Default_Value (Field6) + -- Get/Set_Subtype_Indication (Field5) -- -- For a non-resolved signal: null_iir if the signal has no driver, or -- a process/concurrent_statement for which the signal should have a @@ -1401,6 +1401,11 @@ package Iirs is -- -- Get/Set_Identifier (Field3) -- + -- Only for Iir_Kind_Constant_Declaration: + -- Default value of a deferred constant points to the full constant + -- declaration. + -- Get/Set_Default_Value (Field4) + -- -- For iterator, this is the reconstructed subtype indication. -- Get/Set_Subtype_Indication (Field5) -- @@ -1408,11 +1413,6 @@ package Iirs is -- Get/Set_Discrete_Range (Field6) -- -- Only for Iir_Kind_Constant_Declaration: - -- Default value of a deferred constant points to the full constant - -- declaration. - -- Get/Set_Default_Value (Field6) - -- - -- Only for Iir_Kind_Constant_Declaration: -- Summary: -- | constant C1 : integer; -- Deferred declaration (in a package) -- | constant C2 : integer := 4; -- Declaration @@ -1423,7 +1423,7 @@ package Iirs is -- | C1' C1 False -- |(*): Deferred_declaration is Null_Iir as long as the full declaration -- | has not been analyzed. - -- Get/Set_Deferred_Declaration (Field7) + -- Get/Set_Deferred_Declaration (Field6) -- -- Only for Iir_Kind_Constant_Declaration: -- Get/Set_Deferred_Declaration_Flag (Flag1) @@ -1440,7 +1440,7 @@ package Iirs is -- -- Get/Set_Name_Staticness (State2) - -- Iir_Kind_Variable_Declaration (Medium) + -- Iir_Kind_Variable_Declaration (Short) -- -- Get/Set_Parent (Field0) -- @@ -1450,9 +1450,9 @@ package Iirs is -- -- Get/Set_Identifier (Field3) -- - -- Get/Set_Subtype_Indication (Field5) + -- Get/Set_Default_Value (Field4) -- - -- Get/Set_Default_Value (Field6) + -- Get/Set_Subtype_Indication (Field5) -- -- True if the variable is a shared variable. -- Get/Set_Shared_Flag (Flag2) @@ -1654,7 +1654,7 @@ package Iirs is -- -- Get/Set_Use_Flag (Flag6) - -- Iir_Kind_Free_Quantity_Declaration (Medium) + -- Iir_Kind_Free_Quantity_Declaration (Short) -- -- Get/Set_Parent (Field0) -- @@ -1662,9 +1662,9 @@ package Iirs is -- -- Get/Set_Chain (Field2) -- - -- Get/Set_Identifier (Field3) + -- Get/Set_Default_Value (Field4) -- - -- Get/Set_Default_Value (Field6) + -- Get/Set_Identifier (Field3) -- -- Get/Set_Visible_Flag (Flag4) -- @@ -1683,9 +1683,9 @@ package Iirs is -- -- Get/Set_Chain (Field2) -- - -- Get/Set_Identifier (Field3) + -- Get/Set_Default_Value (Field4) -- - -- Get/Set_Default_Value (Field6) + -- Get/Set_Identifier (Field3) -- -- Get/Set_Tolerance (Field7) -- @@ -2340,11 +2340,11 @@ package Iirs is -- Get/Set_Label (Field3) -- Get/Set_Identifier (Alias Field3) -- + -- Get/Set_Reject_Time_Expression (Field4) + -- -- Only for Iir_Kind_Concurrent_Selected_Signal_Assignment: -- Get/Set_Expression (Field5) -- - -- Get/Set_Reject_Time_Expression (Field6) - -- -- Only for Iir_Kind_Concurrent_Conditional_Signal_Assignment: -- Get/Set_Conditional_Waveform_Chain (Field7) -- @@ -2364,7 +2364,7 @@ package Iirs is -- Get/Set_Visible_Flag (Flag4) -- -- True if the target of the assignment is guarded - -- Get/Set_Guarded_Target_State (State3) + -- Get/Set_Guarded_Target_State (State1) -- Iir_Kind_Sensitized_Process_Statement (Medium) -- Iir_Kind_Process_Statement (Medium) @@ -2411,7 +2411,7 @@ package Iirs is -- -- Get/Set_End_Has_Postponed (Flag10) - -- Iir_Kind_Concurrent_Assertion_Statement (Medium) + -- Iir_Kind_Concurrent_Assertion_Statement (Short) -- -- Get/Set_Parent (Field0) -- @@ -2422,9 +2422,9 @@ package Iirs is -- Get/Set_Label (Field3) -- Get/Set_Identifier (Alias Field3) -- - -- Get/Set_Severity_Expression (Field5) + -- Get/Set_Severity_Expression (Field4) -- - -- Get/Set_Report_Expression (Field6) + -- Get/Set_Report_Expression (Field5) -- -- Get/Set_Postponed_Flag (Flag3) -- @@ -2453,9 +2453,9 @@ package Iirs is -- Get/Set_Label (Field3) -- Get/Set_Identifier (Alias Field3) -- - -- Get/Set_Severity_Expression (Field5) + -- Get/Set_Severity_Expression (Field4) -- - -- Get/Set_Report_Expression (Field6) + -- Get/Set_Report_Expression (Field5) -- -- Get/Set_PSL_Clock (Field7) -- @@ -2593,8 +2593,8 @@ package Iirs is -- sequential statements -- ---------------------------- - -- Iir_Kind_If_Statement (Medium) - -- Iir_Kind_Elsif (Medium) + -- Iir_Kind_If_Statement (Short) + -- Iir_Kind_Elsif (Short) -- -- Get/Set_Parent (Field0) -- @@ -2608,14 +2608,14 @@ package Iirs is -- Only for Iir_Kind_If_Statement: -- Get/Set_Label (Field3) -- + -- Must be an Iir_kind_elsif node, or NULL for no more elsif clauses. + -- Get/Set_Else_Clause (Field4) + -- -- Only for Iir_Kind_If_Statement: -- Get/Set_Identifier (Alias Field3) -- -- Get/Set_Sequential_Statement_Chain (Field5) -- - -- Must be an Iir_kind_elsif node, or NULL for no more elsif clauses. - -- Get/Set_Else_Clause (Field6) - -- -- Only for Iir_Kind_If_Statement: -- Get/Set_Visible_Flag (Flag4) -- @@ -2699,7 +2699,7 @@ package Iirs is -- -- Get/Set_Visible_Flag (Flag4) - -- Iir_Kind_Signal_Assignment_Statement (Medium) + -- Iir_Kind_Signal_Assignment_Statement (Short) -- -- Get/Set_Parent (Field0) -- @@ -2710,20 +2710,20 @@ package Iirs is -- Get/Set_Label (Field3) -- Get/Set_Identifier (Alias Field3) -- + -- Get/Set_Reject_Time_Expression (Field4) + -- -- The waveform. -- If the waveform_chain is null_iir, then the signal assignment is a -- disconnection statement, ie TARGET <= null_iir after disconection_time, -- where disconnection_time is specified by a disconnection specification. -- Get/Set_Waveform_Chain (Field5) -- - -- Get/Set_Reject_Time_Expression (Field6) - -- -- Get/Set_Delay_Mechanism (Flag1) -- -- Get/Set_Visible_Flag (Flag4) -- -- True if the target of the assignment is guarded - -- Get/Set_Guarded_Target_State (State3) + -- Get/Set_Guarded_Target_State (State1) -- Iir_Kind_Variable_Assignment_Statement (Short) -- @@ -2740,7 +2740,7 @@ package Iirs is -- -- Get/Set_Visible_Flag (Flag4) - -- Iir_Kind_Assertion_Statement (Medium) + -- Iir_Kind_Assertion_Statement (Short) -- -- Get/Set_Parent (Field0) -- @@ -2751,13 +2751,13 @@ package Iirs is -- Get/Set_Label (Field3) -- Get/Set_Identifier (Alias Field3) -- - -- Get/Set_Severity_Expression (Field5) + -- Get/Set_Severity_Expression (Field4) -- - -- Get/Set_Report_Expression (Field6) + -- Get/Set_Report_Expression (Field5) -- -- Get/Set_Visible_Flag (Flag4) - -- Iir_Kind_Report_Statement (Medium) + -- Iir_Kind_Report_Statement (Short) -- -- Get/Set_Parent (Field0) -- @@ -2766,9 +2766,9 @@ package Iirs is -- Get/Set_Label (Field3) -- Get/Set_Identifier (Alias Field3) -- - -- Get/Set_Severity_Expression (Field5) + -- Get/Set_Severity_Expression (Field4) -- - -- Get/Set_Report_Expression (Field6) + -- Get/Set_Report_Expression (Field5) -- -- Get/Set_Visible_Flag (Flag4) @@ -5000,7 +5000,7 @@ package Iirs is -- target). -- If UNKNOWN, this is not determined at compile time but at run-time. -- This is the case for formal signal interfaces of subprograms. - -- Field: State3 (pos) + -- Field: State1 (pos) function Get_Guarded_Target_State (Stmt : Iir) return Tri_State_Type; procedure Set_Guarded_Target_State (Stmt : Iir; State : Tri_State_Type); @@ -5413,7 +5413,7 @@ package Iirs is -- Note that this node can be shared between declarations if they are -- separated by comma, such as in: -- variable a, b : integer := 5; - -- Field: Field6 Maybe_Ref + -- Field: Field4 Maybe_Ref function Get_Default_Value (Target : Iir) return Iir; procedure Set_Default_Value (Target : Iir; Value : Iir); @@ -5421,7 +5421,7 @@ package Iirs is -- declaration for a full constant declaration, or is null_iir for a -- usual or deferred constant declaration. -- Set only during sem. - -- Field: Field7 + -- Field: Field6 function Get_Deferred_Declaration (Target : Iir) return Iir; procedure Set_Deferred_Declaration (Target : Iir; Decl : Iir); @@ -5686,7 +5686,7 @@ package Iirs is function Get_Delay_Mechanism (Target : Iir) return Iir_Delay_Mechanism; procedure Set_Delay_Mechanism (Target : Iir; Kind : Iir_Delay_Mechanism); - -- Field: Field6 + -- Field: Field4 function Get_Reject_Time_Expression (Target : Iir) return Iir; procedure Set_Reject_Time_Expression (Target : Iir; Expr : Iir); @@ -5818,12 +5818,12 @@ package Iirs is procedure Set_Assertion_Condition (Target : Iir; Cond : Iir); -- Report expression of an assertion or report statement. - -- Field: Field6 + -- Field: Field5 function Get_Report_Expression (Target : Iir) return Iir; procedure Set_Report_Expression (Target : Iir; Expr : Iir); -- Severity expression of an assertion or report statement. - -- Field: Field5 + -- Field: Field4 function Get_Severity_Expression (Target : Iir) return Iir; procedure Set_Severity_Expression (Target : Iir; Expr : Iir); @@ -5937,7 +5937,7 @@ package Iirs is function Get_Condition (Target : Iir) return Iir; procedure Set_Condition (Target : Iir; Condition : Iir); - -- Field: Field6 + -- Field: Field4 function Get_Else_Clause (Target : Iir) return Iir; procedure Set_Else_Clause (Target : Iir; Clause : Iir); diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb index be5dbdc..7e3aba3 100644 --- a/src/vhdl/nodes_meta.adb +++ b/src/vhdl/nodes_meta.adb @@ -2485,6 +2485,7 @@ package body Nodes_Meta is Field_End_Has_Reserved_Id, Field_End_Has_Identifier, Field_Declaration_Chain, + Field_Attribute_Value_Chain, Field_Parent, Field_Package, -- Iir_Kind_Configuration_Declaration @@ -2532,7 +2533,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_Physical_Literal, Field_Physical_Unit_Value, Field_Parent, @@ -2552,7 +2552,6 @@ package body Nodes_Meta is Field_End_Has_Reserved_Id, Field_End_Has_Identifier, Field_Chain, - Field_Attribute_Value_Chain, Field_Generic_Chain, Field_Port_Chain, Field_Parent, @@ -2577,7 +2576,6 @@ package body Nodes_Meta is Field_Use_Flag, Field_Group_Constituent_List, Field_Chain, - Field_Attribute_Value_Chain, Field_Group_Template_Name, Field_Parent, -- Iir_Kind_Element_Declaration @@ -2620,7 +2618,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_Default_Value, Field_Parent, Field_Type, @@ -2631,7 +2628,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_Tolerance, Field_Plus_Terminal, Field_Minus_Terminal, @@ -2645,7 +2641,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_Tolerance, Field_Plus_Terminal, Field_Minus_Terminal, @@ -2662,7 +2657,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Literal_Origin, - Field_Attribute_Value_Chain, Field_Parent, Field_Type, Field_Enumeration_Decl, @@ -2683,7 +2677,6 @@ package body Nodes_Meta is Field_Wait_State, Field_All_Sensitized_State, Field_Chain, - Field_Attribute_Value_Chain, Field_Interface_Declaration_Chain, Field_Generic_Chain, Field_Return_Type_Mark, @@ -2702,7 +2695,6 @@ package body Nodes_Meta is Field_Use_Flag, Field_Wait_State, Field_Chain, - Field_Attribute_Value_Chain, Field_Interface_Declaration_Chain, Field_Generic_Chain, Field_Generic_Map_Aspect_Chain, @@ -2720,7 +2712,6 @@ package body Nodes_Meta is Field_Use_Flag, Field_Wait_State, Field_Chain, - Field_Attribute_Value_Chain, Field_Interface_Declaration_Chain, Field_Generic_Chain, Field_Generic_Map_Aspect_Chain, @@ -2742,7 +2733,6 @@ package body Nodes_Meta is Field_Purity_State, Field_All_Sensitized_State, Field_Chain, - Field_Attribute_Value_Chain, Field_Interface_Declaration_Chain, Field_Generic_Chain, Field_Return_Type_Mark, @@ -2754,6 +2744,7 @@ package body Nodes_Meta is Field_End_Has_Identifier, Field_Declaration_Chain, Field_Chain, + Field_Attribute_Value_Chain, Field_Sequential_Statement_Chain, Field_Parent, Field_Subprogram_Specification, @@ -2764,6 +2755,7 @@ package body Nodes_Meta is Field_End_Has_Identifier, Field_Declaration_Chain, Field_Chain, + Field_Attribute_Value_Chain, Field_Sequential_Statement_Chain, Field_Parent, Field_Subprogram_Specification, @@ -2792,7 +2784,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_File_Logical_Name, Field_File_Open_Kind, Field_Subtype_Indication, @@ -2807,7 +2798,6 @@ package body Nodes_Meta is Field_Name_Staticness, Field_Signal_Kind, Field_Guard_Expression, - Field_Attribute_Value_Chain, Field_Guard_Sensitivity_List, Field_Block_Statement, Field_Parent, @@ -2825,10 +2815,9 @@ package body Nodes_Meta is Field_Name_Staticness, Field_Signal_Kind, Field_Chain, - Field_Attribute_Value_Chain, Field_Signal_Driver, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Variable_Declaration @@ -2841,9 +2830,8 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Constant_Declaration @@ -2856,10 +2844,9 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_Deferred_Declaration, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Iterator_Declaration @@ -2871,7 +2858,6 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, Field_Discrete_Range, Field_Subtype_Indication, Field_Parent, @@ -2887,9 +2873,8 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Interface_Variable_Declaration @@ -2903,9 +2888,8 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Interface_Signal_Declaration @@ -2923,9 +2907,8 @@ package body Nodes_Meta is Field_Name_Staticness, Field_Signal_Kind, Field_Chain, - Field_Attribute_Value_Chain, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Interface_File_Declaration @@ -2939,9 +2922,8 @@ package body Nodes_Meta is Field_Expr_Staticness, Field_Name_Staticness, Field_Chain, - Field_Attribute_Value_Chain, - Field_Subtype_Indication, Field_Default_Value, + Field_Subtype_Indication, Field_Parent, Field_Type, -- Iir_Kind_Interface_Package_Declaration @@ -3326,7 +3308,6 @@ package body Nodes_Meta is Field_Guarded_Target_State, Field_Target, Field_Chain, - Field_Attribute_Value_Chain, Field_Reject_Time_Expression, Field_Conditional_Waveform_Chain, Field_Guard, @@ -3339,9 +3320,8 @@ package body Nodes_Meta is Field_Guarded_Target_State, Field_Target, Field_Chain, - Field_Attribute_Value_Chain, - Field_Expression, Field_Reject_Time_Expression, + Field_Expression, Field_Selected_Waveform_Chain, Field_Guard, Field_Parent, @@ -3351,7 +3331,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Assertion_Condition, Field_Chain, - Field_Attribute_Value_Chain, Field_Severity_Expression, Field_Report_Expression, Field_Parent, @@ -3367,7 +3346,6 @@ package body Nodes_Meta is Field_PSL_NFA, Field_Visible_Flag, Field_Chain, - Field_Attribute_Value_Chain, Field_Severity_Expression, Field_Report_Expression, Field_Parent, @@ -3378,7 +3356,6 @@ package body Nodes_Meta is Field_PSL_NFA, Field_Visible_Flag, Field_Chain, - Field_Attribute_Value_Chain, Field_Severity_Expression, Field_Report_Expression, Field_Parent, @@ -3388,7 +3365,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Procedure_Call, Field_Chain, - Field_Attribute_Value_Chain, Field_Parent, -- Iir_Kind_Block_Statement Field_Label, @@ -3422,7 +3398,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Instantiated_Unit, Field_Chain, - Field_Attribute_Value_Chain, Field_Default_Binding_Indication, Field_Component_Configuration, Field_Configuration_Specification, @@ -3433,7 +3408,6 @@ package body Nodes_Meta is Field_Label, Field_Visible_Flag, Field_Chain, - Field_Attribute_Value_Chain, Field_Simultaneous_Left, Field_Simultaneous_Right, Field_Tolerance, @@ -3445,22 +3419,19 @@ package body Nodes_Meta is Field_Guarded_Target_State, Field_Target, Field_Chain, - Field_Attribute_Value_Chain, - Field_Waveform_Chain, Field_Reject_Time_Expression, + Field_Waveform_Chain, Field_Parent, -- Iir_Kind_Null_Statement Field_Label, Field_Visible_Flag, Field_Chain, - Field_Attribute_Value_Chain, Field_Parent, -- Iir_Kind_Assertion_Statement Field_Label, Field_Visible_Flag, Field_Assertion_Condition, Field_Chain, - Field_Attribute_Value_Chain, Field_Severity_Expression, Field_Report_Expression, Field_Parent, @@ -3468,7 +3439,6 @@ package body Nodes_Meta is Field_Label, Field_Visible_Flag, Field_Chain, - Field_Attribute_Value_Chain, Field_Severity_Expression, Field_Report_Expression, Field_Parent, @@ -3477,7 +3447,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Timeout_Clause, Field_Chain, - Field_Attribute_Value_Chain, Field_Condition_Clause, Field_Sensitivity_List, Field_Parent, @@ -3486,14 +3455,12 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Target, Field_Chain, - Field_Attribute_Value_Chain, Field_Expression, Field_Parent, -- Iir_Kind_Return_Statement Field_Label, Field_Visible_Flag, Field_Chain, - Field_Attribute_Value_Chain, Field_Expression, Field_Parent, Field_Type, @@ -3504,7 +3471,6 @@ package body Nodes_Meta is Field_End_Has_Identifier, Field_Parameter_Specification, Field_Chain, - Field_Attribute_Value_Chain, Field_Sequential_Statement_Chain, Field_Parent, -- Iir_Kind_While_Loop_Statement @@ -3513,7 +3479,6 @@ package body Nodes_Meta is Field_End_Has_Identifier, Field_Condition, Field_Chain, - Field_Attribute_Value_Chain, Field_Sequential_Statement_Chain, Field_Parent, -- Iir_Kind_Next_Statement @@ -3521,7 +3486,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Condition, Field_Chain, - Field_Attribute_Value_Chain, Field_Loop_Label, Field_Parent, -- Iir_Kind_Exit_Statement @@ -3529,7 +3493,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Condition, Field_Chain, - Field_Attribute_Value_Chain, Field_Loop_Label, Field_Parent, -- Iir_Kind_Case_Statement @@ -3538,7 +3501,6 @@ package body Nodes_Meta is Field_End_Has_Identifier, Field_Case_Statement_Alternative_Chain, Field_Chain, - Field_Attribute_Value_Chain, Field_Expression, Field_Parent, -- Iir_Kind_Procedure_Call_Statement @@ -3546,7 +3508,6 @@ package body Nodes_Meta is Field_Visible_Flag, Field_Procedure_Call, Field_Chain, - Field_Attribute_Value_Chain, Field_Parent, -- Iir_Kind_If_Statement Field_Label, @@ -3554,15 +3515,14 @@ package body Nodes_Meta is Field_End_Has_Identifier, Field_Condition, Field_Chain, - Field_Attribute_Value_Chain, - Field_Sequential_Statement_Chain, Field_Else_Clause, + Field_Sequential_Statement_Chain, Field_Parent, -- Iir_Kind_Elsif Field_End_Has_Identifier, Field_Condition, - Field_Sequential_Statement_Chain, Field_Else_Clause, + Field_Sequential_Statement_Chain, Field_Parent, -- Iir_Kind_Character_Literal Field_Identifier, @@ -3932,179 +3892,179 @@ package body Nodes_Meta is Iir_Kind_Subtype_Definition => 392, Iir_Kind_Scalar_Nature_Definition => 396, Iir_Kind_Overload_List => 397, - Iir_Kind_Type_Declaration => 404, - Iir_Kind_Anonymous_Type_Declaration => 409, - Iir_Kind_Subtype_Declaration => 418, - Iir_Kind_Nature_Declaration => 425, - Iir_Kind_Subnature_Declaration => 432, - Iir_Kind_Package_Declaration => 442, - Iir_Kind_Package_Instantiation_Declaration => 453, - Iir_Kind_Package_Body => 459, - Iir_Kind_Configuration_Declaration => 468, - Iir_Kind_Entity_Declaration => 480, - Iir_Kind_Architecture_Body => 492, - Iir_Kind_Package_Header => 494, - Iir_Kind_Unit_Declaration => 504, - Iir_Kind_Library_Declaration => 510, - Iir_Kind_Component_Declaration => 521, - Iir_Kind_Attribute_Declaration => 528, - Iir_Kind_Group_Template_Declaration => 534, - Iir_Kind_Group_Declaration => 542, - Iir_Kind_Element_Declaration => 549, - Iir_Kind_Non_Object_Alias_Declaration => 557, - Iir_Kind_Psl_Declaration => 565, - Iir_Kind_Terminal_Declaration => 571, - Iir_Kind_Free_Quantity_Declaration => 581, - Iir_Kind_Across_Quantity_Declaration => 594, - Iir_Kind_Through_Quantity_Declaration => 607, - Iir_Kind_Enumeration_Literal => 620, - Iir_Kind_Function_Declaration => 643, - Iir_Kind_Implicit_Function_Declaration => 661, - Iir_Kind_Implicit_Procedure_Declaration => 677, - Iir_Kind_Procedure_Declaration => 698, - Iir_Kind_Function_Body => 707, - Iir_Kind_Procedure_Body => 716, - Iir_Kind_Object_Alias_Declaration => 728, - Iir_Kind_File_Declaration => 744, - Iir_Kind_Guard_Signal_Declaration => 757, - Iir_Kind_Signal_Declaration => 775, - Iir_Kind_Variable_Declaration => 789, - Iir_Kind_Constant_Declaration => 804, - Iir_Kind_Iterator_Declaration => 817, - Iir_Kind_Interface_Constant_Declaration => 832, - Iir_Kind_Interface_Variable_Declaration => 847, - Iir_Kind_Interface_Signal_Declaration => 866, - Iir_Kind_Interface_File_Declaration => 881, - Iir_Kind_Interface_Package_Declaration => 890, - Iir_Kind_Identity_Operator => 894, - Iir_Kind_Negation_Operator => 898, - Iir_Kind_Absolute_Operator => 902, - Iir_Kind_Not_Operator => 906, - Iir_Kind_Condition_Operator => 910, - Iir_Kind_Reduction_And_Operator => 914, - Iir_Kind_Reduction_Or_Operator => 918, - Iir_Kind_Reduction_Nand_Operator => 922, - Iir_Kind_Reduction_Nor_Operator => 926, - Iir_Kind_Reduction_Xor_Operator => 930, - Iir_Kind_Reduction_Xnor_Operator => 934, - Iir_Kind_And_Operator => 939, - Iir_Kind_Or_Operator => 944, - Iir_Kind_Nand_Operator => 949, - Iir_Kind_Nor_Operator => 954, - Iir_Kind_Xor_Operator => 959, - Iir_Kind_Xnor_Operator => 964, - Iir_Kind_Equality_Operator => 969, - Iir_Kind_Inequality_Operator => 974, - Iir_Kind_Less_Than_Operator => 979, - Iir_Kind_Less_Than_Or_Equal_Operator => 984, - Iir_Kind_Greater_Than_Operator => 989, - Iir_Kind_Greater_Than_Or_Equal_Operator => 994, - Iir_Kind_Match_Equality_Operator => 999, - Iir_Kind_Match_Inequality_Operator => 1004, - Iir_Kind_Match_Less_Than_Operator => 1009, - Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1014, - Iir_Kind_Match_Greater_Than_Operator => 1019, - Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1024, - Iir_Kind_Sll_Operator => 1029, - Iir_Kind_Sla_Operator => 1034, - Iir_Kind_Srl_Operator => 1039, - Iir_Kind_Sra_Operator => 1044, - Iir_Kind_Rol_Operator => 1049, - Iir_Kind_Ror_Operator => 1054, - Iir_Kind_Addition_Operator => 1059, - Iir_Kind_Substraction_Operator => 1064, - Iir_Kind_Concatenation_Operator => 1069, - Iir_Kind_Multiplication_Operator => 1074, - Iir_Kind_Division_Operator => 1079, - Iir_Kind_Modulus_Operator => 1084, - Iir_Kind_Remainder_Operator => 1089, - Iir_Kind_Exponentiation_Operator => 1094, - Iir_Kind_Function_Call => 1102, - Iir_Kind_Aggregate => 1108, - Iir_Kind_Parenthesis_Expression => 1111, - Iir_Kind_Qualified_Expression => 1115, - Iir_Kind_Type_Conversion => 1120, - Iir_Kind_Allocator_By_Expression => 1124, - Iir_Kind_Allocator_By_Subtype => 1128, - Iir_Kind_Selected_Element => 1134, - Iir_Kind_Dereference => 1139, - Iir_Kind_Implicit_Dereference => 1144, - Iir_Kind_Slice_Name => 1151, - Iir_Kind_Indexed_Name => 1157, - Iir_Kind_Psl_Expression => 1159, - Iir_Kind_Sensitized_Process_Statement => 1178, - Iir_Kind_Process_Statement => 1196, - Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1208, - Iir_Kind_Concurrent_Selected_Signal_Assignment => 1221, - Iir_Kind_Concurrent_Assertion_Statement => 1230, - Iir_Kind_Psl_Default_Clock => 1234, - Iir_Kind_Psl_Assert_Statement => 1244, - Iir_Kind_Psl_Cover_Statement => 1254, - Iir_Kind_Concurrent_Procedure_Call_Statement => 1261, - Iir_Kind_Block_Statement => 1274, - Iir_Kind_Generate_Statement => 1286, - Iir_Kind_Component_Instantiation_Statement => 1297, - Iir_Kind_Simple_Simultaneous_Statement => 1305, - Iir_Kind_Signal_Assignment_Statement => 1315, - Iir_Kind_Null_Statement => 1320, - Iir_Kind_Assertion_Statement => 1328, - Iir_Kind_Report_Statement => 1335, - Iir_Kind_Wait_Statement => 1343, - Iir_Kind_Variable_Assignment_Statement => 1350, - Iir_Kind_Return_Statement => 1357, - Iir_Kind_For_Loop_Statement => 1366, - Iir_Kind_While_Loop_Statement => 1374, - Iir_Kind_Next_Statement => 1381, - Iir_Kind_Exit_Statement => 1388, - Iir_Kind_Case_Statement => 1396, - Iir_Kind_Procedure_Call_Statement => 1402, - Iir_Kind_If_Statement => 1411, - Iir_Kind_Elsif => 1416, - Iir_Kind_Character_Literal => 1423, - Iir_Kind_Simple_Name => 1430, - Iir_Kind_Selected_Name => 1438, - Iir_Kind_Operator_Symbol => 1443, - Iir_Kind_Selected_By_All_Name => 1448, - Iir_Kind_Parenthesis_Name => 1452, - Iir_Kind_Base_Attribute => 1454, - Iir_Kind_Left_Type_Attribute => 1459, - Iir_Kind_Right_Type_Attribute => 1464, - Iir_Kind_High_Type_Attribute => 1469, - Iir_Kind_Low_Type_Attribute => 1474, - Iir_Kind_Ascending_Type_Attribute => 1479, - Iir_Kind_Image_Attribute => 1485, - Iir_Kind_Value_Attribute => 1491, - Iir_Kind_Pos_Attribute => 1497, - Iir_Kind_Val_Attribute => 1503, - Iir_Kind_Succ_Attribute => 1509, - Iir_Kind_Pred_Attribute => 1515, - Iir_Kind_Leftof_Attribute => 1521, - Iir_Kind_Rightof_Attribute => 1527, - Iir_Kind_Delayed_Attribute => 1535, - Iir_Kind_Stable_Attribute => 1543, - Iir_Kind_Quiet_Attribute => 1551, - Iir_Kind_Transaction_Attribute => 1559, - Iir_Kind_Event_Attribute => 1563, - Iir_Kind_Active_Attribute => 1567, - Iir_Kind_Last_Event_Attribute => 1571, - Iir_Kind_Last_Active_Attribute => 1575, - Iir_Kind_Last_Value_Attribute => 1579, - Iir_Kind_Driving_Attribute => 1583, - Iir_Kind_Driving_Value_Attribute => 1587, - Iir_Kind_Behavior_Attribute => 1587, - Iir_Kind_Structure_Attribute => 1587, - Iir_Kind_Simple_Name_Attribute => 1594, - Iir_Kind_Instance_Name_Attribute => 1599, - Iir_Kind_Path_Name_Attribute => 1604, - Iir_Kind_Left_Array_Attribute => 1611, - Iir_Kind_Right_Array_Attribute => 1618, - Iir_Kind_High_Array_Attribute => 1625, - Iir_Kind_Low_Array_Attribute => 1632, - Iir_Kind_Length_Array_Attribute => 1639, - Iir_Kind_Ascending_Array_Attribute => 1646, - Iir_Kind_Range_Array_Attribute => 1653, - Iir_Kind_Reverse_Range_Array_Attribute => 1660, - Iir_Kind_Attribute_Name => 1668 + Iir_Kind_Type_Declaration => 403, + Iir_Kind_Anonymous_Type_Declaration => 408, + Iir_Kind_Subtype_Declaration => 416, + Iir_Kind_Nature_Declaration => 422, + Iir_Kind_Subnature_Declaration => 428, + Iir_Kind_Package_Declaration => 438, + Iir_Kind_Package_Instantiation_Declaration => 449, + Iir_Kind_Package_Body => 456, + Iir_Kind_Configuration_Declaration => 465, + Iir_Kind_Entity_Declaration => 477, + Iir_Kind_Architecture_Body => 489, + Iir_Kind_Package_Header => 491, + Iir_Kind_Unit_Declaration => 500, + Iir_Kind_Library_Declaration => 506, + Iir_Kind_Component_Declaration => 516, + Iir_Kind_Attribute_Declaration => 523, + Iir_Kind_Group_Template_Declaration => 529, + Iir_Kind_Group_Declaration => 536, + Iir_Kind_Element_Declaration => 543, + Iir_Kind_Non_Object_Alias_Declaration => 551, + Iir_Kind_Psl_Declaration => 559, + Iir_Kind_Terminal_Declaration => 565, + Iir_Kind_Free_Quantity_Declaration => 574, + Iir_Kind_Across_Quantity_Declaration => 586, + Iir_Kind_Through_Quantity_Declaration => 598, + Iir_Kind_Enumeration_Literal => 610, + Iir_Kind_Function_Declaration => 632, + Iir_Kind_Implicit_Function_Declaration => 649, + Iir_Kind_Implicit_Procedure_Declaration => 664, + Iir_Kind_Procedure_Declaration => 684, + Iir_Kind_Function_Body => 694, + Iir_Kind_Procedure_Body => 704, + Iir_Kind_Object_Alias_Declaration => 716, + Iir_Kind_File_Declaration => 731, + Iir_Kind_Guard_Signal_Declaration => 743, + Iir_Kind_Signal_Declaration => 760, + Iir_Kind_Variable_Declaration => 773, + Iir_Kind_Constant_Declaration => 787, + Iir_Kind_Iterator_Declaration => 799, + Iir_Kind_Interface_Constant_Declaration => 813, + Iir_Kind_Interface_Variable_Declaration => 827, + Iir_Kind_Interface_Signal_Declaration => 845, + Iir_Kind_Interface_File_Declaration => 859, + Iir_Kind_Interface_Package_Declaration => 868, + Iir_Kind_Identity_Operator => 872, + Iir_Kind_Negation_Operator => 876, + Iir_Kind_Absolute_Operator => 880, + Iir_Kind_Not_Operator => 884, + Iir_Kind_Condition_Operator => 888, + Iir_Kind_Reduction_And_Operator => 892, + Iir_Kind_Reduction_Or_Operator => 896, + Iir_Kind_Reduction_Nand_Operator => 900, + Iir_Kind_Reduction_Nor_Operator => 904, + Iir_Kind_Reduction_Xor_Operator => 908, + Iir_Kind_Reduction_Xnor_Operator => 912, + Iir_Kind_And_Operator => 917, + Iir_Kind_Or_Operator => 922, + Iir_Kind_Nand_Operator => 927, + Iir_Kind_Nor_Operator => 932, + Iir_Kind_Xor_Operator => 937, + Iir_Kind_Xnor_Operator => 942, + Iir_Kind_Equality_Operator => 947, + Iir_Kind_Inequality_Operator => 952, + Iir_Kind_Less_Than_Operator => 957, + Iir_Kind_Less_Than_Or_Equal_Operator => 962, + Iir_Kind_Greater_Than_Operator => 967, + Iir_Kind_Greater_Than_Or_Equal_Operator => 972, + Iir_Kind_Match_Equality_Operator => 977, + Iir_Kind_Match_Inequality_Operator => 982, + Iir_Kind_Match_Less_Than_Operator => 987, + Iir_Kind_Match_Less_Than_Or_Equal_Operator => 992, + Iir_Kind_Match_Greater_Than_Operator => 997, + Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1002, + Iir_Kind_Sll_Operator => 1007, + Iir_Kind_Sla_Operator => 1012, + Iir_Kind_Srl_Operator => 1017, + Iir_Kind_Sra_Operator => 1022, + Iir_Kind_Rol_Operator => 1027, + Iir_Kind_Ror_Operator => 1032, + Iir_Kind_Addition_Operator => 1037, + Iir_Kind_Substraction_Operator => 1042, + Iir_Kind_Concatenation_Operator => 1047, + Iir_Kind_Multiplication_Operator => 1052, + Iir_Kind_Division_Operator => 1057, + Iir_Kind_Modulus_Operator => 1062, + Iir_Kind_Remainder_Operator => 1067, + Iir_Kind_Exponentiation_Operator => 1072, + Iir_Kind_Function_Call => 1080, + Iir_Kind_Aggregate => 1086, + Iir_Kind_Parenthesis_Expression => 1089, + Iir_Kind_Qualified_Expression => 1093, + Iir_Kind_Type_Conversion => 1098, + Iir_Kind_Allocator_By_Expression => 1102, + Iir_Kind_Allocator_By_Subtype => 1106, + Iir_Kind_Selected_Element => 1112, + Iir_Kind_Dereference => 1117, + Iir_Kind_Implicit_Dereference => 1122, + Iir_Kind_Slice_Name => 1129, + Iir_Kind_Indexed_Name => 1135, + Iir_Kind_Psl_Expression => 1137, + Iir_Kind_Sensitized_Process_Statement => 1156, + Iir_Kind_Process_Statement => 1174, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1185, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1197, + Iir_Kind_Concurrent_Assertion_Statement => 1205, + Iir_Kind_Psl_Default_Clock => 1209, + Iir_Kind_Psl_Assert_Statement => 1218, + Iir_Kind_Psl_Cover_Statement => 1227, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1233, + Iir_Kind_Block_Statement => 1246, + Iir_Kind_Generate_Statement => 1258, + Iir_Kind_Component_Instantiation_Statement => 1268, + Iir_Kind_Simple_Simultaneous_Statement => 1275, + Iir_Kind_Signal_Assignment_Statement => 1284, + Iir_Kind_Null_Statement => 1288, + Iir_Kind_Assertion_Statement => 1295, + Iir_Kind_Report_Statement => 1301, + Iir_Kind_Wait_Statement => 1308, + Iir_Kind_Variable_Assignment_Statement => 1314, + Iir_Kind_Return_Statement => 1320, + Iir_Kind_For_Loop_Statement => 1328, + Iir_Kind_While_Loop_Statement => 1335, + Iir_Kind_Next_Statement => 1341, + Iir_Kind_Exit_Statement => 1347, + Iir_Kind_Case_Statement => 1354, + Iir_Kind_Procedure_Call_Statement => 1359, + Iir_Kind_If_Statement => 1367, + Iir_Kind_Elsif => 1372, + Iir_Kind_Character_Literal => 1379, + Iir_Kind_Simple_Name => 1386, + Iir_Kind_Selected_Name => 1394, + Iir_Kind_Operator_Symbol => 1399, + Iir_Kind_Selected_By_All_Name => 1404, + Iir_Kind_Parenthesis_Name => 1408, + Iir_Kind_Base_Attribute => 1410, + Iir_Kind_Left_Type_Attribute => 1415, + Iir_Kind_Right_Type_Attribute => 1420, + Iir_Kind_High_Type_Attribute => 1425, + Iir_Kind_Low_Type_Attribute => 1430, + Iir_Kind_Ascending_Type_Attribute => 1435, + Iir_Kind_Image_Attribute => 1441, + Iir_Kind_Value_Attribute => 1447, + Iir_Kind_Pos_Attribute => 1453, + Iir_Kind_Val_Attribute => 1459, + Iir_Kind_Succ_Attribute => 1465, + Iir_Kind_Pred_Attribute => 1471, + Iir_Kind_Leftof_Attribute => 1477, + Iir_Kind_Rightof_Attribute => 1483, + Iir_Kind_Delayed_Attribute => 1491, + Iir_Kind_Stable_Attribute => 1499, + Iir_Kind_Quiet_Attribute => 1507, + Iir_Kind_Transaction_Attribute => 1515, + Iir_Kind_Event_Attribute => 1519, + Iir_Kind_Active_Attribute => 1523, + Iir_Kind_Last_Event_Attribute => 1527, + Iir_Kind_Last_Active_Attribute => 1531, + Iir_Kind_Last_Value_Attribute => 1535, + Iir_Kind_Driving_Attribute => 1539, + Iir_Kind_Driving_Value_Attribute => 1543, + Iir_Kind_Behavior_Attribute => 1543, + Iir_Kind_Structure_Attribute => 1543, + Iir_Kind_Simple_Name_Attribute => 1550, + Iir_Kind_Instance_Name_Attribute => 1555, + Iir_Kind_Path_Name_Attribute => 1560, + Iir_Kind_Left_Array_Attribute => 1567, + Iir_Kind_Right_Array_Attribute => 1574, + Iir_Kind_High_Array_Attribute => 1581, + Iir_Kind_Low_Array_Attribute => 1588, + Iir_Kind_Length_Array_Attribute => 1595, + Iir_Kind_Ascending_Array_Attribute => 1602, + Iir_Kind_Range_Array_Attribute => 1609, + Iir_Kind_Reverse_Range_Array_Attribute => 1616, + Iir_Kind_Attribute_Name => 1624 ); function Get_Fields (K : Iir_Kind) return Fields_Array @@ -6308,63 +6268,19 @@ package body Nodes_Meta is function Has_Attribute_Value_Chain (K : Iir_Kind) return Boolean is begin case K is - when Iir_Kind_Type_Declaration - | Iir_Kind_Subtype_Declaration - | Iir_Kind_Nature_Declaration - | Iir_Kind_Subnature_Declaration - | Iir_Kind_Package_Declaration + when Iir_Kind_Package_Declaration | Iir_Kind_Package_Instantiation_Declaration + | Iir_Kind_Package_Body | Iir_Kind_Configuration_Declaration | Iir_Kind_Entity_Declaration | Iir_Kind_Architecture_Body - | Iir_Kind_Unit_Declaration - | Iir_Kind_Component_Declaration - | Iir_Kind_Group_Declaration - | Iir_Kind_Free_Quantity_Declaration - | Iir_Kind_Across_Quantity_Declaration - | Iir_Kind_Through_Quantity_Declaration - | Iir_Kind_Enumeration_Literal - | Iir_Kind_Function_Declaration - | Iir_Kind_Implicit_Function_Declaration - | Iir_Kind_Implicit_Procedure_Declaration - | Iir_Kind_Procedure_Declaration - | Iir_Kind_File_Declaration - | Iir_Kind_Guard_Signal_Declaration - | Iir_Kind_Signal_Declaration - | Iir_Kind_Variable_Declaration - | Iir_Kind_Constant_Declaration - | Iir_Kind_Iterator_Declaration - | Iir_Kind_Interface_Constant_Declaration - | Iir_Kind_Interface_Variable_Declaration - | Iir_Kind_Interface_Signal_Declaration - | Iir_Kind_Interface_File_Declaration + | Iir_Kind_Function_Body + | Iir_Kind_Procedure_Body | Iir_Kind_Interface_Package_Declaration | Iir_Kind_Sensitized_Process_Statement | Iir_Kind_Process_Statement - | Iir_Kind_Concurrent_Conditional_Signal_Assignment - | Iir_Kind_Concurrent_Selected_Signal_Assignment - | Iir_Kind_Concurrent_Assertion_Statement - | Iir_Kind_Psl_Assert_Statement - | Iir_Kind_Psl_Cover_Statement - | Iir_Kind_Concurrent_Procedure_Call_Statement | Iir_Kind_Block_Statement - | Iir_Kind_Generate_Statement - | Iir_Kind_Component_Instantiation_Statement - | Iir_Kind_Simple_Simultaneous_Statement - | Iir_Kind_Signal_Assignment_Statement - | Iir_Kind_Null_Statement - | Iir_Kind_Assertion_Statement - | Iir_Kind_Report_Statement - | Iir_Kind_Wait_Statement - | Iir_Kind_Variable_Assignment_Statement - | Iir_Kind_Return_Statement - | Iir_Kind_For_Loop_Statement - | Iir_Kind_While_Loop_Statement - | Iir_Kind_Next_Statement - | Iir_Kind_Exit_Statement - | Iir_Kind_Case_Statement - | Iir_Kind_Procedure_Call_Statement - | Iir_Kind_If_Statement => + | Iir_Kind_Generate_Statement => return True; when others => return False; |