aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes_meta.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-12-26 18:05:51 +0100
committerTristan Gingold <tgingold@free.fr>2019-12-28 18:45:25 +0100
commita52af2f98e34648a2a9b056b11da518a60a6c6cd (patch)
tree32e150cfbe061e6f20d0c3d4cb57e23abb0f315e /src/vhdl/vhdl-nodes_meta.adb
parent8a5fe99b279b1ce1ea7fe4313a24d0f3a399149d (diff)
downloadghdl-a52af2f98e34648a2a9b056b11da518a60a6c6cd.tar.gz
ghdl-a52af2f98e34648a2a9b056b11da518a60a6c6cd.tar.bz2
ghdl-a52af2f98e34648a2a9b056b11da518a60a6c6cd.zip
vhdl: improve support of AMS-vhdl (array and record natures, source quantities)
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb1694
1 files changed, 1315 insertions, 379 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index b27ac9249..a602b5c69 100644
--- a/src/vhdl/vhdl-nodes_meta.adb
+++ b/src/vhdl/vhdl-nodes_meta.adb
@@ -65,6 +65,7 @@ package body Vhdl.Nodes_Meta is
Field_Attribute_Specification_Chain => Type_Iir,
Field_Attribute_Specification => Type_Iir,
Field_Signal_List => Type_Iir_Flist,
+ Field_Quantity_List => Type_Iir_Flist,
Field_Designated_Entity => Type_Iir,
Field_Formal => Type_Iir,
Field_Actual => Type_Iir,
@@ -116,7 +117,9 @@ package body Vhdl.Nodes_Meta is
Field_Subtype_Definition => Type_Iir,
Field_Incomplete_Type_Declaration => Type_Iir,
Field_Interface_Type_Subprograms => Type_Iir,
+ Field_Nature_Definition => Type_Iir,
Field_Nature => Type_Iir,
+ Field_Subnature_Indication => Type_Iir,
Field_Mode => Type_Iir_Mode,
Field_Guarded_Signal_Flag => Type_Boolean,
Field_Signal_Kind => Type_Iir_Signal_Kind,
@@ -124,6 +127,7 @@ package body Vhdl.Nodes_Meta is
Field_Interface_Declaration_Chain => Type_Iir,
Field_Subprogram_Specification => Type_Iir,
Field_Sequential_Statement_Chain => Type_Iir,
+ Field_Simultaneous_Statement_Chain => Type_Iir,
Field_Subprogram_Body => Type_Iir,
Field_Overload_Number => Type_Iir_Int32,
Field_Subprogram_Depth => Type_Iir_Int32,
@@ -164,22 +168,31 @@ package body Vhdl.Nodes_Meta is
Field_Left_Limit_Expr => Type_Iir,
Field_Right_Limit_Expr => Type_Iir,
Field_Base_Type => Type_Iir,
+ Field_Base_Nature => Type_Iir,
Field_Resolution_Indication => Type_Iir,
Field_Record_Element_Resolution_Chain => Type_Iir,
Field_Tolerance => Type_Iir,
+ Field_Plus_Terminal_Name => Type_Iir,
+ Field_Minus_Terminal_Name => Type_Iir,
Field_Plus_Terminal => Type_Iir,
Field_Minus_Terminal => Type_Iir,
+ Field_Magnitude_Expression => Type_Iir,
+ Field_Phase_Expression => Type_Iir,
+ Field_Power_Expression => Type_Iir,
Field_Simultaneous_Left => Type_Iir,
Field_Simultaneous_Right => Type_Iir,
Field_Text_File_Flag => Type_Boolean,
Field_Only_Characters_Flag => Type_Boolean,
Field_Is_Character_Type => Type_Boolean,
+ Field_Nature_Staticness => Type_Iir_Staticness,
Field_Type_Staticness => Type_Iir_Staticness,
Field_Constraint_State => Type_Iir_Constraint,
Field_Index_Subtype_List => Type_Iir_Flist,
Field_Index_Subtype_Definition_List => Type_Iir_Flist,
Field_Element_Subtype_Indication => Type_Iir,
Field_Element_Subtype => Type_Iir,
+ Field_Element_Subnature_Indication => Type_Iir,
+ Field_Element_Subnature => Type_Iir,
Field_Index_Constraint_List => Type_Iir_Flist,
Field_Array_Element_Constraint => Type_Iir,
Field_Elements_Declaration_List => Type_Iir_Flist,
@@ -189,6 +202,10 @@ package body Vhdl.Nodes_Meta is
Field_Index_List => Type_Iir_Flist,
Field_Reference => Type_Iir,
Field_Nature_Declarator => Type_Iir,
+ Field_Across_Type_Mark => Type_Iir,
+ Field_Through_Type_Mark => Type_Iir,
+ Field_Across_Type_Definition => Type_Iir,
+ Field_Through_Type_Definition => Type_Iir,
Field_Across_Type => Type_Iir,
Field_Through_Type => Type_Iir,
Field_Target => Type_Iir,
@@ -200,6 +217,9 @@ package body Vhdl.Nodes_Meta is
Field_Process_Origin => Type_Iir,
Field_Package_Origin => Type_Iir,
Field_Condition_Clause => Type_Iir,
+ Field_Break_Element => Type_Iir,
+ Field_Selector_Quantity => Type_Iir,
+ Field_Break_Quantity => Type_Iir,
Field_Timeout_Clause => Type_Iir,
Field_Postponed_Flag => Type_Boolean,
Field_Callees_List => Type_Iir_List,
@@ -283,6 +303,7 @@ package body Vhdl.Nodes_Meta is
Field_Suffix => Type_Iir,
Field_Index_Subtype => Type_Iir,
Field_Parameter => Type_Iir,
+ Field_Parameter_2 => Type_Iir,
Field_Attr_Chain => Type_Iir,
Field_Signal_Attribute_Declaration => Type_Iir,
Field_Actual_Type => Type_Iir,
@@ -307,6 +328,7 @@ package body Vhdl.Nodes_Meta is
Field_Parameter_Association_Chain => Type_Iir,
Field_Method_Object => Type_Iir,
Field_Subtype_Type_Mark => Type_Iir,
+ Field_Subnature_Nature_Mark => Type_Iir,
Field_Type_Conversion_Subtype => Type_Iir,
Field_Type_Mark => Type_Iir,
Field_File_Type_Mark => Type_Iir,
@@ -454,6 +476,8 @@ package body Vhdl.Nodes_Meta is
return "attribute_specification";
when Field_Signal_List =>
return "signal_list";
+ when Field_Quantity_List =>
+ return "quantity_list";
when Field_Designated_Entity =>
return "designated_entity";
when Field_Formal =>
@@ -556,8 +580,12 @@ package body Vhdl.Nodes_Meta is
return "incomplete_type_declaration";
when Field_Interface_Type_Subprograms =>
return "interface_type_subprograms";
+ when Field_Nature_Definition =>
+ return "nature_definition";
when Field_Nature =>
return "nature";
+ when Field_Subnature_Indication =>
+ return "subnature_indication";
when Field_Mode =>
return "mode";
when Field_Guarded_Signal_Flag =>
@@ -572,6 +600,8 @@ package body Vhdl.Nodes_Meta is
return "subprogram_specification";
when Field_Sequential_Statement_Chain =>
return "sequential_statement_chain";
+ when Field_Simultaneous_Statement_Chain =>
+ return "simultaneous_statement_chain";
when Field_Subprogram_Body =>
return "subprogram_body";
when Field_Overload_Number =>
@@ -652,16 +682,28 @@ package body Vhdl.Nodes_Meta is
return "right_limit_expr";
when Field_Base_Type =>
return "base_type";
+ when Field_Base_Nature =>
+ return "base_nature";
when Field_Resolution_Indication =>
return "resolution_indication";
when Field_Record_Element_Resolution_Chain =>
return "record_element_resolution_chain";
when Field_Tolerance =>
return "tolerance";
+ when Field_Plus_Terminal_Name =>
+ return "plus_terminal_name";
+ when Field_Minus_Terminal_Name =>
+ return "minus_terminal_name";
when Field_Plus_Terminal =>
return "plus_terminal";
when Field_Minus_Terminal =>
return "minus_terminal";
+ when Field_Magnitude_Expression =>
+ return "magnitude_expression";
+ when Field_Phase_Expression =>
+ return "phase_expression";
+ when Field_Power_Expression =>
+ return "power_expression";
when Field_Simultaneous_Left =>
return "simultaneous_left";
when Field_Simultaneous_Right =>
@@ -672,6 +714,8 @@ package body Vhdl.Nodes_Meta is
return "only_characters_flag";
when Field_Is_Character_Type =>
return "is_character_type";
+ when Field_Nature_Staticness =>
+ return "nature_staticness";
when Field_Type_Staticness =>
return "type_staticness";
when Field_Constraint_State =>
@@ -684,6 +728,10 @@ package body Vhdl.Nodes_Meta is
return "element_subtype_indication";
when Field_Element_Subtype =>
return "element_subtype";
+ when Field_Element_Subnature_Indication =>
+ return "element_subnature_indication";
+ when Field_Element_Subnature =>
+ return "element_subnature";
when Field_Index_Constraint_List =>
return "index_constraint_list";
when Field_Array_Element_Constraint =>
@@ -702,6 +750,14 @@ package body Vhdl.Nodes_Meta is
return "reference";
when Field_Nature_Declarator =>
return "nature_declarator";
+ when Field_Across_Type_Mark =>
+ return "across_type_mark";
+ when Field_Through_Type_Mark =>
+ return "through_type_mark";
+ when Field_Across_Type_Definition =>
+ return "across_type_definition";
+ when Field_Through_Type_Definition =>
+ return "through_type_definition";
when Field_Across_Type =>
return "across_type";
when Field_Through_Type =>
@@ -724,6 +780,12 @@ package body Vhdl.Nodes_Meta is
return "package_origin";
when Field_Condition_Clause =>
return "condition_clause";
+ when Field_Break_Element =>
+ return "break_element";
+ when Field_Selector_Quantity =>
+ return "selector_quantity";
+ when Field_Break_Quantity =>
+ return "break_quantity";
when Field_Timeout_Clause =>
return "timeout_clause";
when Field_Postponed_Flag =>
@@ -890,6 +952,8 @@ package body Vhdl.Nodes_Meta is
return "index_subtype";
when Field_Parameter =>
return "parameter";
+ when Field_Parameter_2 =>
+ return "parameter_2";
when Field_Attr_Chain =>
return "attr_chain";
when Field_Signal_Attribute_Declaration =>
@@ -938,6 +1002,8 @@ package body Vhdl.Nodes_Meta is
return "method_object";
when Field_Subtype_Type_Mark =>
return "subtype_type_mark";
+ when Field_Subnature_Nature_Mark =>
+ return "subnature_nature_mark";
when Field_Type_Conversion_Subtype =>
return "type_conversion_subtype";
when Field_Type_Mark =>
@@ -1084,6 +1150,8 @@ package body Vhdl.Nodes_Meta is
return "association_element_type";
when Iir_Kind_Association_Element_Subprogram =>
return "association_element_subprogram";
+ when Iir_Kind_Association_Element_Terminal =>
+ return "association_element_terminal";
when Iir_Kind_Choice_By_Range =>
return "choice_by_range";
when Iir_Kind_Choice_By_Expression =>
@@ -1128,10 +1196,14 @@ package body Vhdl.Nodes_Meta is
return "record_resolution";
when Iir_Kind_Record_Element_Resolution =>
return "record_element_resolution";
+ when Iir_Kind_Break_Element =>
+ return "break_element";
when Iir_Kind_Attribute_Specification =>
return "attribute_specification";
when Iir_Kind_Disconnection_Specification =>
return "disconnection_specification";
+ when Iir_Kind_Step_Limit_Specification =>
+ return "step_limit_specification";
when Iir_Kind_Configuration_Specification =>
return "configuration_specification";
when Iir_Kind_Access_Type_Definition =>
@@ -1180,6 +1252,12 @@ package body Vhdl.Nodes_Meta is
return "subtype_definition";
when Iir_Kind_Scalar_Nature_Definition =>
return "scalar_nature_definition";
+ when Iir_Kind_Record_Nature_Definition =>
+ return "record_nature_definition";
+ when Iir_Kind_Array_Nature_Definition =>
+ return "array_nature_definition";
+ when Iir_Kind_Array_Subnature_Definition =>
+ return "array_subnature_definition";
when Iir_Kind_Overload_List =>
return "overload_list";
when Iir_Kind_Entity_Declaration =>
@@ -1228,20 +1306,14 @@ package body Vhdl.Nodes_Meta is
return "group_declaration";
when Iir_Kind_Element_Declaration =>
return "element_declaration";
+ when Iir_Kind_Nature_Element_Declaration =>
+ return "nature_element_declaration";
when Iir_Kind_Non_Object_Alias_Declaration =>
return "non_object_alias_declaration";
when Iir_Kind_Psl_Declaration =>
return "psl_declaration";
when Iir_Kind_Psl_Endpoint_Declaration =>
return "psl_endpoint_declaration";
- when Iir_Kind_Terminal_Declaration =>
- return "terminal_declaration";
- when Iir_Kind_Free_Quantity_Declaration =>
- return "free_quantity_declaration";
- when Iir_Kind_Across_Quantity_Declaration =>
- return "across_quantity_declaration";
- when Iir_Kind_Through_Quantity_Declaration =>
- return "through_quantity_declaration";
when Iir_Kind_Enumeration_Literal =>
return "enumeration_literal";
when Iir_Kind_Function_Declaration =>
@@ -1252,8 +1324,20 @@ package body Vhdl.Nodes_Meta is
return "function_body";
when Iir_Kind_Procedure_Body =>
return "procedure_body";
+ when Iir_Kind_Terminal_Declaration =>
+ return "terminal_declaration";
when Iir_Kind_Object_Alias_Declaration =>
return "object_alias_declaration";
+ when Iir_Kind_Free_Quantity_Declaration =>
+ return "free_quantity_declaration";
+ when Iir_Kind_Spectrum_Quantity_Declaration =>
+ return "spectrum_quantity_declaration";
+ when Iir_Kind_Noise_Quantity_Declaration =>
+ return "noise_quantity_declaration";
+ when Iir_Kind_Across_Quantity_Declaration =>
+ return "across_quantity_declaration";
+ when Iir_Kind_Through_Quantity_Declaration =>
+ return "through_quantity_declaration";
when Iir_Kind_File_Declaration =>
return "file_declaration";
when Iir_Kind_Guard_Signal_Declaration =>
@@ -1274,6 +1358,10 @@ package body Vhdl.Nodes_Meta is
return "interface_signal_declaration";
when Iir_Kind_Interface_File_Declaration =>
return "interface_file_declaration";
+ when Iir_Kind_Interface_Quantity_Declaration =>
+ return "interface_quantity_declaration";
+ when Iir_Kind_Interface_Terminal_Declaration =>
+ return "interface_terminal_declaration";
when Iir_Kind_Interface_Type_Declaration =>
return "interface_type_declaration";
when Iir_Kind_Interface_Package_Declaration =>
@@ -1414,6 +1502,8 @@ package body Vhdl.Nodes_Meta is
return "concurrent_assertion_statement";
when Iir_Kind_Concurrent_Procedure_Call_Statement =>
return "concurrent_procedure_call_statement";
+ when Iir_Kind_Concurrent_Break_Statement =>
+ return "concurrent_break_statement";
when Iir_Kind_Psl_Assert_Directive =>
return "psl_assert_directive";
when Iir_Kind_Psl_Assume_Directive =>
@@ -1434,12 +1524,18 @@ package body Vhdl.Nodes_Meta is
return "component_instantiation_statement";
when Iir_Kind_Psl_Default_Clock =>
return "psl_default_clock";
- when Iir_Kind_Simple_Simultaneous_Statement =>
- return "simple_simultaneous_statement";
when Iir_Kind_Generate_Statement_Body =>
return "generate_statement_body";
when Iir_Kind_If_Generate_Else_Clause =>
return "if_generate_else_clause";
+ when Iir_Kind_Simple_Simultaneous_Statement =>
+ return "simple_simultaneous_statement";
+ when Iir_Kind_Simultaneous_Procedural_Statement =>
+ return "simultaneous_procedural_statement";
+ when Iir_Kind_Simultaneous_If_Statement =>
+ return "simultaneous_if_statement";
+ when Iir_Kind_Simultaneous_Elsif =>
+ return "simultaneous_elsif";
when Iir_Kind_Simple_Signal_Assignment_Statement =>
return "simple_signal_assignment_statement";
when Iir_Kind_Conditional_Signal_Assignment_Statement =>
@@ -1472,6 +1568,8 @@ package body Vhdl.Nodes_Meta is
return "case_statement";
when Iir_Kind_Procedure_Call_Statement =>
return "procedure_call_statement";
+ when Iir_Kind_Break_Statement =>
+ return "break_statement";
when Iir_Kind_If_Statement =>
return "if_statement";
when Iir_Kind_Elsif =>
@@ -1510,6 +1608,12 @@ package body Vhdl.Nodes_Meta is
return "subtype_attribute";
when Iir_Kind_Element_Attribute =>
return "element_attribute";
+ when Iir_Kind_Across_Attribute =>
+ return "across_attribute";
+ when Iir_Kind_Through_Attribute =>
+ return "through_attribute";
+ when Iir_Kind_Nature_Reference_Attribute =>
+ return "nature_reference_attribute";
when Iir_Kind_Left_Type_Attribute =>
return "left_type_attribute";
when Iir_Kind_Right_Type_Attribute =>
@@ -1536,6 +1640,18 @@ package body Vhdl.Nodes_Meta is
return "leftof_attribute";
when Iir_Kind_Rightof_Attribute =>
return "rightof_attribute";
+ when Iir_Kind_Signal_Slew_Attribute =>
+ return "signal_slew_attribute";
+ when Iir_Kind_Quantity_Slew_Attribute =>
+ return "quantity_slew_attribute";
+ when Iir_Kind_Ramp_Attribute =>
+ return "ramp_attribute";
+ when Iir_Kind_Dot_Attribute =>
+ return "dot_attribute";
+ when Iir_Kind_Integ_Attribute =>
+ return "integ_attribute";
+ when Iir_Kind_Above_Attribute =>
+ return "above_attribute";
when Iir_Kind_Delayed_Attribute =>
return "delayed_attribute";
when Iir_Kind_Stable_Attribute =>
@@ -1684,6 +1800,8 @@ package body Vhdl.Nodes_Meta is
return Attr_Ref;
when Field_Signal_List =>
return Attr_Of_Maybe_Ref;
+ when Field_Quantity_List =>
+ return Attr_Of_Maybe_Ref;
when Field_Designated_Entity =>
return Attr_Forward_Ref;
when Field_Formal =>
@@ -1786,7 +1904,11 @@ package body Vhdl.Nodes_Meta is
return Attr_Ref;
when Field_Interface_Type_Subprograms =>
return Attr_Chain;
+ when Field_Nature_Definition =>
+ return Attr_None;
when Field_Nature =>
+ return Attr_Ref;
+ when Field_Subnature_Indication =>
return Attr_None;
when Field_Mode =>
return Attr_None;
@@ -1802,6 +1924,8 @@ package body Vhdl.Nodes_Meta is
return Attr_Ref;
when Field_Sequential_Statement_Chain =>
return Attr_Chain;
+ when Field_Simultaneous_Statement_Chain =>
+ return Attr_Chain;
when Field_Subprogram_Body =>
return Attr_Forward_Ref;
when Field_Overload_Number =>
@@ -1882,15 +2006,27 @@ package body Vhdl.Nodes_Meta is
return Attr_None;
when Field_Base_Type =>
return Attr_Ref;
+ when Field_Base_Nature =>
+ return Attr_Ref;
when Field_Resolution_Indication =>
return Attr_None;
when Field_Record_Element_Resolution_Chain =>
return Attr_Chain;
when Field_Tolerance =>
return Attr_None;
- when Field_Plus_Terminal =>
+ when Field_Plus_Terminal_Name =>
return Attr_None;
+ when Field_Minus_Terminal_Name =>
+ return Attr_None;
+ when Field_Plus_Terminal =>
+ return Attr_Ref;
when Field_Minus_Terminal =>
+ return Attr_Ref;
+ when Field_Magnitude_Expression =>
+ return Attr_None;
+ when Field_Phase_Expression =>
+ return Attr_None;
+ when Field_Power_Expression =>
return Attr_None;
when Field_Simultaneous_Left =>
return Attr_None;
@@ -1902,6 +2038,8 @@ package body Vhdl.Nodes_Meta is
return Attr_None;
when Field_Is_Character_Type =>
return Attr_None;
+ when Field_Nature_Staticness =>
+ return Attr_None;
when Field_Type_Staticness =>
return Attr_None;
when Field_Constraint_State =>
@@ -1914,6 +2052,10 @@ package body Vhdl.Nodes_Meta is
return Attr_None;
when Field_Element_Subtype =>
return Attr_Ref;
+ when Field_Element_Subnature_Indication =>
+ return Attr_None;
+ when Field_Element_Subnature =>
+ return Attr_Ref;
when Field_Index_Constraint_List =>
return Attr_None;
when Field_Array_Element_Constraint =>
@@ -1929,13 +2071,21 @@ package body Vhdl.Nodes_Meta is
when Field_Index_List =>
return Attr_None;
when Field_Reference =>
- return Attr_None;
+ return Attr_Forward_Ref;
when Field_Nature_Declarator =>
+ return Attr_Ref;
+ when Field_Across_Type_Mark =>
return Attr_None;
- when Field_Across_Type =>
+ when Field_Through_Type_Mark =>
return Attr_None;
- when Field_Through_Type =>
+ when Field_Across_Type_Definition =>
return Attr_None;
+ when Field_Through_Type_Definition =>
+ return Attr_None;
+ when Field_Across_Type =>
+ return Attr_Ref;
+ when Field_Through_Type =>
+ return Attr_Ref;
when Field_Target =>
return Attr_Maybe_Ref;
when Field_Waveform_Chain =>
@@ -1954,6 +2104,12 @@ package body Vhdl.Nodes_Meta is
return Attr_None;
when Field_Condition_Clause =>
return Attr_None;
+ when Field_Break_Element =>
+ return Attr_Chain;
+ when Field_Selector_Quantity =>
+ return Attr_None;
+ when Field_Break_Quantity =>
+ return Attr_None;
when Field_Timeout_Clause =>
return Attr_None;
when Field_Postponed_Flag =>
@@ -2120,6 +2276,8 @@ package body Vhdl.Nodes_Meta is
return Attr_Ref;
when Field_Parameter =>
return Attr_None;
+ when Field_Parameter_2 =>
+ return Attr_None;
when Field_Attr_Chain =>
return Attr_Forward_Ref;
when Field_Signal_Attribute_Declaration =>
@@ -2168,6 +2326,8 @@ package body Vhdl.Nodes_Meta is
return Attr_Ref;
when Field_Subtype_Type_Mark =>
return Attr_None;
+ when Field_Subnature_Nature_Mark =>
+ return Attr_None;
when Field_Type_Conversion_Subtype =>
return Attr_None;
when Field_Type_Mark =>
@@ -2434,6 +2594,13 @@ package body Vhdl.Nodes_Meta is
Field_Formal,
Field_Chain,
Field_Actual,
+ -- Iir_Kind_Association_Element_Terminal
+ Field_Whole_Association_Flag,
+ Field_Collapse_Signal_Flag,
+ Field_In_Formal_Flag,
+ Field_Formal,
+ Field_Chain,
+ Field_Actual,
-- Iir_Kind_Choice_By_Range
Field_Same_Alternative_Flag,
Field_Element_Type_Flag,
@@ -2553,6 +2720,11 @@ package body Vhdl.Nodes_Meta is
Field_Identifier,
Field_Chain,
Field_Resolution_Indication,
+ -- Iir_Kind_Break_Element
+ Field_Chain,
+ Field_Selector_Quantity,
+ Field_Break_Quantity,
+ Field_Expression,
-- Iir_Kind_Attribute_Specification
Field_Entity_Class,
Field_Parent,
@@ -2569,6 +2741,13 @@ package body Vhdl.Nodes_Meta is
Field_Type_Mark,
Field_Expression,
Field_Chain,
+ -- Iir_Kind_Step_Limit_Specification
+ Field_Is_Ref,
+ Field_Parent,
+ Field_Quantity_List,
+ Field_Type_Mark,
+ Field_Expression,
+ Field_Chain,
-- Iir_Kind_Configuration_Specification
Field_Is_Ref,
Field_Parent,
@@ -2803,8 +2982,55 @@ package body Vhdl.Nodes_Meta is
Field_Resolution_Indication,
Field_Tolerance,
-- Iir_Kind_Scalar_Nature_Definition
+ Field_Nature_Staticness,
Field_Reference,
Field_Nature_Declarator,
+ Field_Base_Nature,
+ Field_Across_Type_Mark,
+ Field_Through_Type_Mark,
+ Field_Across_Type,
+ Field_Through_Type,
+ -- Iir_Kind_Record_Nature_Definition
+ Field_Is_Ref,
+ Field_End_Has_Reserved_Id,
+ Field_End_Has_Identifier,
+ Field_Nature_Staticness,
+ Field_Constraint_State,
+ Field_Elements_Declaration_List,
+ Field_Nature_Declarator,
+ Field_Base_Nature,
+ Field_Across_Type_Definition,
+ Field_Through_Type_Definition,
+ Field_Across_Type,
+ Field_Through_Type,
+ -- Iir_Kind_Array_Nature_Definition
+ Field_Index_Constraint_Flag,
+ Field_Nature_Staticness,
+ Field_Constraint_State,
+ Field_Index_Subtype_Definition_List,
+ Field_Element_Subnature_Indication,
+ Field_Index_Subtype_List,
+ Field_Element_Subnature,
+ Field_Nature_Declarator,
+ Field_Base_Nature,
+ Field_Across_Type_Definition,
+ Field_Through_Type_Definition,
+ Field_Across_Type,
+ Field_Through_Type,
+ -- Iir_Kind_Array_Subnature_Definition
+ Field_Index_Constraint_Flag,
+ Field_Nature_Staticness,
+ Field_Constraint_State,
+ Field_Subnature_Nature_Mark,
+ Field_Index_Constraint_List,
+ Field_Index_Subtype_List,
+ Field_Array_Element_Constraint,
+ Field_Tolerance,
+ Field_Element_Subnature,
+ Field_Nature_Declarator,
+ Field_Base_Nature,
+ Field_Across_Type_Definition,
+ Field_Through_Type_Definition,
Field_Across_Type,
Field_Through_Type,
-- Iir_Kind_Overload_List
@@ -2959,7 +3185,7 @@ package body Vhdl.Nodes_Meta is
Field_Visible_Flag,
Field_Use_Flag,
Field_Parent,
- Field_Nature,
+ Field_Nature_Definition,
Field_Chain,
-- Iir_Kind_Subnature_Declaration
Field_Identifier,
@@ -2968,6 +3194,7 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Nature,
Field_Chain,
+ Field_Subnature_Indication,
-- Iir_Kind_Package_Header
Field_Generic_Chain,
Field_Generic_Map_Aspect_Chain,
@@ -3031,6 +3258,14 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Subtype_Indication,
Field_Type,
+ -- Iir_Kind_Nature_Element_Declaration
+ Field_Identifier,
+ Field_Element_Position,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Parent,
+ Field_Subnature_Indication,
+ Field_Nature,
-- Iir_Kind_Non_Object_Alias_Declaration
Field_Identifier,
Field_Implicit_Alias_Flag,
@@ -3064,52 +3299,6 @@ package body Vhdl.Nodes_Meta is
Field_Type,
Field_Chain,
Field_PSL_Clock_Sensitivity,
- -- Iir_Kind_Terminal_Declaration
- Field_Identifier,
- Field_Has_Identifier_List,
- Field_Visible_Flag,
- Field_Use_Flag,
- Field_Parent,
- Field_Nature,
- Field_Chain,
- -- Iir_Kind_Free_Quantity_Declaration
- Field_Identifier,
- Field_Is_Ref,
- Field_Visible_Flag,
- Field_Use_Flag,
- Field_Expr_Staticness,
- Field_Name_Staticness,
- Field_Parent,
- Field_Type,
- Field_Chain,
- Field_Subtype_Indication,
- Field_Default_Value,
- -- Iir_Kind_Across_Quantity_Declaration
- Field_Identifier,
- Field_Visible_Flag,
- Field_Use_Flag,
- Field_Expr_Staticness,
- Field_Name_Staticness,
- Field_Parent,
- Field_Type,
- Field_Chain,
- Field_Default_Value,
- Field_Tolerance,
- Field_Plus_Terminal,
- Field_Minus_Terminal,
- -- Iir_Kind_Through_Quantity_Declaration
- Field_Identifier,
- Field_Visible_Flag,
- Field_Use_Flag,
- Field_Expr_Staticness,
- Field_Name_Staticness,
- Field_Parent,
- Field_Type,
- Field_Chain,
- Field_Default_Value,
- Field_Tolerance,
- Field_Plus_Terminal,
- Field_Minus_Terminal,
-- Iir_Kind_Enumeration_Literal
Field_Identifier,
Field_Subprogram_Hash,
@@ -3196,6 +3385,16 @@ package body Vhdl.Nodes_Meta is
Field_Sequential_Statement_Chain,
Field_Subprogram_Specification,
Field_Callees_List,
+ -- Iir_Kind_Terminal_Declaration
+ Field_Identifier,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Nature,
+ Field_Chain,
+ Field_Subnature_Indication,
-- Iir_Kind_Object_Alias_Declaration
Field_Identifier,
Field_Visible_Flag,
@@ -3208,6 +3407,80 @@ package body Vhdl.Nodes_Meta is
Field_Name,
Field_Subtype_Indication,
Field_Type,
+ -- Iir_Kind_Free_Quantity_Declaration
+ Field_Identifier,
+ Field_Is_Ref,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Chain,
+ Field_Subtype_Indication,
+ Field_Default_Value,
+ Field_Type,
+ -- Iir_Kind_Spectrum_Quantity_Declaration
+ Field_Identifier,
+ Field_Is_Ref,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Chain,
+ Field_Subtype_Indication,
+ Field_Magnitude_Expression,
+ Field_Phase_Expression,
+ Field_Type,
+ -- Iir_Kind_Noise_Quantity_Declaration
+ Field_Identifier,
+ Field_Is_Ref,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Chain,
+ Field_Subtype_Indication,
+ Field_Power_Expression,
+ Field_Type,
+ -- Iir_Kind_Across_Quantity_Declaration
+ Field_Identifier,
+ Field_Is_Ref,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Type,
+ Field_Chain,
+ Field_Default_Value,
+ Field_Tolerance,
+ Field_Plus_Terminal_Name,
+ Field_Minus_Terminal_Name,
+ Field_Plus_Terminal,
+ Field_Minus_Terminal,
+ -- Iir_Kind_Through_Quantity_Declaration
+ Field_Identifier,
+ Field_Is_Ref,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Type,
+ Field_Chain,
+ Field_Default_Value,
+ Field_Tolerance,
+ Field_Plus_Terminal_Name,
+ Field_Minus_Terminal_Name,
+ Field_Plus_Terminal,
+ Field_Minus_Terminal,
-- Iir_Kind_File_Declaration
Field_Identifier,
Field_Has_Mode,
@@ -3369,6 +3642,36 @@ package body Vhdl.Nodes_Meta is
Field_Subtype_Indication,
Field_Default_Value,
Field_Type,
+ -- Iir_Kind_Interface_Quantity_Declaration
+ Field_Identifier,
+ Field_Has_Mode,
+ Field_Has_Class,
+ Field_Is_Ref,
+ Field_Mode,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_After_Drivers_Flag,
+ Field_Use_Flag,
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Chain,
+ Field_Subtype_Indication,
+ Field_Default_Value,
+ Field_Type,
+ -- Iir_Kind_Interface_Terminal_Declaration
+ Field_Identifier,
+ Field_Has_Mode,
+ Field_Has_Class,
+ Field_Is_Ref,
+ Field_Has_Identifier_List,
+ Field_Visible_Flag,
+ Field_Use_Flag,
+ Field_Name_Staticness,
+ Field_Parent,
+ Field_Chain,
+ Field_Subnature_Indication,
+ Field_Nature,
-- Iir_Kind_Interface_Type_Declaration
Field_Identifier,
Field_Is_Ref,
@@ -3876,6 +4179,15 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Procedure_Call,
Field_Chain,
+ -- Iir_Kind_Concurrent_Break_Statement
+ Field_Label,
+ Field_Is_Ref,
+ Field_Visible_Flag,
+ Field_Parent,
+ Field_Condition,
+ Field_Chain,
+ Field_Sensitivity_List,
+ Field_Break_Element,
-- Iir_Kind_Psl_Assert_Directive
Field_Psl_Property,
Field_Label,
@@ -3991,14 +4303,6 @@ package body Vhdl.Nodes_Meta is
Field_Label,
Field_Parent,
Field_Chain,
- -- Iir_Kind_Simple_Simultaneous_Statement
- Field_Label,
- Field_Visible_Flag,
- Field_Parent,
- Field_Chain,
- Field_Simultaneous_Left,
- Field_Simultaneous_Right,
- Field_Tolerance,
-- Iir_Kind_Generate_Statement_Body
Field_Alternative_Label,
Field_Has_Begin,
@@ -4018,6 +4322,40 @@ package body Vhdl.Nodes_Meta is
Field_Condition,
Field_Generate_Statement_Body,
Field_Generate_Else_Clause,
+ -- Iir_Kind_Simple_Simultaneous_Statement
+ Field_Label,
+ Field_Visible_Flag,
+ Field_Parent,
+ Field_Chain,
+ Field_Simultaneous_Left,
+ Field_Simultaneous_Right,
+ Field_Tolerance,
+ -- Iir_Kind_Simultaneous_Procedural_Statement
+ Field_Label,
+ Field_Has_Is,
+ Field_End_Has_Reserved_Id,
+ Field_End_Has_Identifier,
+ Field_Parent,
+ Field_Declaration_Chain,
+ Field_Attribute_Value_Chain,
+ Field_Sequential_Statement_Chain,
+ -- Iir_Kind_Simultaneous_If_Statement
+ Field_Label,
+ Field_Is_Ref,
+ Field_Visible_Flag,
+ Field_End_Has_Identifier,
+ Field_Parent,
+ Field_Condition,
+ Field_Simultaneous_Statement_Chain,
+ Field_Else_Clause,
+ Field_Chain,
+ -- Iir_Kind_Simultaneous_Elsif
+ Field_Is_Ref,
+ Field_End_Has_Identifier,
+ Field_Parent,
+ Field_Condition,
+ Field_Simultaneous_Statement_Chain,
+ Field_Else_Clause,
-- Iir_Kind_Simple_Signal_Assignment_Statement
Field_Label,
Field_Delay_Mechanism,
@@ -4153,9 +4491,9 @@ package body Vhdl.Nodes_Meta is
Field_Visible_Flag,
Field_End_Has_Identifier,
Field_Parent,
+ Field_Expression,
Field_Case_Statement_Alternative_Chain,
Field_Chain,
- Field_Expression,
-- Iir_Kind_Procedure_Call_Statement
Field_Label,
Field_Suspend_Flag,
@@ -4163,6 +4501,14 @@ package body Vhdl.Nodes_Meta is
Field_Parent,
Field_Procedure_Call,
Field_Chain,
+ -- Iir_Kind_Break_Statement
+ Field_Label,
+ Field_Is_Ref,
+ Field_Visible_Flag,
+ Field_Parent,
+ Field_Condition,
+ Field_Chain,
+ Field_Break_Element,
-- Iir_Kind_If_Statement
Field_Label,
Field_Suspend_Flag,
@@ -4293,6 +4639,23 @@ package body Vhdl.Nodes_Meta is
Field_Prefix,
Field_Type,
Field_Base_Name,
+ -- Iir_Kind_Across_Attribute
+ Field_Type_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Base_Name,
+ -- Iir_Kind_Through_Attribute
+ Field_Type_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Base_Name,
+ -- Iir_Kind_Nature_Reference_Attribute
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Nature,
+ Field_Base_Name,
-- Iir_Kind_Left_Type_Attribute
Field_Expr_Staticness,
Field_Name_Staticness,
@@ -4379,6 +4742,58 @@ package body Vhdl.Nodes_Meta is
Field_Type,
Field_Parameter,
Field_Base_Name,
+ -- Iir_Kind_Signal_Slew_Attribute
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Attr_Chain,
+ Field_Parameter,
+ Field_Parameter_2,
+ Field_Base_Name,
+ -- Iir_Kind_Quantity_Slew_Attribute
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Attr_Chain,
+ Field_Parameter,
+ Field_Parameter_2,
+ Field_Base_Name,
+ -- Iir_Kind_Ramp_Attribute
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Attr_Chain,
+ Field_Parameter,
+ Field_Parameter_2,
+ Field_Base_Name,
+ -- Iir_Kind_Dot_Attribute
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
+ Field_Base_Name,
+ -- Iir_Kind_Integ_Attribute
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
+ Field_Base_Name,
+ -- Iir_Kind_Above_Attribute
+ Field_Expr_Staticness,
+ Field_Name_Staticness,
+ Field_Prefix,
+ Field_Type,
+ Field_Attr_Chain,
+ Field_Signal_Attribute_Declaration,
+ Field_Parameter,
+ Field_Base_Name,
-- Iir_Kind_Delayed_Attribute
Field_Has_Active_Flag,
Field_Expr_Staticness,
@@ -4579,257 +4994,282 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Association_Element_Package => 131,
Iir_Kind_Association_Element_Type => 139,
Iir_Kind_Association_Element_Subprogram => 145,
- Iir_Kind_Choice_By_Range => 153,
- Iir_Kind_Choice_By_Expression => 161,
- Iir_Kind_Choice_By_Others => 167,
- Iir_Kind_Choice_By_None => 173,
- Iir_Kind_Choice_By_Name => 180,
- Iir_Kind_Entity_Aspect_Entity => 182,
- Iir_Kind_Entity_Aspect_Configuration => 183,
- Iir_Kind_Entity_Aspect_Open => 183,
- Iir_Kind_Psl_Hierarchical_Name => 185,
- Iir_Kind_Block_Configuration => 191,
- Iir_Kind_Block_Header => 195,
- Iir_Kind_Component_Configuration => 202,
- Iir_Kind_Binding_Indication => 206,
- Iir_Kind_Entity_Class => 208,
- Iir_Kind_Attribute_Value => 216,
- Iir_Kind_Signature => 219,
- Iir_Kind_Aggregate_Info => 226,
- Iir_Kind_Procedure_Call => 230,
- Iir_Kind_Record_Element_Constraint => 236,
- Iir_Kind_Array_Element_Resolution => 238,
- Iir_Kind_Record_Resolution => 239,
- Iir_Kind_Record_Element_Resolution => 242,
- Iir_Kind_Attribute_Specification => 250,
- Iir_Kind_Disconnection_Specification => 256,
- Iir_Kind_Configuration_Specification => 262,
- Iir_Kind_Access_Type_Definition => 270,
- Iir_Kind_Incomplete_Type_Definition => 278,
- Iir_Kind_Interface_Type_Definition => 285,
- Iir_Kind_File_Type_Definition => 292,
- Iir_Kind_Protected_Type_Declaration => 301,
- Iir_Kind_Record_Type_Definition => 312,
- Iir_Kind_Array_Type_Definition => 324,
- Iir_Kind_Array_Subtype_Definition => 339,
- Iir_Kind_Record_Subtype_Definition => 352,
- Iir_Kind_Access_Subtype_Definition => 360,
- Iir_Kind_Physical_Subtype_Definition => 370,
- Iir_Kind_Floating_Subtype_Definition => 381,
- Iir_Kind_Integer_Subtype_Definition => 391,
- Iir_Kind_Enumeration_Subtype_Definition => 401,
- Iir_Kind_Enumeration_Type_Definition => 412,
- Iir_Kind_Integer_Type_Definition => 420,
- Iir_Kind_Floating_Type_Definition => 428,
- Iir_Kind_Physical_Type_Definition => 439,
- Iir_Kind_Range_Expression => 447,
- Iir_Kind_Protected_Type_Body => 454,
- Iir_Kind_Wildcard_Type_Definition => 459,
- Iir_Kind_Subtype_Definition => 466,
- Iir_Kind_Scalar_Nature_Definition => 470,
- Iir_Kind_Overload_List => 471,
- Iir_Kind_Entity_Declaration => 484,
- Iir_Kind_Configuration_Declaration => 493,
- Iir_Kind_Context_Declaration => 499,
- Iir_Kind_Package_Declaration => 514,
- Iir_Kind_Package_Instantiation_Declaration => 528,
- Iir_Kind_Vmode_Declaration => 539,
- Iir_Kind_Vprop_Declaration => 550,
- Iir_Kind_Vunit_Declaration => 562,
- Iir_Kind_Package_Body => 570,
- Iir_Kind_Architecture_Body => 583,
- Iir_Kind_Type_Declaration => 590,
- Iir_Kind_Anonymous_Type_Declaration => 596,
- Iir_Kind_Subtype_Declaration => 603,
- Iir_Kind_Nature_Declaration => 609,
- Iir_Kind_Subnature_Declaration => 615,
- Iir_Kind_Package_Header => 617,
- Iir_Kind_Unit_Declaration => 626,
- Iir_Kind_Library_Declaration => 633,
- Iir_Kind_Component_Declaration => 643,
- Iir_Kind_Attribute_Declaration => 650,
- Iir_Kind_Group_Template_Declaration => 656,
- Iir_Kind_Group_Declaration => 663,
- Iir_Kind_Element_Declaration => 670,
- Iir_Kind_Non_Object_Alias_Declaration => 678,
- Iir_Kind_Psl_Declaration => 686,
- Iir_Kind_Psl_Endpoint_Declaration => 700,
- Iir_Kind_Terminal_Declaration => 707,
- Iir_Kind_Free_Quantity_Declaration => 718,
- Iir_Kind_Across_Quantity_Declaration => 730,
- Iir_Kind_Through_Quantity_Declaration => 742,
- Iir_Kind_Enumeration_Literal => 753,
- Iir_Kind_Function_Declaration => 778,
- Iir_Kind_Procedure_Declaration => 802,
- Iir_Kind_Function_Body => 812,
- Iir_Kind_Procedure_Body => 823,
- Iir_Kind_Object_Alias_Declaration => 834,
- Iir_Kind_File_Declaration => 848,
- Iir_Kind_Guard_Signal_Declaration => 861,
- Iir_Kind_Signal_Declaration => 878,
- Iir_Kind_Variable_Declaration => 891,
- Iir_Kind_Constant_Declaration => 905,
- Iir_Kind_Iterator_Declaration => 916,
- Iir_Kind_Interface_Constant_Declaration => 932,
- Iir_Kind_Interface_Variable_Declaration => 948,
- Iir_Kind_Interface_Signal_Declaration => 969,
- Iir_Kind_Interface_File_Declaration => 985,
- Iir_Kind_Interface_Type_Declaration => 995,
- Iir_Kind_Interface_Package_Declaration => 1007,
- Iir_Kind_Interface_Function_Declaration => 1024,
- Iir_Kind_Interface_Procedure_Declaration => 1037,
- Iir_Kind_Anonymous_Signal_Declaration => 1046,
- Iir_Kind_Signal_Attribute_Declaration => 1049,
- Iir_Kind_Identity_Operator => 1053,
- Iir_Kind_Negation_Operator => 1057,
- Iir_Kind_Absolute_Operator => 1061,
- Iir_Kind_Not_Operator => 1065,
- Iir_Kind_Implicit_Condition_Operator => 1069,
- Iir_Kind_Condition_Operator => 1073,
- Iir_Kind_Reduction_And_Operator => 1077,
- Iir_Kind_Reduction_Or_Operator => 1081,
- Iir_Kind_Reduction_Nand_Operator => 1085,
- Iir_Kind_Reduction_Nor_Operator => 1089,
- Iir_Kind_Reduction_Xor_Operator => 1093,
- Iir_Kind_Reduction_Xnor_Operator => 1097,
- Iir_Kind_And_Operator => 1102,
- Iir_Kind_Or_Operator => 1107,
- Iir_Kind_Nand_Operator => 1112,
- Iir_Kind_Nor_Operator => 1117,
- Iir_Kind_Xor_Operator => 1122,
- Iir_Kind_Xnor_Operator => 1127,
- Iir_Kind_Equality_Operator => 1132,
- Iir_Kind_Inequality_Operator => 1137,
- Iir_Kind_Less_Than_Operator => 1142,
- Iir_Kind_Less_Than_Or_Equal_Operator => 1147,
- Iir_Kind_Greater_Than_Operator => 1152,
- Iir_Kind_Greater_Than_Or_Equal_Operator => 1157,
- Iir_Kind_Match_Equality_Operator => 1162,
- Iir_Kind_Match_Inequality_Operator => 1167,
- Iir_Kind_Match_Less_Than_Operator => 1172,
- Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1177,
- Iir_Kind_Match_Greater_Than_Operator => 1182,
- Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1187,
- Iir_Kind_Sll_Operator => 1192,
- Iir_Kind_Sla_Operator => 1197,
- Iir_Kind_Srl_Operator => 1202,
- Iir_Kind_Sra_Operator => 1207,
- Iir_Kind_Rol_Operator => 1212,
- Iir_Kind_Ror_Operator => 1217,
- Iir_Kind_Addition_Operator => 1222,
- Iir_Kind_Substraction_Operator => 1227,
- Iir_Kind_Concatenation_Operator => 1232,
- Iir_Kind_Multiplication_Operator => 1237,
- Iir_Kind_Division_Operator => 1242,
- Iir_Kind_Modulus_Operator => 1247,
- Iir_Kind_Remainder_Operator => 1252,
- Iir_Kind_Exponentiation_Operator => 1257,
- Iir_Kind_Function_Call => 1265,
- Iir_Kind_Aggregate => 1272,
- Iir_Kind_Parenthesis_Expression => 1275,
- Iir_Kind_Qualified_Expression => 1279,
- Iir_Kind_Type_Conversion => 1284,
- Iir_Kind_Allocator_By_Expression => 1288,
- Iir_Kind_Allocator_By_Subtype => 1293,
- Iir_Kind_Selected_Element => 1301,
- Iir_Kind_Dereference => 1306,
- Iir_Kind_Implicit_Dereference => 1311,
- Iir_Kind_Slice_Name => 1318,
- Iir_Kind_Indexed_Name => 1324,
- Iir_Kind_Psl_Expression => 1326,
- Iir_Kind_Sensitized_Process_Statement => 1347,
- Iir_Kind_Process_Statement => 1367,
- Iir_Kind_Concurrent_Simple_Signal_Assignment => 1380,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1393,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1407,
- Iir_Kind_Concurrent_Assertion_Statement => 1415,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1422,
- Iir_Kind_Psl_Assert_Directive => 1435,
- Iir_Kind_Psl_Assume_Directive => 1446,
- Iir_Kind_Psl_Cover_Directive => 1458,
- Iir_Kind_Psl_Restrict_Directive => 1469,
- Iir_Kind_Block_Statement => 1483,
- Iir_Kind_If_Generate_Statement => 1494,
- Iir_Kind_Case_Generate_Statement => 1503,
- Iir_Kind_For_Generate_Statement => 1512,
- Iir_Kind_Component_Instantiation_Statement => 1523,
- Iir_Kind_Psl_Default_Clock => 1527,
- Iir_Kind_Simple_Simultaneous_Statement => 1534,
- Iir_Kind_Generate_Statement_Body => 1545,
- Iir_Kind_If_Generate_Else_Clause => 1551,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1562,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1573,
- Iir_Kind_Selected_Waveform_Assignment_Statement => 1585,
- Iir_Kind_Null_Statement => 1589,
- Iir_Kind_Assertion_Statement => 1596,
- Iir_Kind_Report_Statement => 1602,
- Iir_Kind_Wait_Statement => 1610,
- Iir_Kind_Variable_Assignment_Statement => 1617,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1624,
- Iir_Kind_Return_Statement => 1630,
- Iir_Kind_For_Loop_Statement => 1641,
- Iir_Kind_While_Loop_Statement => 1652,
- Iir_Kind_Next_Statement => 1659,
- Iir_Kind_Exit_Statement => 1666,
- Iir_Kind_Case_Statement => 1674,
- Iir_Kind_Procedure_Call_Statement => 1680,
- Iir_Kind_If_Statement => 1690,
- Iir_Kind_Elsif => 1696,
- Iir_Kind_Character_Literal => 1704,
- Iir_Kind_Simple_Name => 1712,
- Iir_Kind_Selected_Name => 1721,
- Iir_Kind_Operator_Symbol => 1727,
- Iir_Kind_Reference_Name => 1732,
- Iir_Kind_External_Constant_Name => 1740,
- Iir_Kind_External_Signal_Name => 1748,
- Iir_Kind_External_Variable_Name => 1757,
- Iir_Kind_Selected_By_All_Name => 1763,
- Iir_Kind_Parenthesis_Name => 1768,
- Iir_Kind_Package_Pathname => 1772,
- Iir_Kind_Absolute_Pathname => 1773,
- Iir_Kind_Relative_Pathname => 1774,
- Iir_Kind_Pathname_Element => 1779,
- Iir_Kind_Base_Attribute => 1781,
- Iir_Kind_Subtype_Attribute => 1786,
- Iir_Kind_Element_Attribute => 1791,
- Iir_Kind_Left_Type_Attribute => 1796,
- Iir_Kind_Right_Type_Attribute => 1801,
- Iir_Kind_High_Type_Attribute => 1806,
- Iir_Kind_Low_Type_Attribute => 1811,
- Iir_Kind_Ascending_Type_Attribute => 1816,
- Iir_Kind_Image_Attribute => 1822,
- Iir_Kind_Value_Attribute => 1828,
- Iir_Kind_Pos_Attribute => 1834,
- Iir_Kind_Val_Attribute => 1840,
- Iir_Kind_Succ_Attribute => 1846,
- Iir_Kind_Pred_Attribute => 1852,
- Iir_Kind_Leftof_Attribute => 1858,
- Iir_Kind_Rightof_Attribute => 1864,
- Iir_Kind_Delayed_Attribute => 1873,
- Iir_Kind_Stable_Attribute => 1882,
- Iir_Kind_Quiet_Attribute => 1891,
- Iir_Kind_Transaction_Attribute => 1900,
- Iir_Kind_Event_Attribute => 1904,
- Iir_Kind_Active_Attribute => 1908,
- Iir_Kind_Last_Event_Attribute => 1912,
- Iir_Kind_Last_Active_Attribute => 1916,
- Iir_Kind_Last_Value_Attribute => 1920,
- Iir_Kind_Driving_Attribute => 1924,
- Iir_Kind_Driving_Value_Attribute => 1928,
- Iir_Kind_Behavior_Attribute => 1928,
- Iir_Kind_Structure_Attribute => 1928,
- Iir_Kind_Simple_Name_Attribute => 1935,
- Iir_Kind_Instance_Name_Attribute => 1940,
- Iir_Kind_Path_Name_Attribute => 1945,
- Iir_Kind_Left_Array_Attribute => 1952,
- Iir_Kind_Right_Array_Attribute => 1959,
- Iir_Kind_High_Array_Attribute => 1966,
- Iir_Kind_Low_Array_Attribute => 1973,
- Iir_Kind_Length_Array_Attribute => 1980,
- Iir_Kind_Ascending_Array_Attribute => 1987,
- Iir_Kind_Range_Array_Attribute => 1994,
- Iir_Kind_Reverse_Range_Array_Attribute => 2001,
- Iir_Kind_Attribute_Name => 2010
+ Iir_Kind_Association_Element_Terminal => 151,
+ Iir_Kind_Choice_By_Range => 159,
+ Iir_Kind_Choice_By_Expression => 167,
+ Iir_Kind_Choice_By_Others => 173,
+ Iir_Kind_Choice_By_None => 179,
+ Iir_Kind_Choice_By_Name => 186,
+ Iir_Kind_Entity_Aspect_Entity => 188,
+ Iir_Kind_Entity_Aspect_Configuration => 189,
+ Iir_Kind_Entity_Aspect_Open => 189,
+ Iir_Kind_Psl_Hierarchical_Name => 191,
+ Iir_Kind_Block_Configuration => 197,
+ Iir_Kind_Block_Header => 201,
+ Iir_Kind_Component_Configuration => 208,
+ Iir_Kind_Binding_Indication => 212,
+ Iir_Kind_Entity_Class => 214,
+ Iir_Kind_Attribute_Value => 222,
+ Iir_Kind_Signature => 225,
+ Iir_Kind_Aggregate_Info => 232,
+ Iir_Kind_Procedure_Call => 236,
+ Iir_Kind_Record_Element_Constraint => 242,
+ Iir_Kind_Array_Element_Resolution => 244,
+ Iir_Kind_Record_Resolution => 245,
+ Iir_Kind_Record_Element_Resolution => 248,
+ Iir_Kind_Break_Element => 252,
+ Iir_Kind_Attribute_Specification => 260,
+ Iir_Kind_Disconnection_Specification => 266,
+ Iir_Kind_Step_Limit_Specification => 272,
+ Iir_Kind_Configuration_Specification => 278,
+ Iir_Kind_Access_Type_Definition => 286,
+ Iir_Kind_Incomplete_Type_Definition => 294,
+ Iir_Kind_Interface_Type_Definition => 301,
+ Iir_Kind_File_Type_Definition => 308,
+ Iir_Kind_Protected_Type_Declaration => 317,
+ Iir_Kind_Record_Type_Definition => 328,
+ Iir_Kind_Array_Type_Definition => 340,
+ Iir_Kind_Array_Subtype_Definition => 355,
+ Iir_Kind_Record_Subtype_Definition => 368,
+ Iir_Kind_Access_Subtype_Definition => 376,
+ Iir_Kind_Physical_Subtype_Definition => 386,
+ Iir_Kind_Floating_Subtype_Definition => 397,
+ Iir_Kind_Integer_Subtype_Definition => 407,
+ Iir_Kind_Enumeration_Subtype_Definition => 417,
+ Iir_Kind_Enumeration_Type_Definition => 428,
+ Iir_Kind_Integer_Type_Definition => 436,
+ Iir_Kind_Floating_Type_Definition => 444,
+ Iir_Kind_Physical_Type_Definition => 455,
+ Iir_Kind_Range_Expression => 463,
+ Iir_Kind_Protected_Type_Body => 470,
+ Iir_Kind_Wildcard_Type_Definition => 475,
+ Iir_Kind_Subtype_Definition => 482,
+ Iir_Kind_Scalar_Nature_Definition => 490,
+ Iir_Kind_Record_Nature_Definition => 502,
+ Iir_Kind_Array_Nature_Definition => 515,
+ Iir_Kind_Array_Subnature_Definition => 530,
+ Iir_Kind_Overload_List => 531,
+ Iir_Kind_Entity_Declaration => 544,
+ Iir_Kind_Configuration_Declaration => 553,
+ Iir_Kind_Context_Declaration => 559,
+ Iir_Kind_Package_Declaration => 574,
+ Iir_Kind_Package_Instantiation_Declaration => 588,
+ Iir_Kind_Vmode_Declaration => 599,
+ Iir_Kind_Vprop_Declaration => 610,
+ Iir_Kind_Vunit_Declaration => 622,
+ Iir_Kind_Package_Body => 630,
+ Iir_Kind_Architecture_Body => 643,
+ Iir_Kind_Type_Declaration => 650,
+ Iir_Kind_Anonymous_Type_Declaration => 656,
+ Iir_Kind_Subtype_Declaration => 663,
+ Iir_Kind_Nature_Declaration => 669,
+ Iir_Kind_Subnature_Declaration => 676,
+ Iir_Kind_Package_Header => 678,
+ Iir_Kind_Unit_Declaration => 687,
+ Iir_Kind_Library_Declaration => 694,
+ Iir_Kind_Component_Declaration => 704,
+ Iir_Kind_Attribute_Declaration => 711,
+ Iir_Kind_Group_Template_Declaration => 717,
+ Iir_Kind_Group_Declaration => 724,
+ Iir_Kind_Element_Declaration => 731,
+ Iir_Kind_Nature_Element_Declaration => 738,
+ Iir_Kind_Non_Object_Alias_Declaration => 746,
+ Iir_Kind_Psl_Declaration => 754,
+ Iir_Kind_Psl_Endpoint_Declaration => 768,
+ Iir_Kind_Enumeration_Literal => 779,
+ Iir_Kind_Function_Declaration => 804,
+ Iir_Kind_Procedure_Declaration => 828,
+ Iir_Kind_Function_Body => 838,
+ Iir_Kind_Procedure_Body => 849,
+ Iir_Kind_Terminal_Declaration => 858,
+ Iir_Kind_Object_Alias_Declaration => 869,
+ Iir_Kind_Free_Quantity_Declaration => 881,
+ Iir_Kind_Spectrum_Quantity_Declaration => 894,
+ Iir_Kind_Noise_Quantity_Declaration => 906,
+ Iir_Kind_Across_Quantity_Declaration => 922,
+ Iir_Kind_Through_Quantity_Declaration => 938,
+ Iir_Kind_File_Declaration => 952,
+ Iir_Kind_Guard_Signal_Declaration => 965,
+ Iir_Kind_Signal_Declaration => 982,
+ Iir_Kind_Variable_Declaration => 995,
+ Iir_Kind_Constant_Declaration => 1009,
+ Iir_Kind_Iterator_Declaration => 1020,
+ Iir_Kind_Interface_Constant_Declaration => 1036,
+ Iir_Kind_Interface_Variable_Declaration => 1052,
+ Iir_Kind_Interface_Signal_Declaration => 1073,
+ Iir_Kind_Interface_File_Declaration => 1089,
+ Iir_Kind_Interface_Quantity_Declaration => 1105,
+ Iir_Kind_Interface_Terminal_Declaration => 1117,
+ Iir_Kind_Interface_Type_Declaration => 1127,
+ Iir_Kind_Interface_Package_Declaration => 1139,
+ Iir_Kind_Interface_Function_Declaration => 1156,
+ Iir_Kind_Interface_Procedure_Declaration => 1169,
+ Iir_Kind_Anonymous_Signal_Declaration => 1178,
+ Iir_Kind_Signal_Attribute_Declaration => 1181,
+ Iir_Kind_Identity_Operator => 1185,
+ Iir_Kind_Negation_Operator => 1189,
+ Iir_Kind_Absolute_Operator => 1193,
+ Iir_Kind_Not_Operator => 1197,
+ Iir_Kind_Implicit_Condition_Operator => 1201,
+ Iir_Kind_Condition_Operator => 1205,
+ Iir_Kind_Reduction_And_Operator => 1209,
+ Iir_Kind_Reduction_Or_Operator => 1213,
+ Iir_Kind_Reduction_Nand_Operator => 1217,
+ Iir_Kind_Reduction_Nor_Operator => 1221,
+ Iir_Kind_Reduction_Xor_Operator => 1225,
+ Iir_Kind_Reduction_Xnor_Operator => 1229,
+ Iir_Kind_And_Operator => 1234,
+ Iir_Kind_Or_Operator => 1239,
+ Iir_Kind_Nand_Operator => 1244,
+ Iir_Kind_Nor_Operator => 1249,
+ Iir_Kind_Xor_Operator => 1254,
+ Iir_Kind_Xnor_Operator => 1259,
+ Iir_Kind_Equality_Operator => 1264,
+ Iir_Kind_Inequality_Operator => 1269,
+ Iir_Kind_Less_Than_Operator => 1274,
+ Iir_Kind_Less_Than_Or_Equal_Operator => 1279,
+ Iir_Kind_Greater_Than_Operator => 1284,
+ Iir_Kind_Greater_Than_Or_Equal_Operator => 1289,
+ Iir_Kind_Match_Equality_Operator => 1294,
+ Iir_Kind_Match_Inequality_Operator => 1299,
+ Iir_Kind_Match_Less_Than_Operator => 1304,
+ Iir_Kind_Match_Less_Than_Or_Equal_Operator => 1309,
+ Iir_Kind_Match_Greater_Than_Operator => 1314,
+ Iir_Kind_Match_Greater_Than_Or_Equal_Operator => 1319,
+ Iir_Kind_Sll_Operator => 1324,
+ Iir_Kind_Sla_Operator => 1329,
+ Iir_Kind_Srl_Operator => 1334,
+ Iir_Kind_Sra_Operator => 1339,
+ Iir_Kind_Rol_Operator => 1344,
+ Iir_Kind_Ror_Operator => 1349,
+ Iir_Kind_Addition_Operator => 1354,
+ Iir_Kind_Substraction_Operator => 1359,
+ Iir_Kind_Concatenation_Operator => 1364,
+ Iir_Kind_Multiplication_Operator => 1369,
+ Iir_Kind_Division_Operator => 1374,
+ Iir_Kind_Modulus_Operator => 1379,
+ Iir_Kind_Remainder_Operator => 1384,
+ Iir_Kind_Exponentiation_Operator => 1389,
+ Iir_Kind_Function_Call => 1397,
+ Iir_Kind_Aggregate => 1404,
+ Iir_Kind_Parenthesis_Expression => 1407,
+ Iir_Kind_Qualified_Expression => 1411,
+ Iir_Kind_Type_Conversion => 1416,
+ Iir_Kind_Allocator_By_Expression => 1420,
+ Iir_Kind_Allocator_By_Subtype => 1425,
+ Iir_Kind_Selected_Element => 1433,
+ Iir_Kind_Dereference => 1438,
+ Iir_Kind_Implicit_Dereference => 1443,
+ Iir_Kind_Slice_Name => 1450,
+ Iir_Kind_Indexed_Name => 1456,
+ Iir_Kind_Psl_Expression => 1458,
+ Iir_Kind_Sensitized_Process_Statement => 1479,
+ Iir_Kind_Process_Statement => 1499,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1512,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1525,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1539,
+ Iir_Kind_Concurrent_Assertion_Statement => 1547,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1554,
+ Iir_Kind_Concurrent_Break_Statement => 1562,
+ Iir_Kind_Psl_Assert_Directive => 1575,
+ Iir_Kind_Psl_Assume_Directive => 1586,
+ Iir_Kind_Psl_Cover_Directive => 1598,
+ Iir_Kind_Psl_Restrict_Directive => 1609,
+ Iir_Kind_Block_Statement => 1623,
+ Iir_Kind_If_Generate_Statement => 1634,
+ Iir_Kind_Case_Generate_Statement => 1643,
+ Iir_Kind_For_Generate_Statement => 1652,
+ Iir_Kind_Component_Instantiation_Statement => 1663,
+ Iir_Kind_Psl_Default_Clock => 1667,
+ Iir_Kind_Generate_Statement_Body => 1678,
+ Iir_Kind_If_Generate_Else_Clause => 1684,
+ Iir_Kind_Simple_Simultaneous_Statement => 1691,
+ Iir_Kind_Simultaneous_Procedural_Statement => 1699,
+ Iir_Kind_Simultaneous_If_Statement => 1708,
+ Iir_Kind_Simultaneous_Elsif => 1714,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1725,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1736,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1748,
+ Iir_Kind_Null_Statement => 1752,
+ Iir_Kind_Assertion_Statement => 1759,
+ Iir_Kind_Report_Statement => 1765,
+ Iir_Kind_Wait_Statement => 1773,
+ Iir_Kind_Variable_Assignment_Statement => 1780,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1787,
+ Iir_Kind_Return_Statement => 1793,
+ Iir_Kind_For_Loop_Statement => 1804,
+ Iir_Kind_While_Loop_Statement => 1815,
+ Iir_Kind_Next_Statement => 1822,
+ Iir_Kind_Exit_Statement => 1829,
+ Iir_Kind_Case_Statement => 1837,
+ Iir_Kind_Procedure_Call_Statement => 1843,
+ Iir_Kind_Break_Statement => 1850,
+ Iir_Kind_If_Statement => 1860,
+ Iir_Kind_Elsif => 1866,
+ Iir_Kind_Character_Literal => 1874,
+ Iir_Kind_Simple_Name => 1882,
+ Iir_Kind_Selected_Name => 1891,
+ Iir_Kind_Operator_Symbol => 1897,
+ Iir_Kind_Reference_Name => 1902,
+ Iir_Kind_External_Constant_Name => 1910,
+ Iir_Kind_External_Signal_Name => 1918,
+ Iir_Kind_External_Variable_Name => 1927,
+ Iir_Kind_Selected_By_All_Name => 1933,
+ Iir_Kind_Parenthesis_Name => 1938,
+ Iir_Kind_Package_Pathname => 1942,
+ Iir_Kind_Absolute_Pathname => 1943,
+ Iir_Kind_Relative_Pathname => 1944,
+ Iir_Kind_Pathname_Element => 1949,
+ Iir_Kind_Base_Attribute => 1951,
+ Iir_Kind_Subtype_Attribute => 1956,
+ Iir_Kind_Element_Attribute => 1961,
+ Iir_Kind_Across_Attribute => 1966,
+ Iir_Kind_Through_Attribute => 1971,
+ Iir_Kind_Nature_Reference_Attribute => 1975,
+ Iir_Kind_Left_Type_Attribute => 1980,
+ Iir_Kind_Right_Type_Attribute => 1985,
+ Iir_Kind_High_Type_Attribute => 1990,
+ Iir_Kind_Low_Type_Attribute => 1995,
+ Iir_Kind_Ascending_Type_Attribute => 2000,
+ Iir_Kind_Image_Attribute => 2006,
+ Iir_Kind_Value_Attribute => 2012,
+ Iir_Kind_Pos_Attribute => 2018,
+ Iir_Kind_Val_Attribute => 2024,
+ Iir_Kind_Succ_Attribute => 2030,
+ Iir_Kind_Pred_Attribute => 2036,
+ Iir_Kind_Leftof_Attribute => 2042,
+ Iir_Kind_Rightof_Attribute => 2048,
+ Iir_Kind_Signal_Slew_Attribute => 2056,
+ Iir_Kind_Quantity_Slew_Attribute => 2064,
+ Iir_Kind_Ramp_Attribute => 2072,
+ Iir_Kind_Dot_Attribute => 2079,
+ Iir_Kind_Integ_Attribute => 2086,
+ Iir_Kind_Above_Attribute => 2094,
+ Iir_Kind_Delayed_Attribute => 2103,
+ Iir_Kind_Stable_Attribute => 2112,
+ Iir_Kind_Quiet_Attribute => 2121,
+ Iir_Kind_Transaction_Attribute => 2130,
+ Iir_Kind_Event_Attribute => 2134,
+ Iir_Kind_Active_Attribute => 2138,
+ Iir_Kind_Last_Event_Attribute => 2142,
+ Iir_Kind_Last_Active_Attribute => 2146,
+ Iir_Kind_Last_Value_Attribute => 2150,
+ Iir_Kind_Driving_Attribute => 2154,
+ Iir_Kind_Driving_Value_Attribute => 2158,
+ Iir_Kind_Behavior_Attribute => 2158,
+ Iir_Kind_Structure_Attribute => 2158,
+ Iir_Kind_Simple_Name_Attribute => 2165,
+ Iir_Kind_Instance_Name_Attribute => 2170,
+ Iir_Kind_Path_Name_Attribute => 2175,
+ Iir_Kind_Left_Array_Attribute => 2182,
+ Iir_Kind_Right_Array_Attribute => 2189,
+ Iir_Kind_High_Array_Attribute => 2196,
+ Iir_Kind_Low_Array_Attribute => 2203,
+ Iir_Kind_Length_Array_Attribute => 2210,
+ Iir_Kind_Ascending_Array_Attribute => 2217,
+ Iir_Kind_Range_Array_Attribute => 2224,
+ Iir_Kind_Reverse_Range_Array_Attribute => 2231,
+ Iir_Kind_Attribute_Name => 2240
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -5356,8 +5796,12 @@ package body Vhdl.Nodes_Meta is
return Get_Incomplete_Type_Declaration (N);
when Field_Interface_Type_Subprograms =>
return Get_Interface_Type_Subprograms (N);
+ when Field_Nature_Definition =>
+ return Get_Nature_Definition (N);
when Field_Nature =>
return Get_Nature (N);
+ when Field_Subnature_Indication =>
+ return Get_Subnature_Indication (N);
when Field_Base_Name =>
return Get_Base_Name (N);
when Field_Interface_Declaration_Chain =>
@@ -5366,6 +5810,8 @@ package body Vhdl.Nodes_Meta is
return Get_Subprogram_Specification (N);
when Field_Sequential_Statement_Chain =>
return Get_Sequential_Statement_Chain (N);
+ when Field_Simultaneous_Statement_Chain =>
+ return Get_Simultaneous_Statement_Chain (N);
when Field_Subprogram_Body =>
return Get_Subprogram_Body (N);
when Field_Return_Type =>
@@ -5418,16 +5864,28 @@ package body Vhdl.Nodes_Meta is
return Get_Right_Limit_Expr (N);
when Field_Base_Type =>
return Get_Base_Type (N);
+ when Field_Base_Nature =>
+ return Get_Base_Nature (N);
when Field_Resolution_Indication =>
return Get_Resolution_Indication (N);
when Field_Record_Element_Resolution_Chain =>
return Get_Record_Element_Resolution_Chain (N);
when Field_Tolerance =>
return Get_Tolerance (N);
+ when Field_Plus_Terminal_Name =>
+ return Get_Plus_Terminal_Name (N);
+ when Field_Minus_Terminal_Name =>
+ return Get_Minus_Terminal_Name (N);
when Field_Plus_Terminal =>
return Get_Plus_Terminal (N);
when Field_Minus_Terminal =>
return Get_Minus_Terminal (N);
+ when Field_Magnitude_Expression =>
+ return Get_Magnitude_Expression (N);
+ when Field_Phase_Expression =>
+ return Get_Phase_Expression (N);
+ when Field_Power_Expression =>
+ return Get_Power_Expression (N);
when Field_Simultaneous_Left =>
return Get_Simultaneous_Left (N);
when Field_Simultaneous_Right =>
@@ -5436,6 +5894,10 @@ package body Vhdl.Nodes_Meta is
return Get_Element_Subtype_Indication (N);
when Field_Element_Subtype =>
return Get_Element_Subtype (N);
+ when Field_Element_Subnature_Indication =>
+ return Get_Element_Subnature_Indication (N);
+ when Field_Element_Subnature =>
+ return Get_Element_Subnature (N);
when Field_Array_Element_Constraint =>
return Get_Array_Element_Constraint (N);
when Field_Owned_Elements_Chain =>
@@ -5448,6 +5910,14 @@ package body Vhdl.Nodes_Meta is
return Get_Reference (N);
when Field_Nature_Declarator =>
return Get_Nature_Declarator (N);
+ when Field_Across_Type_Mark =>
+ return Get_Across_Type_Mark (N);
+ when Field_Through_Type_Mark =>
+ return Get_Through_Type_Mark (N);
+ when Field_Across_Type_Definition =>
+ return Get_Across_Type_Definition (N);
+ when Field_Through_Type_Definition =>
+ return Get_Through_Type_Definition (N);
when Field_Across_Type =>
return Get_Across_Type (N);
when Field_Through_Type =>
@@ -5466,6 +5936,12 @@ package body Vhdl.Nodes_Meta is
return Get_Package_Origin (N);
when Field_Condition_Clause =>
return Get_Condition_Clause (N);
+ when Field_Break_Element =>
+ return Get_Break_Element (N);
+ when Field_Selector_Quantity =>
+ return Get_Selector_Quantity (N);
+ when Field_Break_Quantity =>
+ return Get_Break_Quantity (N);
when Field_Timeout_Clause =>
return Get_Timeout_Clause (N);
when Field_Assertion_Condition =>
@@ -5578,6 +6054,8 @@ package body Vhdl.Nodes_Meta is
return Get_Index_Subtype (N);
when Field_Parameter =>
return Get_Parameter (N);
+ when Field_Parameter_2 =>
+ return Get_Parameter_2 (N);
when Field_Attr_Chain =>
return Get_Attr_Chain (N);
when Field_Signal_Attribute_Declaration =>
@@ -5614,6 +6092,8 @@ package body Vhdl.Nodes_Meta is
return Get_Method_Object (N);
when Field_Subtype_Type_Mark =>
return Get_Subtype_Type_Mark (N);
+ when Field_Subnature_Nature_Mark =>
+ return Get_Subnature_Nature_Mark (N);
when Field_Type_Conversion_Subtype =>
return Get_Type_Conversion_Subtype (N);
when Field_Type_Mark =>
@@ -5758,8 +6238,12 @@ package body Vhdl.Nodes_Meta is
Set_Incomplete_Type_Declaration (N, V);
when Field_Interface_Type_Subprograms =>
Set_Interface_Type_Subprograms (N, V);
+ when Field_Nature_Definition =>
+ Set_Nature_Definition (N, V);
when Field_Nature =>
Set_Nature (N, V);
+ when Field_Subnature_Indication =>
+ Set_Subnature_Indication (N, V);
when Field_Base_Name =>
Set_Base_Name (N, V);
when Field_Interface_Declaration_Chain =>
@@ -5768,6 +6252,8 @@ package body Vhdl.Nodes_Meta is
Set_Subprogram_Specification (N, V);
when Field_Sequential_Statement_Chain =>
Set_Sequential_Statement_Chain (N, V);
+ when Field_Simultaneous_Statement_Chain =>
+ Set_Simultaneous_Statement_Chain (N, V);
when Field_Subprogram_Body =>
Set_Subprogram_Body (N, V);
when Field_Return_Type =>
@@ -5820,16 +6306,28 @@ package body Vhdl.Nodes_Meta is
Set_Right_Limit_Expr (N, V);
when Field_Base_Type =>
Set_Base_Type (N, V);
+ when Field_Base_Nature =>
+ Set_Base_Nature (N, V);
when Field_Resolution_Indication =>
Set_Resolution_Indication (N, V);
when Field_Record_Element_Resolution_Chain =>
Set_Record_Element_Resolution_Chain (N, V);
when Field_Tolerance =>
Set_Tolerance (N, V);
+ when Field_Plus_Terminal_Name =>
+ Set_Plus_Terminal_Name (N, V);
+ when Field_Minus_Terminal_Name =>
+ Set_Minus_Terminal_Name (N, V);
when Field_Plus_Terminal =>
Set_Plus_Terminal (N, V);
when Field_Minus_Terminal =>
Set_Minus_Terminal (N, V);
+ when Field_Magnitude_Expression =>
+ Set_Magnitude_Expression (N, V);
+ when Field_Phase_Expression =>
+ Set_Phase_Expression (N, V);
+ when Field_Power_Expression =>
+ Set_Power_Expression (N, V);
when Field_Simultaneous_Left =>
Set_Simultaneous_Left (N, V);
when Field_Simultaneous_Right =>
@@ -5838,6 +6336,10 @@ package body Vhdl.Nodes_Meta is
Set_Element_Subtype_Indication (N, V);
when Field_Element_Subtype =>
Set_Element_Subtype (N, V);
+ when Field_Element_Subnature_Indication =>
+ Set_Element_Subnature_Indication (N, V);
+ when Field_Element_Subnature =>
+ Set_Element_Subnature (N, V);
when Field_Array_Element_Constraint =>
Set_Array_Element_Constraint (N, V);
when Field_Owned_Elements_Chain =>
@@ -5850,6 +6352,14 @@ package body Vhdl.Nodes_Meta is
Set_Reference (N, V);
when Field_Nature_Declarator =>
Set_Nature_Declarator (N, V);
+ when Field_Across_Type_Mark =>
+ Set_Across_Type_Mark (N, V);
+ when Field_Through_Type_Mark =>
+ Set_Through_Type_Mark (N, V);
+ when Field_Across_Type_Definition =>
+ Set_Across_Type_Definition (N, V);
+ when Field_Through_Type_Definition =>
+ Set_Through_Type_Definition (N, V);
when Field_Across_Type =>
Set_Across_Type (N, V);
when Field_Through_Type =>
@@ -5868,6 +6378,12 @@ package body Vhdl.Nodes_Meta is
Set_Package_Origin (N, V);
when Field_Condition_Clause =>
Set_Condition_Clause (N, V);
+ when Field_Break_Element =>
+ Set_Break_Element (N, V);
+ when Field_Selector_Quantity =>
+ Set_Selector_Quantity (N, V);
+ when Field_Break_Quantity =>
+ Set_Break_Quantity (N, V);
when Field_Timeout_Clause =>
Set_Timeout_Clause (N, V);
when Field_Assertion_Condition =>
@@ -5980,6 +6496,8 @@ package body Vhdl.Nodes_Meta is
Set_Index_Subtype (N, V);
when Field_Parameter =>
Set_Parameter (N, V);
+ when Field_Parameter_2 =>
+ Set_Parameter_2 (N, V);
when Field_Attr_Chain =>
Set_Attr_Chain (N, V);
when Field_Signal_Attribute_Declaration =>
@@ -6016,6 +6534,8 @@ package body Vhdl.Nodes_Meta is
Set_Method_Object (N, V);
when Field_Subtype_Type_Mark =>
Set_Subtype_Type_Mark (N, V);
+ when Field_Subnature_Nature_Mark =>
+ Set_Subnature_Nature_Mark (N, V);
when Field_Type_Conversion_Subtype =>
Set_Type_Conversion_Subtype (N, V);
when Field_Type_Mark =>
@@ -6146,6 +6666,8 @@ package body Vhdl.Nodes_Meta is
return Get_Entity_Name_List (N);
when Field_Signal_List =>
return Get_Signal_List (N);
+ when Field_Quantity_List =>
+ return Get_Quantity_List (N);
when Field_Enumeration_Literal_List =>
return Get_Enumeration_Literal_List (N);
when Field_Group_Constituent_List =>
@@ -6180,6 +6702,8 @@ package body Vhdl.Nodes_Meta is
Set_Entity_Name_List (N, V);
when Field_Signal_List =>
Set_Signal_List (N, V);
+ when Field_Quantity_List =>
+ Set_Quantity_List (N, V);
when Field_Enumeration_Literal_List =>
Set_Enumeration_Literal_List (N, V);
when Field_Group_Constituent_List =>
@@ -6424,6 +6948,8 @@ package body Vhdl.Nodes_Meta is
begin
pragma Assert (Fields_Type (F) = Type_Iir_Staticness);
case F is
+ when Field_Nature_Staticness =>
+ return Get_Nature_Staticness (N);
when Field_Type_Staticness =>
return Get_Type_Staticness (N);
when Field_Expr_Staticness =>
@@ -6442,6 +6968,8 @@ package body Vhdl.Nodes_Meta is
begin
pragma Assert (Fields_Type (F) = Type_Iir_Staticness);
case F is
+ when Field_Nature_Staticness =>
+ Set_Nature_Staticness (N, V);
when Field_Type_Staticness =>
Set_Type_Staticness (N, V);
when Field_Expr_Staticness =>
@@ -7111,6 +7639,11 @@ package body Vhdl.Nodes_Meta is
return K = Iir_Kind_Disconnection_Specification;
end Has_Signal_List;
+ function Has_Quantity_List (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Step_Limit_Specification;
+ end Has_Quantity_List;
+
function Has_Designated_Entity (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Attribute_Value;
@@ -7124,7 +7657,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Association_Element_Open
| Iir_Kind_Association_Element_Package
| Iir_Kind_Association_Element_Type
- | Iir_Kind_Association_Element_Subprogram =>
+ | Iir_Kind_Association_Element_Subprogram
+ | Iir_Kind_Association_Element_Terminal =>
return True;
when others =>
return False;
@@ -7137,7 +7671,8 @@ package body Vhdl.Nodes_Meta is
when Iir_Kind_Association_Element_By_Expression
| Iir_Kind_Association_Element_Package
| Iir_Kind_Association_Element_Type
- | Iir_Kind_Association_Element_Subprogram =>
+ | Iir_Kind_Association_Element_Subprogram
+ | Iir_Kind_Association_Element_Terminal =>
return True;
when others =>
return False;
@@ -7162,7 +7697,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Association_Element_Open
| Iir_Kind_Association_Element_Package
| Iir_Kind_Association_Element_Type
- | Iir_Kind_Association_Element_Subprogram =>
+ | Iir_Kind_Association_Element_Subprogram
+ | Iir_Kind_Association_Element_Terminal =>
return True;
when others =>
return False;
@@ -7177,7 +7713,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Association_Element_Open
| Iir_Kind_Association_Element_Package
| Iir_Kind_Association_Element_Type
- | Iir_Kind_Association_Element_Subprogram =>
+ | Iir_Kind_Association_Element_Subprogram
+ | Iir_Kind_Association_Element_Terminal =>
return True;
when others =>
return False;
@@ -7203,6 +7740,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Anonymous_Signal_Declaration =>
return True;
when others =>
@@ -7349,7 +7887,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
| Iir_Kind_Block_Statement
- | Iir_Kind_Generate_Statement_Body =>
+ | Iir_Kind_Generate_Statement_Body
+ | Iir_Kind_Simultaneous_Procedural_Statement =>
return True;
when others =>
return False;
@@ -7504,6 +8043,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Association_Element_Package
| Iir_Kind_Association_Element_Type
| Iir_Kind_Association_Element_Subprogram
+ | Iir_Kind_Association_Element_Terminal
| Iir_Kind_Choice_By_Range
| Iir_Kind_Choice_By_Expression
| Iir_Kind_Choice_By_Others
@@ -7514,8 +8054,10 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Entity_Class
| Iir_Kind_Record_Element_Constraint
| Iir_Kind_Record_Element_Resolution
+ | Iir_Kind_Break_Element
| Iir_Kind_Attribute_Specification
| Iir_Kind_Disconnection_Specification
+ | Iir_Kind_Step_Limit_Specification
| Iir_Kind_Configuration_Specification
| Iir_Kind_Protected_Type_Body
| Iir_Kind_Package_Declaration
@@ -7535,15 +8077,17 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Non_Object_Alias_Declaration
| Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Terminal_Declaration
- | Iir_Kind_Free_Quantity_Declaration
- | Iir_Kind_Across_Quantity_Declaration
- | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_Function_Declaration
| Iir_Kind_Procedure_Declaration
| Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body
+ | Iir_Kind_Terminal_Declaration
| Iir_Kind_Object_Alias_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Signal_Declaration
| Iir_Kind_Variable_Declaration
@@ -7553,6 +8097,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_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
@@ -7566,6 +8112,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_Psl_Assert_Directive
| Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
@@ -7577,6 +8124,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_Psl_Default_Clock
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
@@ -7593,6 +8141,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Exit_Statement
| Iir_Kind_Case_Statement
| Iir_Kind_Procedure_Call_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement
| Iir_Kind_External_Constant_Name
| Iir_Kind_External_Signal_Name
@@ -7653,12 +8202,14 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Attribute_Declaration
| Iir_Kind_Element_Declaration
| Iir_Kind_Psl_Endpoint_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_Object_Alias_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -7669,6 +8220,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Interface_Type_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Anonymous_Signal_Declaration
@@ -7743,6 +8295,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Base_Attribute
| Iir_Kind_Subtype_Attribute
| Iir_Kind_Element_Attribute
+ | Iir_Kind_Across_Attribute
+ | Iir_Kind_Through_Attribute
| Iir_Kind_Left_Type_Attribute
| Iir_Kind_Right_Type_Attribute
| Iir_Kind_High_Type_Attribute
@@ -7756,6 +8310,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Pred_Attribute
| Iir_Kind_Leftof_Attribute
| Iir_Kind_Rightof_Attribute
+ | Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
@@ -7790,8 +8350,10 @@ package body Vhdl.Nodes_Meta is
case K is
when Iir_Kind_Subtype_Declaration
| Iir_Kind_Element_Declaration
- | Iir_Kind_Free_Quantity_Declaration
| Iir_Kind_Object_Alias_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Signal_Declaration
| Iir_Kind_Variable_Declaration
@@ -7801,6 +8363,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Allocator_By_Subtype
| Iir_Kind_External_Constant_Name
| Iir_Kind_External_Signal_Name
@@ -7848,18 +8411,39 @@ package body Vhdl.Nodes_Meta is
return K = Iir_Kind_Interface_Type_Declaration;
end Has_Interface_Type_Subprograms;
+ function Has_Nature_Definition (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Nature_Declaration;
+ end Has_Nature_Definition;
+
function Has_Nature (K : Iir_Kind) return Boolean is
begin
case K is
when Iir_Kind_Nature_Declaration
| Iir_Kind_Subnature_Declaration
- | Iir_Kind_Terminal_Declaration =>
+ | Iir_Kind_Nature_Element_Declaration
+ | Iir_Kind_Terminal_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration
+ | Iir_Kind_Nature_Reference_Attribute =>
return True;
when others =>
return False;
end case;
end Has_Nature;
+ function Has_Subnature_Indication (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Subnature_Declaration
+ | Iir_Kind_Nature_Element_Declaration
+ | Iir_Kind_Terminal_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Subnature_Indication;
+
function Has_Mode (K : Iir_Kind) return Boolean is
begin
case K is
@@ -7867,7 +8451,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Constant_Declaration
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
- | Iir_Kind_Interface_File_Declaration =>
+ | Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration =>
return True;
when others =>
return False;
@@ -7915,6 +8500,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Selected_By_All_Name
| Iir_Kind_Subtype_Attribute
| Iir_Kind_Element_Attribute
+ | Iir_Kind_Across_Attribute
+ | Iir_Kind_Through_Attribute
+ | Iir_Kind_Nature_Reference_Attribute
| Iir_Kind_Left_Type_Attribute
| Iir_Kind_Right_Type_Attribute
| Iir_Kind_High_Type_Attribute
@@ -7928,6 +8516,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Pred_Attribute
| Iir_Kind_Leftof_Attribute
| Iir_Kind_Rightof_Attribute
+ | Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
@@ -7981,6 +8575,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Procedure_Body
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement
| Iir_Kind_For_Loop_Statement
| Iir_Kind_While_Loop_Statement
| Iir_Kind_If_Statement
@@ -7991,6 +8586,17 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Sequential_Statement_Chain;
+ function Has_Simultaneous_Statement_Chain (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Simultaneous_If_Statement
+ | Iir_Kind_Simultaneous_Elsif =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Simultaneous_Statement_Chain;
+
function Has_Subprogram_Body (K : Iir_Kind) return Boolean is
begin
case K is
@@ -8087,6 +8693,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Anonymous_Signal_Declaration =>
return True;
when others =>
@@ -8163,7 +8770,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
| Iir_Kind_Block_Statement
- | Iir_Kind_Generate_Statement_Body =>
+ | Iir_Kind_Generate_Statement_Body
+ | Iir_Kind_Simultaneous_Procedural_Statement =>
return True;
when others =>
return False;
@@ -8184,7 +8792,8 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Record_Element_Constraint
- | Iir_Kind_Element_Declaration =>
+ | Iir_Kind_Element_Declaration
+ | Iir_Kind_Nature_Element_Declaration =>
return True;
when others =>
return False;
@@ -8318,17 +8927,20 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Group_Template_Declaration
| Iir_Kind_Group_Declaration
| Iir_Kind_Element_Declaration
+ | Iir_Kind_Nature_Element_Declaration
| Iir_Kind_Non_Object_Alias_Declaration
| Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Terminal_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_Procedure_Declaration
+ | Iir_Kind_Terminal_Declaration
| Iir_Kind_Object_Alias_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -8339,6 +8951,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_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
@@ -8352,6 +8966,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_Psl_Assert_Directive
| Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
@@ -8362,8 +8977,10 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_For_Generate_Statement
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_Psl_Default_Clock
- | Iir_Kind_Simple_Simultaneous_Statement
| Iir_Kind_Generate_Statement_Body
+ | Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
@@ -8380,6 +8997,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Exit_Statement
| Iir_Kind_Case_Statement
| Iir_Kind_Procedure_Call_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement
| Iir_Kind_Character_Literal
| Iir_Kind_Simple_Name
@@ -8404,6 +9022,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_Psl_Assert_Directive
| Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
@@ -8415,6 +9034,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_Psl_Default_Clock
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
@@ -8431,6 +9052,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Exit_Statement
| Iir_Kind_Case_Statement
| Iir_Kind_Procedure_Call_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement =>
return True;
when others =>
@@ -8462,17 +9084,20 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Group_Template_Declaration
| Iir_Kind_Group_Declaration
| Iir_Kind_Element_Declaration
+ | Iir_Kind_Nature_Element_Declaration
| Iir_Kind_Non_Object_Alias_Declaration
| Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Terminal_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_Procedure_Declaration
+ | Iir_Kind_Terminal_Declaration
| Iir_Kind_Object_Alias_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -8483,6 +9108,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_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
@@ -8494,6 +9121,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_Psl_Assert_Directive
| Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
@@ -8503,8 +9131,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Case_Generate_Statement
| Iir_Kind_For_Generate_Statement
| Iir_Kind_Component_Instantiation_Statement
- | Iir_Kind_Simple_Simultaneous_Statement
| Iir_Kind_If_Generate_Else_Clause
+ | Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
@@ -8521,6 +9150,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Exit_Statement
| Iir_Kind_Case_Statement
| Iir_Kind_Procedure_Call_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement =>
return True;
when others =>
@@ -8601,6 +9231,19 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Base_Type;
+ function Has_Base_Nature (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Scalar_Nature_Definition
+ | Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Base_Nature;
+
function Has_Resolution_Indication (K : Iir_Kind) return Boolean is
begin
case K is
@@ -8632,6 +9275,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Record_Subtype_Definition
| Iir_Kind_Floating_Subtype_Definition
| Iir_Kind_Subtype_Definition
+ | Iir_Kind_Array_Subnature_Definition
| Iir_Kind_Across_Quantity_Declaration
| Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_Simple_Simultaneous_Statement =>
@@ -8641,6 +9285,28 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Tolerance;
+ function Has_Plus_Terminal_Name (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Plus_Terminal_Name;
+
+ function Has_Minus_Terminal_Name (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Minus_Terminal_Name;
+
function Has_Plus_Terminal (K : Iir_Kind) return Boolean is
begin
case K is
@@ -8663,6 +9329,21 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Minus_Terminal;
+ function Has_Magnitude_Expression (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Spectrum_Quantity_Declaration;
+ end Has_Magnitude_Expression;
+
+ function Has_Phase_Expression (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Spectrum_Quantity_Declaration;
+ end Has_Phase_Expression;
+
+ function Has_Power_Expression (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Noise_Quantity_Declaration;
+ end Has_Power_Expression;
+
function Has_Simultaneous_Left (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Simple_Simultaneous_Statement;
@@ -8688,6 +9369,19 @@ package body Vhdl.Nodes_Meta is
return K = Iir_Kind_Enumeration_Type_Definition;
end Has_Is_Character_Type;
+ function Has_Nature_Staticness (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Scalar_Nature_Definition
+ | Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Nature_Staticness;
+
function Has_Type_Staticness (K : Iir_Kind) return Boolean is
begin
case K is
@@ -8712,7 +9406,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Physical_Type_Definition
| Iir_Kind_Wildcard_Type_Definition
| Iir_Kind_Subtype_Attribute
- | Iir_Kind_Element_Attribute =>
+ | Iir_Kind_Element_Attribute
+ | Iir_Kind_Across_Attribute
+ | Iir_Kind_Through_Attribute =>
return True;
when others =>
return False;
@@ -8725,7 +9421,10 @@ package body Vhdl.Nodes_Meta is
when Iir_Kind_Record_Type_Definition
| Iir_Kind_Array_Type_Definition
| Iir_Kind_Array_Subtype_Definition
- | Iir_Kind_Record_Subtype_Definition =>
+ | Iir_Kind_Record_Subtype_Definition
+ | Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
return True;
when others =>
return False;
@@ -8736,7 +9435,9 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Array_Type_Definition
- | Iir_Kind_Array_Subtype_Definition =>
+ | Iir_Kind_Array_Subtype_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
return True;
when others =>
return False;
@@ -8746,7 +9447,13 @@ package body Vhdl.Nodes_Meta is
function Has_Index_Subtype_Definition_List (K : Iir_Kind)
return Boolean is
begin
- return K = Iir_Kind_Array_Type_Definition;
+ case K is
+ when Iir_Kind_Array_Type_Definition
+ | Iir_Kind_Array_Nature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Index_Subtype_Definition_List;
function Has_Element_Subtype_Indication (K : Iir_Kind) return Boolean is
@@ -8771,21 +9478,50 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Element_Subtype;
+ function Has_Element_Subnature_Indication (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Array_Nature_Definition;
+ end Has_Element_Subnature_Indication;
+
+ function Has_Element_Subnature (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Element_Subnature;
+
function Has_Index_Constraint_List (K : Iir_Kind) return Boolean is
begin
- return K = Iir_Kind_Array_Subtype_Definition;
+ case K is
+ when Iir_Kind_Array_Subtype_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Index_Constraint_List;
function Has_Array_Element_Constraint (K : Iir_Kind) return Boolean is
begin
- return K = Iir_Kind_Array_Subtype_Definition;
+ case K is
+ when Iir_Kind_Array_Subtype_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Array_Element_Constraint;
function Has_Elements_Declaration_List (K : Iir_Kind) return Boolean is
begin
case K is
when Iir_Kind_Record_Type_Definition
- | Iir_Kind_Record_Subtype_Definition =>
+ | Iir_Kind_Record_Subtype_Definition
+ | Iir_Kind_Record_Nature_Definition =>
return True;
when others =>
return False;
@@ -8832,17 +9568,75 @@ package body Vhdl.Nodes_Meta is
function Has_Nature_Declarator (K : Iir_Kind) return Boolean is
begin
- return K = Iir_Kind_Scalar_Nature_Definition;
+ case K is
+ when Iir_Kind_Scalar_Nature_Definition
+ | Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Nature_Declarator;
- function Has_Across_Type (K : Iir_Kind) return Boolean is
+ function Has_Across_Type_Mark (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Scalar_Nature_Definition;
+ end Has_Across_Type_Mark;
+
+ function Has_Through_Type_Mark (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Scalar_Nature_Definition;
+ end Has_Through_Type_Mark;
+
+ function Has_Across_Type_Definition (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Across_Type_Definition;
+
+ function Has_Through_Type_Definition (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Through_Type_Definition;
+
+ function Has_Across_Type (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Scalar_Nature_Definition
+ | Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Across_Type;
function Has_Through_Type (K : Iir_Kind) return Boolean is
begin
- return K = Iir_Kind_Scalar_Nature_Definition;
+ case K is
+ when Iir_Kind_Scalar_Nature_Definition
+ | Iir_Kind_Record_Nature_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
+ return True;
+ when others =>
+ return False;
+ end case;
end Has_Through_Type;
function Has_Target (K : Iir_Kind) return Boolean is
@@ -8920,6 +9714,7 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Sensitized_Process_Statement
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_Wait_Statement =>
return True;
when others =>
@@ -8948,6 +9743,27 @@ package body Vhdl.Nodes_Meta is
return K = Iir_Kind_Wait_Statement;
end Has_Condition_Clause;
+ function Has_Break_Element (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Concurrent_Break_Statement
+ | Iir_Kind_Break_Statement =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Break_Element;
+
+ function Has_Selector_Quantity (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Break_Element;
+ end Has_Selector_Quantity;
+
+ function Has_Break_Quantity (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Break_Element;
+ end Has_Break_Quantity;
+
function Has_Timeout_Clause (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Wait_Statement;
@@ -9189,7 +10005,9 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Array_Type_Definition
- | Iir_Kind_Array_Subtype_Definition =>
+ | Iir_Kind_Array_Subtype_Definition
+ | Iir_Kind_Array_Nature_Definition
+ | Iir_Kind_Array_Subnature_Definition =>
return True;
when others =>
return False;
@@ -9307,8 +10125,10 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Conditional_Expression
+ | Iir_Kind_Break_Element
| Iir_Kind_Attribute_Specification
| Iir_Kind_Disconnection_Specification
+ | Iir_Kind_Step_Limit_Specification
| Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Parenthesis_Expression
| Iir_Kind_Qualified_Expression
@@ -9470,11 +10290,15 @@ package body Vhdl.Nodes_Meta is
case K is
when Iir_Kind_Conditional_Waveform
| Iir_Kind_Conditional_Expression
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_If_Generate_Statement
| Iir_Kind_If_Generate_Else_Clause
+ | Iir_Kind_Simultaneous_If_Statement
+ | Iir_Kind_Simultaneous_Elsif
| Iir_Kind_While_Loop_Statement
| Iir_Kind_Next_Statement
| Iir_Kind_Exit_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement
| Iir_Kind_Elsif =>
return True;
@@ -9486,7 +10310,9 @@ package body Vhdl.Nodes_Meta is
function Has_Else_Clause (K : Iir_Kind) return Boolean is
begin
case K is
- when Iir_Kind_If_Statement
+ when Iir_Kind_Simultaneous_If_Statement
+ | Iir_Kind_Simultaneous_Elsif
+ | Iir_Kind_If_Statement
| Iir_Kind_Elsif =>
return True;
when others =>
@@ -9523,6 +10349,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Record_Element_Constraint
| Iir_Kind_Attribute_Specification
| Iir_Kind_Disconnection_Specification
+ | Iir_Kind_Step_Limit_Specification
| Iir_Kind_Configuration_Specification
| Iir_Kind_Protected_Type_Body
| Iir_Kind_Entity_Declaration
@@ -9546,19 +10373,22 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Group_Template_Declaration
| Iir_Kind_Group_Declaration
| Iir_Kind_Element_Declaration
+ | Iir_Kind_Nature_Element_Declaration
| Iir_Kind_Non_Object_Alias_Declaration
| Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
- | Iir_Kind_Terminal_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_Procedure_Declaration
| Iir_Kind_Function_Body
| Iir_Kind_Procedure_Body
+ | Iir_Kind_Terminal_Declaration
| Iir_Kind_Object_Alias_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -9569,6 +10399,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_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
@@ -9582,6 +10414,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Concurrent_Assertion_Statement
| Iir_Kind_Concurrent_Procedure_Call_Statement
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_Psl_Assert_Directive
| Iir_Kind_Psl_Assume_Directive
| Iir_Kind_Psl_Cover_Directive
@@ -9592,9 +10425,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_For_Generate_Statement
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_Psl_Default_Clock
- | Iir_Kind_Simple_Simultaneous_Statement
| Iir_Kind_Generate_Statement_Body
| Iir_Kind_If_Generate_Else_Clause
+ | Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_If_Statement
+ | Iir_Kind_Simultaneous_Elsif
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
@@ -9611,6 +10447,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Exit_Statement
| Iir_Kind_Case_Statement
| Iir_Kind_Procedure_Call_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement
| Iir_Kind_Elsif
| Iir_Kind_External_Constant_Name
@@ -9755,11 +10592,13 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Range_Expression
| Iir_Kind_Unit_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
+ | Iir_Kind_Enumeration_Literal
+ | Iir_Kind_Object_Alias_Declaration
| Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
| Iir_Kind_Across_Quantity_Declaration
| Iir_Kind_Through_Quantity_Declaration
- | Iir_Kind_Enumeration_Literal
- | Iir_Kind_Object_Alias_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -9770,6 +10609,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
| Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Identity_Operator
| Iir_Kind_Negation_Operator
@@ -9848,6 +10688,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Pred_Attribute
| Iir_Kind_Leftof_Attribute
| Iir_Kind_Rightof_Attribute
+ | Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
@@ -10030,11 +10876,14 @@ package body Vhdl.Nodes_Meta is
when Iir_Kind_Attribute_Value
| Iir_Kind_Unit_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
+ | Iir_Kind_Enumeration_Literal
+ | Iir_Kind_Terminal_Declaration
+ | Iir_Kind_Object_Alias_Declaration
| Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
| Iir_Kind_Across_Quantity_Declaration
| Iir_Kind_Through_Quantity_Declaration
- | Iir_Kind_Enumeration_Literal
- | Iir_Kind_Object_Alias_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -10045,6 +10894,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration
| Iir_Kind_Function_Call
| Iir_Kind_Selected_Element
@@ -10060,6 +10911,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_External_Variable_Name
| Iir_Kind_Subtype_Attribute
| Iir_Kind_Element_Attribute
+ | Iir_Kind_Across_Attribute
+ | Iir_Kind_Through_Attribute
+ | Iir_Kind_Nature_Reference_Attribute
| Iir_Kind_Left_Type_Attribute
| Iir_Kind_Right_Type_Attribute
| Iir_Kind_High_Type_Attribute
@@ -10073,6 +10927,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Pred_Attribute
| Iir_Kind_Leftof_Attribute
| Iir_Kind_Rightof_Attribute
+ | Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
@@ -10118,6 +10978,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Base_Attribute
| Iir_Kind_Subtype_Attribute
| Iir_Kind_Element_Attribute
+ | Iir_Kind_Across_Attribute
+ | Iir_Kind_Through_Attribute
+ | Iir_Kind_Nature_Reference_Attribute
| Iir_Kind_Left_Type_Attribute
| Iir_Kind_Right_Type_Attribute
| Iir_Kind_High_Type_Attribute
@@ -10131,6 +10994,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Pred_Attribute
| Iir_Kind_Leftof_Attribute
| Iir_Kind_Rightof_Attribute
+ | Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
@@ -10203,7 +11072,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Association_Element_Open
| Iir_Kind_Association_Element_Package
| Iir_Kind_Association_Element_Type
- | Iir_Kind_Association_Element_Subprogram =>
+ | Iir_Kind_Association_Element_Subprogram
+ | Iir_Kind_Association_Element_Terminal =>
return True;
when others =>
return False;
@@ -10248,6 +11118,10 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Pred_Attribute
| Iir_Kind_Leftof_Attribute
| Iir_Kind_Rightof_Attribute
+ | Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Above_Attribute
| Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
@@ -10266,10 +11140,28 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Parameter;
+ function Has_Parameter_2 (K : Iir_Kind) return Boolean is
+ begin
+ case K is
+ when Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute =>
+ return True;
+ when others =>
+ return False;
+ end case;
+ end Has_Parameter_2;
+
function Has_Attr_Chain (K : Iir_Kind) return Boolean is
begin
case K is
- when Iir_Kind_Delayed_Attribute
+ when Iir_Kind_Signal_Slew_Attribute
+ | Iir_Kind_Quantity_Slew_Attribute
+ | Iir_Kind_Ramp_Attribute
+ | Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
+ | Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
| Iir_Kind_Transaction_Attribute =>
@@ -10282,7 +11174,10 @@ package body Vhdl.Nodes_Meta is
function Has_Signal_Attribute_Declaration (K : Iir_Kind) return Boolean is
begin
case K is
- when Iir_Kind_Delayed_Attribute
+ when Iir_Kind_Dot_Attribute
+ | Iir_Kind_Integ_Attribute
+ | Iir_Kind_Above_Attribute
+ | Iir_Kind_Delayed_Attribute
| Iir_Kind_Stable_Attribute
| Iir_Kind_Quiet_Attribute
| Iir_Kind_Transaction_Attribute =>
@@ -10502,6 +11397,11 @@ package body Vhdl.Nodes_Meta is
end case;
end Has_Subtype_Type_Mark;
+ function Has_Subnature_Nature_Mark (K : Iir_Kind) return Boolean is
+ begin
+ return K = Iir_Kind_Array_Subnature_Definition;
+ end Has_Subnature_Nature_Mark;
+
function Has_Type_Conversion_Subtype (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Type_Conversion;
@@ -10511,6 +11411,7 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Disconnection_Specification
+ | Iir_Kind_Step_Limit_Specification
| Iir_Kind_Attribute_Declaration
| Iir_Kind_Qualified_Expression
| Iir_Kind_Type_Conversion =>
@@ -10653,13 +11554,15 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Non_Object_Alias_Declaration
| Iir_Kind_Psl_Declaration
| Iir_Kind_Psl_Endpoint_Declaration
+ | Iir_Kind_Function_Declaration
+ | Iir_Kind_Procedure_Declaration
| Iir_Kind_Terminal_Declaration
+ | Iir_Kind_Object_Alias_Declaration
| Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
| Iir_Kind_Across_Quantity_Declaration
| Iir_Kind_Through_Quantity_Declaration
- | Iir_Kind_Function_Declaration
- | Iir_Kind_Procedure_Declaration
- | Iir_Kind_Object_Alias_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Guard_Signal_Declaration
| Iir_Kind_Signal_Declaration
@@ -10670,6 +11573,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration
| Iir_Kind_Interface_Function_Declaration
| Iir_Kind_Interface_Procedure_Declaration =>
@@ -10686,6 +11591,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Record_Type_Definition
| Iir_Kind_Physical_Type_Definition
| Iir_Kind_Protected_Type_Body
+ | Iir_Kind_Record_Nature_Definition
| Iir_Kind_Entity_Declaration
| Iir_Kind_Configuration_Declaration
| Iir_Kind_Context_Declaration
@@ -10704,7 +11610,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Block_Statement
| Iir_Kind_If_Generate_Statement
| Iir_Kind_Case_Generate_Statement
- | Iir_Kind_For_Generate_Statement =>
+ | Iir_Kind_For_Generate_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement =>
return True;
when others =>
return False;
@@ -10718,6 +11625,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Record_Type_Definition
| Iir_Kind_Physical_Type_Definition
| Iir_Kind_Protected_Type_Body
+ | Iir_Kind_Record_Nature_Definition
| Iir_Kind_Entity_Declaration
| Iir_Kind_Configuration_Declaration
| Iir_Kind_Context_Declaration
@@ -10738,6 +11646,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Case_Generate_Statement
| Iir_Kind_For_Generate_Statement
| Iir_Kind_Generate_Statement_Body
+ | Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_If_Statement
+ | Iir_Kind_Simultaneous_Elsif
| Iir_Kind_For_Loop_Statement
| Iir_Kind_While_Loop_Statement
| Iir_Kind_Case_Statement
@@ -10797,7 +11708,8 @@ package body Vhdl.Nodes_Meta is
when Iir_Kind_Component_Declaration
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Process_Statement
- | Iir_Kind_Block_Statement =>
+ | Iir_Kind_Block_Statement
+ | Iir_Kind_Simultaneous_Procedural_Statement =>
return True;
when others =>
return False;
@@ -10849,7 +11761,13 @@ package body Vhdl.Nodes_Meta is
case K is
when Iir_Kind_Library_Clause
| Iir_Kind_Element_Declaration
+ | Iir_Kind_Nature_Element_Declaration
| Iir_Kind_Terminal_Declaration
+ | Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_File_Declaration
| Iir_Kind_Signal_Declaration
| Iir_Kind_Variable_Declaration
@@ -10859,6 +11777,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration =>
return True;
when others =>
@@ -10873,7 +11793,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Constant_Declaration
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
- | Iir_Kind_Interface_File_Declaration =>
+ | Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration =>
return True;
when others =>
return False;
@@ -10886,7 +11808,9 @@ package body Vhdl.Nodes_Meta is
when Iir_Kind_Interface_Constant_Declaration
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
- | Iir_Kind_Interface_File_Declaration =>
+ | Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration =>
return True;
when others =>
return False;
@@ -10933,6 +11857,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Conditional_Expression
| Iir_Kind_Component_Configuration
| Iir_Kind_Disconnection_Specification
+ | Iir_Kind_Step_Limit_Specification
| Iir_Kind_Configuration_Specification
| Iir_Kind_Record_Type_Definition
| Iir_Kind_Record_Subtype_Definition
@@ -10945,7 +11870,12 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Floating_Type_Definition
| Iir_Kind_Physical_Type_Definition
| Iir_Kind_Subtype_Definition
+ | Iir_Kind_Record_Nature_Definition
| Iir_Kind_Free_Quantity_Declaration
+ | Iir_Kind_Spectrum_Quantity_Declaration
+ | Iir_Kind_Noise_Quantity_Declaration
+ | Iir_Kind_Across_Quantity_Declaration
+ | Iir_Kind_Through_Quantity_Declaration
| Iir_Kind_Signal_Declaration
| Iir_Kind_Variable_Declaration
| Iir_Kind_Constant_Declaration
@@ -10953,14 +11883,19 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Interface_Variable_Declaration
| Iir_Kind_Interface_Signal_Declaration
| Iir_Kind_Interface_File_Declaration
+ | Iir_Kind_Interface_Quantity_Declaration
+ | Iir_Kind_Interface_Terminal_Declaration
| Iir_Kind_Interface_Type_Declaration
| Iir_Kind_Anonymous_Signal_Declaration
| Iir_Kind_Sensitized_Process_Statement
| Iir_Kind_Concurrent_Simple_Signal_Assignment
| Iir_Kind_Concurrent_Conditional_Signal_Assignment
| Iir_Kind_Concurrent_Selected_Signal_Assignment
+ | Iir_Kind_Concurrent_Break_Statement
| Iir_Kind_If_Generate_Statement
| Iir_Kind_If_Generate_Else_Clause
+ | Iir_Kind_Simultaneous_If_Statement
+ | Iir_Kind_Simultaneous_Elsif
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
@@ -10970,6 +11905,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_While_Loop_Statement
| Iir_Kind_Next_Statement
| Iir_Kind_Exit_Statement
+ | Iir_Kind_Break_Statement
| Iir_Kind_If_Statement
| Iir_Kind_Elsif =>
return True;