aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/nodes_meta.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/vhdl/nodes_meta.adb')
-rw-r--r--src/vhdl/nodes_meta.adb217
1 files changed, 103 insertions, 114 deletions
diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb
index 23be8afaf..48b00f7c2 100644
--- a/src/vhdl/nodes_meta.adb
+++ b/src/vhdl/nodes_meta.adb
@@ -137,7 +137,6 @@ package body Nodes_Meta is
Field_File_Logical_Name => Type_Iir,
Field_File_Open_Kind => Type_Iir,
Field_Element_Position => Type_Iir_Index32,
- Field_Selected_Element => Type_Iir,
Field_Use_Clause_Chain => Type_Iir,
Field_Context_Reference_Chain => Type_Iir,
Field_Selected_Name => Type_Iir,
@@ -592,8 +591,6 @@ package body Nodes_Meta is
return "file_open_kind";
when Field_Element_Position =>
return "element_position";
- when Field_Selected_Element =>
- return "selected_element";
when Field_Use_Clause_Chain =>
return "use_clause_chain";
when Field_Context_Reference_Chain =>
@@ -1796,8 +1793,6 @@ package body Nodes_Meta is
return Attr_None;
when Field_Element_Position =>
return Attr_None;
- when Field_Selected_Element =>
- return Attr_Ref;
when Field_Use_Clause_Chain =>
return Attr_None;
when Field_Context_Reference_Chain =>
@@ -3642,11 +3637,12 @@ package body Nodes_Meta is
Field_Allocator_Designated_Type,
-- Iir_Kind_Selected_Element
Field_Identifier,
+ Field_Is_Forward_Ref,
Field_Expr_Staticness,
Field_Name_Staticness,
Field_Prefix,
Field_Type,
- Field_Selected_Element,
+ Field_Named_Entity,
Field_Base_Name,
-- Iir_Kind_Dereference
Field_Expr_Staticness,
@@ -4597,103 +4593,103 @@ package body Nodes_Meta is
Iir_Kind_Type_Conversion => 1239,
Iir_Kind_Allocator_By_Expression => 1243,
Iir_Kind_Allocator_By_Subtype => 1248,
- Iir_Kind_Selected_Element => 1255,
- Iir_Kind_Dereference => 1260,
- Iir_Kind_Implicit_Dereference => 1265,
- Iir_Kind_Slice_Name => 1272,
- Iir_Kind_Indexed_Name => 1278,
- Iir_Kind_Psl_Expression => 1280,
- Iir_Kind_Sensitized_Process_Statement => 1301,
- Iir_Kind_Process_Statement => 1321,
- Iir_Kind_Concurrent_Simple_Signal_Assignment => 1333,
- Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1345,
- Iir_Kind_Concurrent_Selected_Signal_Assignment => 1358,
- Iir_Kind_Concurrent_Assertion_Statement => 1366,
- Iir_Kind_Concurrent_Procedure_Call_Statement => 1373,
- Iir_Kind_Psl_Assert_Statement => 1386,
- Iir_Kind_Psl_Cover_Statement => 1399,
- Iir_Kind_Block_Statement => 1412,
- Iir_Kind_If_Generate_Statement => 1423,
- Iir_Kind_Case_Generate_Statement => 1432,
- Iir_Kind_For_Generate_Statement => 1441,
- Iir_Kind_Component_Instantiation_Statement => 1452,
- Iir_Kind_Psl_Default_Clock => 1456,
- Iir_Kind_Simple_Simultaneous_Statement => 1463,
- Iir_Kind_Generate_Statement_Body => 1474,
- Iir_Kind_If_Generate_Else_Clause => 1480,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1490,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1500,
- Iir_Kind_Selected_Waveform_Assignment_Statement => 1511,
- Iir_Kind_Null_Statement => 1515,
- Iir_Kind_Assertion_Statement => 1522,
- Iir_Kind_Report_Statement => 1528,
- Iir_Kind_Wait_Statement => 1536,
- Iir_Kind_Variable_Assignment_Statement => 1543,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1550,
- Iir_Kind_Return_Statement => 1556,
- Iir_Kind_For_Loop_Statement => 1565,
- Iir_Kind_While_Loop_Statement => 1574,
- Iir_Kind_Next_Statement => 1581,
- Iir_Kind_Exit_Statement => 1588,
- Iir_Kind_Case_Statement => 1596,
- Iir_Kind_Procedure_Call_Statement => 1602,
- Iir_Kind_If_Statement => 1612,
- Iir_Kind_Elsif => 1618,
- Iir_Kind_Character_Literal => 1626,
- Iir_Kind_Simple_Name => 1634,
- Iir_Kind_Selected_Name => 1643,
- Iir_Kind_Operator_Symbol => 1649,
- Iir_Kind_Reference_Name => 1652,
- Iir_Kind_External_Constant_Name => 1661,
- Iir_Kind_External_Signal_Name => 1670,
- Iir_Kind_External_Variable_Name => 1679,
- Iir_Kind_Selected_By_All_Name => 1685,
- Iir_Kind_Parenthesis_Name => 1690,
- Iir_Kind_Package_Pathname => 1694,
- Iir_Kind_Absolute_Pathname => 1695,
- Iir_Kind_Relative_Pathname => 1696,
- Iir_Kind_Pathname_Element => 1701,
- Iir_Kind_Base_Attribute => 1703,
- Iir_Kind_Subtype_Attribute => 1708,
- Iir_Kind_Element_Attribute => 1713,
- Iir_Kind_Left_Type_Attribute => 1718,
- Iir_Kind_Right_Type_Attribute => 1723,
- Iir_Kind_High_Type_Attribute => 1728,
- Iir_Kind_Low_Type_Attribute => 1733,
- Iir_Kind_Ascending_Type_Attribute => 1738,
- Iir_Kind_Image_Attribute => 1744,
- Iir_Kind_Value_Attribute => 1750,
- Iir_Kind_Pos_Attribute => 1756,
- Iir_Kind_Val_Attribute => 1762,
- Iir_Kind_Succ_Attribute => 1768,
- Iir_Kind_Pred_Attribute => 1774,
- Iir_Kind_Leftof_Attribute => 1780,
- Iir_Kind_Rightof_Attribute => 1786,
- Iir_Kind_Delayed_Attribute => 1795,
- Iir_Kind_Stable_Attribute => 1804,
- Iir_Kind_Quiet_Attribute => 1813,
- Iir_Kind_Transaction_Attribute => 1822,
- Iir_Kind_Event_Attribute => 1826,
- Iir_Kind_Active_Attribute => 1830,
- Iir_Kind_Last_Event_Attribute => 1834,
- Iir_Kind_Last_Active_Attribute => 1838,
- Iir_Kind_Last_Value_Attribute => 1842,
- Iir_Kind_Driving_Attribute => 1846,
- Iir_Kind_Driving_Value_Attribute => 1850,
- Iir_Kind_Behavior_Attribute => 1850,
- Iir_Kind_Structure_Attribute => 1850,
- Iir_Kind_Simple_Name_Attribute => 1857,
- Iir_Kind_Instance_Name_Attribute => 1862,
- Iir_Kind_Path_Name_Attribute => 1867,
- Iir_Kind_Left_Array_Attribute => 1874,
- Iir_Kind_Right_Array_Attribute => 1881,
- Iir_Kind_High_Array_Attribute => 1888,
- Iir_Kind_Low_Array_Attribute => 1895,
- Iir_Kind_Length_Array_Attribute => 1902,
- Iir_Kind_Ascending_Array_Attribute => 1909,
- Iir_Kind_Range_Array_Attribute => 1916,
- Iir_Kind_Reverse_Range_Array_Attribute => 1923,
- Iir_Kind_Attribute_Name => 1932
+ Iir_Kind_Selected_Element => 1256,
+ Iir_Kind_Dereference => 1261,
+ Iir_Kind_Implicit_Dereference => 1266,
+ Iir_Kind_Slice_Name => 1273,
+ Iir_Kind_Indexed_Name => 1279,
+ Iir_Kind_Psl_Expression => 1281,
+ Iir_Kind_Sensitized_Process_Statement => 1302,
+ Iir_Kind_Process_Statement => 1322,
+ Iir_Kind_Concurrent_Simple_Signal_Assignment => 1334,
+ Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1346,
+ Iir_Kind_Concurrent_Selected_Signal_Assignment => 1359,
+ Iir_Kind_Concurrent_Assertion_Statement => 1367,
+ Iir_Kind_Concurrent_Procedure_Call_Statement => 1374,
+ Iir_Kind_Psl_Assert_Statement => 1387,
+ Iir_Kind_Psl_Cover_Statement => 1400,
+ Iir_Kind_Block_Statement => 1413,
+ Iir_Kind_If_Generate_Statement => 1424,
+ Iir_Kind_Case_Generate_Statement => 1433,
+ Iir_Kind_For_Generate_Statement => 1442,
+ Iir_Kind_Component_Instantiation_Statement => 1453,
+ Iir_Kind_Psl_Default_Clock => 1457,
+ Iir_Kind_Simple_Simultaneous_Statement => 1464,
+ Iir_Kind_Generate_Statement_Body => 1475,
+ Iir_Kind_If_Generate_Else_Clause => 1481,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1491,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1501,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1512,
+ Iir_Kind_Null_Statement => 1516,
+ Iir_Kind_Assertion_Statement => 1523,
+ Iir_Kind_Report_Statement => 1529,
+ Iir_Kind_Wait_Statement => 1537,
+ Iir_Kind_Variable_Assignment_Statement => 1544,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1551,
+ Iir_Kind_Return_Statement => 1557,
+ Iir_Kind_For_Loop_Statement => 1566,
+ Iir_Kind_While_Loop_Statement => 1575,
+ Iir_Kind_Next_Statement => 1582,
+ Iir_Kind_Exit_Statement => 1589,
+ Iir_Kind_Case_Statement => 1597,
+ Iir_Kind_Procedure_Call_Statement => 1603,
+ Iir_Kind_If_Statement => 1613,
+ Iir_Kind_Elsif => 1619,
+ Iir_Kind_Character_Literal => 1627,
+ Iir_Kind_Simple_Name => 1635,
+ Iir_Kind_Selected_Name => 1644,
+ Iir_Kind_Operator_Symbol => 1650,
+ Iir_Kind_Reference_Name => 1653,
+ Iir_Kind_External_Constant_Name => 1662,
+ Iir_Kind_External_Signal_Name => 1671,
+ Iir_Kind_External_Variable_Name => 1680,
+ Iir_Kind_Selected_By_All_Name => 1686,
+ Iir_Kind_Parenthesis_Name => 1691,
+ Iir_Kind_Package_Pathname => 1695,
+ Iir_Kind_Absolute_Pathname => 1696,
+ Iir_Kind_Relative_Pathname => 1697,
+ Iir_Kind_Pathname_Element => 1702,
+ Iir_Kind_Base_Attribute => 1704,
+ Iir_Kind_Subtype_Attribute => 1709,
+ Iir_Kind_Element_Attribute => 1714,
+ Iir_Kind_Left_Type_Attribute => 1719,
+ Iir_Kind_Right_Type_Attribute => 1724,
+ Iir_Kind_High_Type_Attribute => 1729,
+ Iir_Kind_Low_Type_Attribute => 1734,
+ Iir_Kind_Ascending_Type_Attribute => 1739,
+ Iir_Kind_Image_Attribute => 1745,
+ Iir_Kind_Value_Attribute => 1751,
+ Iir_Kind_Pos_Attribute => 1757,
+ Iir_Kind_Val_Attribute => 1763,
+ Iir_Kind_Succ_Attribute => 1769,
+ Iir_Kind_Pred_Attribute => 1775,
+ Iir_Kind_Leftof_Attribute => 1781,
+ Iir_Kind_Rightof_Attribute => 1787,
+ Iir_Kind_Delayed_Attribute => 1796,
+ Iir_Kind_Stable_Attribute => 1805,
+ Iir_Kind_Quiet_Attribute => 1814,
+ Iir_Kind_Transaction_Attribute => 1823,
+ Iir_Kind_Event_Attribute => 1827,
+ Iir_Kind_Active_Attribute => 1831,
+ Iir_Kind_Last_Event_Attribute => 1835,
+ Iir_Kind_Last_Active_Attribute => 1839,
+ Iir_Kind_Last_Value_Attribute => 1843,
+ Iir_Kind_Driving_Attribute => 1847,
+ Iir_Kind_Driving_Value_Attribute => 1851,
+ Iir_Kind_Behavior_Attribute => 1851,
+ Iir_Kind_Structure_Attribute => 1851,
+ Iir_Kind_Simple_Name_Attribute => 1858,
+ Iir_Kind_Instance_Name_Attribute => 1863,
+ Iir_Kind_Path_Name_Attribute => 1868,
+ Iir_Kind_Left_Array_Attribute => 1875,
+ Iir_Kind_Right_Array_Attribute => 1882,
+ Iir_Kind_High_Array_Attribute => 1889,
+ Iir_Kind_Low_Array_Attribute => 1896,
+ Iir_Kind_Length_Array_Attribute => 1903,
+ Iir_Kind_Ascending_Array_Attribute => 1910,
+ Iir_Kind_Range_Array_Attribute => 1917,
+ Iir_Kind_Reverse_Range_Array_Attribute => 1924,
+ Iir_Kind_Attribute_Name => 1933
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -5204,8 +5200,6 @@ package body Nodes_Meta is
return Get_File_Logical_Name (N);
when Field_File_Open_Kind =>
return Get_File_Open_Kind (N);
- when Field_Selected_Element =>
- return Get_Selected_Element (N);
when Field_Use_Clause_Chain =>
return Get_Use_Clause_Chain (N);
when Field_Context_Reference_Chain =>
@@ -5600,8 +5594,6 @@ package body Nodes_Meta is
Set_File_Logical_Name (N, V);
when Field_File_Open_Kind =>
Set_File_Open_Kind (N, V);
- when Field_Selected_Element =>
- Set_Selected_Element (N, V);
when Field_Use_Clause_Chain =>
Set_Use_Clause_Chain (N, V);
when Field_Context_Reference_Chain =>
@@ -7965,11 +7957,6 @@ package body Nodes_Meta is
end case;
end Has_Element_Position;
- function Has_Selected_Element (K : Iir_Kind) return Boolean is
- begin
- return K = Iir_Kind_Selected_Element;
- end Has_Selected_Element;
-
function Has_Use_Clause_Chain (K : Iir_Kind) return Boolean is
begin
return K = Iir_Kind_Use_Clause;
@@ -9435,7 +9422,8 @@ package body Nodes_Meta is
function Has_Named_Entity (K : Iir_Kind) return Boolean is
begin
case K is
- when Iir_Kind_Character_Literal
+ when Iir_Kind_Selected_Element
+ | Iir_Kind_Character_Literal
| Iir_Kind_Simple_Name
| Iir_Kind_Selected_Name
| Iir_Kind_Operator_Symbol
@@ -10685,7 +10673,8 @@ package body Nodes_Meta is
function Has_Is_Forward_Ref (K : Iir_Kind) return Boolean is
begin
case K is
- when Iir_Kind_Character_Literal
+ when Iir_Kind_Selected_Element
+ | Iir_Kind_Character_Literal
| Iir_Kind_Simple_Name
| Iir_Kind_Selected_Name
| Iir_Kind_Operator_Symbol