diff options
author | Tristan Gingold <tgingold@free.fr> | 2017-10-09 20:33:36 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2017-10-09 20:33:36 +0200 |
commit | f111087acd05068f8bdf1a191bbd47a0c7f39381 (patch) | |
tree | 0ad1ef5bffff07722a53c7a1761d9db15cdf8d70 /src | |
parent | b3b159a51ad10adcaa77a0110cd1dbea4c3c1973 (diff) | |
download | ghdl-f111087acd05068f8bdf1a191bbd47a0c7f39381.tar.gz ghdl-f111087acd05068f8bdf1a191bbd47a0c7f39381.tar.bz2 ghdl-f111087acd05068f8bdf1a191bbd47a0c7f39381.zip |
Selected_Element: add Identifier field.
Diffstat (limited to 'src')
-rw-r--r-- | src/vhdl/iirs.ads | 2 | ||||
-rw-r--r-- | src/vhdl/nodes_meta.adb | 196 | ||||
-rw-r--r-- | src/vhdl/sem_names.adb | 1 |
3 files changed, 102 insertions, 97 deletions
diff --git a/src/vhdl/iirs.ads b/src/vhdl/iirs.ads index 550d338b6..94f155ed1 100644 --- a/src/vhdl/iirs.ads +++ b/src/vhdl/iirs.ads @@ -3733,6 +3733,8 @@ package Iirs is -- -- Get/Set_Selected_Element (Field2) -- + -- Get/Set_Identifier (Field3) + -- -- Get/Set_Base_Name (Field5) -- -- Get/Set_Expr_Staticness (State1) diff --git a/src/vhdl/nodes_meta.adb b/src/vhdl/nodes_meta.adb index ad947d079..aa56a1442 100644 --- a/src/vhdl/nodes_meta.adb +++ b/src/vhdl/nodes_meta.adb @@ -3599,6 +3599,7 @@ package body Nodes_Meta is Field_Allocator_Subtype, Field_Allocator_Designated_Type, -- Iir_Kind_Selected_Element + Field_Identifier, Field_Expr_Staticness, Field_Name_Staticness, Field_Prefix, @@ -4549,103 +4550,103 @@ package body Nodes_Meta is Iir_Kind_Type_Conversion => 1215, Iir_Kind_Allocator_By_Expression => 1219, Iir_Kind_Allocator_By_Subtype => 1224, - Iir_Kind_Selected_Element => 1230, - Iir_Kind_Dereference => 1235, - Iir_Kind_Implicit_Dereference => 1240, - Iir_Kind_Slice_Name => 1247, - Iir_Kind_Indexed_Name => 1253, - Iir_Kind_Psl_Expression => 1255, - Iir_Kind_Sensitized_Process_Statement => 1276, - Iir_Kind_Process_Statement => 1296, - Iir_Kind_Concurrent_Simple_Signal_Assignment => 1308, - Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1320, - Iir_Kind_Concurrent_Selected_Signal_Assignment => 1333, - Iir_Kind_Concurrent_Assertion_Statement => 1341, - Iir_Kind_Concurrent_Procedure_Call_Statement => 1348, - Iir_Kind_Psl_Assert_Statement => 1361, - Iir_Kind_Psl_Cover_Statement => 1374, - Iir_Kind_Block_Statement => 1387, - Iir_Kind_If_Generate_Statement => 1398, - Iir_Kind_Case_Generate_Statement => 1407, - Iir_Kind_For_Generate_Statement => 1416, - Iir_Kind_Component_Instantiation_Statement => 1426, - Iir_Kind_Psl_Default_Clock => 1430, - Iir_Kind_Simple_Simultaneous_Statement => 1437, - Iir_Kind_Generate_Statement_Body => 1448, - Iir_Kind_If_Generate_Else_Clause => 1454, - Iir_Kind_Simple_Signal_Assignment_Statement => 1464, - Iir_Kind_Conditional_Signal_Assignment_Statement => 1474, - Iir_Kind_Selected_Waveform_Assignment_Statement => 1485, - Iir_Kind_Null_Statement => 1489, - Iir_Kind_Assertion_Statement => 1496, - Iir_Kind_Report_Statement => 1502, - Iir_Kind_Wait_Statement => 1510, - Iir_Kind_Variable_Assignment_Statement => 1517, - Iir_Kind_Conditional_Variable_Assignment_Statement => 1524, - Iir_Kind_Return_Statement => 1530, - Iir_Kind_For_Loop_Statement => 1539, - Iir_Kind_While_Loop_Statement => 1548, - Iir_Kind_Next_Statement => 1555, - Iir_Kind_Exit_Statement => 1562, - Iir_Kind_Case_Statement => 1570, - Iir_Kind_Procedure_Call_Statement => 1576, - Iir_Kind_If_Statement => 1586, - Iir_Kind_Elsif => 1592, - Iir_Kind_Character_Literal => 1600, - Iir_Kind_Simple_Name => 1608, - Iir_Kind_Selected_Name => 1617, - Iir_Kind_Operator_Symbol => 1623, - Iir_Kind_Reference_Name => 1626, - Iir_Kind_Selected_By_All_Name => 1632, - Iir_Kind_Parenthesis_Name => 1637, - Iir_Kind_External_Constant_Name => 1645, - Iir_Kind_External_Signal_Name => 1653, - Iir_Kind_External_Variable_Name => 1661, - Iir_Kind_Package_Pathname => 1665, - Iir_Kind_Absolute_Pathname => 1666, - Iir_Kind_Relative_Pathname => 1667, - Iir_Kind_Pathname_Element => 1672, - Iir_Kind_Base_Attribute => 1674, - Iir_Kind_Subtype_Attribute => 1679, - Iir_Kind_Element_Attribute => 1684, - Iir_Kind_Left_Type_Attribute => 1689, - Iir_Kind_Right_Type_Attribute => 1694, - Iir_Kind_High_Type_Attribute => 1699, - Iir_Kind_Low_Type_Attribute => 1704, - Iir_Kind_Ascending_Type_Attribute => 1709, - Iir_Kind_Image_Attribute => 1715, - Iir_Kind_Value_Attribute => 1721, - Iir_Kind_Pos_Attribute => 1727, - Iir_Kind_Val_Attribute => 1733, - Iir_Kind_Succ_Attribute => 1739, - Iir_Kind_Pred_Attribute => 1745, - Iir_Kind_Leftof_Attribute => 1751, - Iir_Kind_Rightof_Attribute => 1757, - Iir_Kind_Delayed_Attribute => 1766, - Iir_Kind_Stable_Attribute => 1775, - Iir_Kind_Quiet_Attribute => 1784, - Iir_Kind_Transaction_Attribute => 1793, - Iir_Kind_Event_Attribute => 1797, - Iir_Kind_Active_Attribute => 1801, - Iir_Kind_Last_Event_Attribute => 1805, - Iir_Kind_Last_Active_Attribute => 1809, - Iir_Kind_Last_Value_Attribute => 1813, - Iir_Kind_Driving_Attribute => 1817, - Iir_Kind_Driving_Value_Attribute => 1821, - Iir_Kind_Behavior_Attribute => 1821, - Iir_Kind_Structure_Attribute => 1821, - Iir_Kind_Simple_Name_Attribute => 1828, - Iir_Kind_Instance_Name_Attribute => 1833, - Iir_Kind_Path_Name_Attribute => 1838, - Iir_Kind_Left_Array_Attribute => 1845, - Iir_Kind_Right_Array_Attribute => 1852, - Iir_Kind_High_Array_Attribute => 1859, - Iir_Kind_Low_Array_Attribute => 1866, - Iir_Kind_Length_Array_Attribute => 1873, - Iir_Kind_Ascending_Array_Attribute => 1880, - Iir_Kind_Range_Array_Attribute => 1887, - Iir_Kind_Reverse_Range_Array_Attribute => 1894, - Iir_Kind_Attribute_Name => 1903 + Iir_Kind_Selected_Element => 1231, + Iir_Kind_Dereference => 1236, + Iir_Kind_Implicit_Dereference => 1241, + Iir_Kind_Slice_Name => 1248, + Iir_Kind_Indexed_Name => 1254, + Iir_Kind_Psl_Expression => 1256, + Iir_Kind_Sensitized_Process_Statement => 1277, + Iir_Kind_Process_Statement => 1297, + Iir_Kind_Concurrent_Simple_Signal_Assignment => 1309, + Iir_Kind_Concurrent_Conditional_Signal_Assignment => 1321, + Iir_Kind_Concurrent_Selected_Signal_Assignment => 1334, + Iir_Kind_Concurrent_Assertion_Statement => 1342, + Iir_Kind_Concurrent_Procedure_Call_Statement => 1349, + Iir_Kind_Psl_Assert_Statement => 1362, + Iir_Kind_Psl_Cover_Statement => 1375, + Iir_Kind_Block_Statement => 1388, + Iir_Kind_If_Generate_Statement => 1399, + Iir_Kind_Case_Generate_Statement => 1408, + Iir_Kind_For_Generate_Statement => 1417, + Iir_Kind_Component_Instantiation_Statement => 1427, + Iir_Kind_Psl_Default_Clock => 1431, + Iir_Kind_Simple_Simultaneous_Statement => 1438, + Iir_Kind_Generate_Statement_Body => 1449, + Iir_Kind_If_Generate_Else_Clause => 1455, + Iir_Kind_Simple_Signal_Assignment_Statement => 1465, + Iir_Kind_Conditional_Signal_Assignment_Statement => 1475, + Iir_Kind_Selected_Waveform_Assignment_Statement => 1486, + Iir_Kind_Null_Statement => 1490, + Iir_Kind_Assertion_Statement => 1497, + Iir_Kind_Report_Statement => 1503, + Iir_Kind_Wait_Statement => 1511, + Iir_Kind_Variable_Assignment_Statement => 1518, + Iir_Kind_Conditional_Variable_Assignment_Statement => 1525, + Iir_Kind_Return_Statement => 1531, + Iir_Kind_For_Loop_Statement => 1540, + Iir_Kind_While_Loop_Statement => 1549, + Iir_Kind_Next_Statement => 1556, + Iir_Kind_Exit_Statement => 1563, + Iir_Kind_Case_Statement => 1571, + Iir_Kind_Procedure_Call_Statement => 1577, + Iir_Kind_If_Statement => 1587, + Iir_Kind_Elsif => 1593, + Iir_Kind_Character_Literal => 1601, + Iir_Kind_Simple_Name => 1609, + Iir_Kind_Selected_Name => 1618, + Iir_Kind_Operator_Symbol => 1624, + Iir_Kind_Reference_Name => 1627, + Iir_Kind_Selected_By_All_Name => 1633, + Iir_Kind_Parenthesis_Name => 1638, + Iir_Kind_External_Constant_Name => 1646, + Iir_Kind_External_Signal_Name => 1654, + Iir_Kind_External_Variable_Name => 1662, + Iir_Kind_Package_Pathname => 1666, + Iir_Kind_Absolute_Pathname => 1667, + Iir_Kind_Relative_Pathname => 1668, + Iir_Kind_Pathname_Element => 1673, + Iir_Kind_Base_Attribute => 1675, + Iir_Kind_Subtype_Attribute => 1680, + Iir_Kind_Element_Attribute => 1685, + Iir_Kind_Left_Type_Attribute => 1690, + Iir_Kind_Right_Type_Attribute => 1695, + Iir_Kind_High_Type_Attribute => 1700, + Iir_Kind_Low_Type_Attribute => 1705, + Iir_Kind_Ascending_Type_Attribute => 1710, + Iir_Kind_Image_Attribute => 1716, + Iir_Kind_Value_Attribute => 1722, + Iir_Kind_Pos_Attribute => 1728, + Iir_Kind_Val_Attribute => 1734, + Iir_Kind_Succ_Attribute => 1740, + Iir_Kind_Pred_Attribute => 1746, + Iir_Kind_Leftof_Attribute => 1752, + Iir_Kind_Rightof_Attribute => 1758, + Iir_Kind_Delayed_Attribute => 1767, + Iir_Kind_Stable_Attribute => 1776, + Iir_Kind_Quiet_Attribute => 1785, + Iir_Kind_Transaction_Attribute => 1794, + Iir_Kind_Event_Attribute => 1798, + Iir_Kind_Active_Attribute => 1802, + Iir_Kind_Last_Event_Attribute => 1806, + Iir_Kind_Last_Active_Attribute => 1810, + Iir_Kind_Last_Value_Attribute => 1814, + Iir_Kind_Driving_Attribute => 1818, + Iir_Kind_Driving_Value_Attribute => 1822, + Iir_Kind_Behavior_Attribute => 1822, + Iir_Kind_Structure_Attribute => 1822, + Iir_Kind_Simple_Name_Attribute => 1829, + Iir_Kind_Instance_Name_Attribute => 1834, + Iir_Kind_Path_Name_Attribute => 1839, + Iir_Kind_Left_Array_Attribute => 1846, + Iir_Kind_Right_Array_Attribute => 1853, + Iir_Kind_High_Array_Attribute => 1860, + Iir_Kind_Low_Array_Attribute => 1867, + Iir_Kind_Length_Array_Attribute => 1874, + Iir_Kind_Ascending_Array_Attribute => 1881, + Iir_Kind_Range_Array_Attribute => 1888, + Iir_Kind_Reverse_Range_Array_Attribute => 1895, + Iir_Kind_Attribute_Name => 1904 ); function Get_Fields_First (K : Iir_Kind) return Fields_Index is @@ -8019,6 +8020,7 @@ package body Nodes_Meta is | Iir_Kind_Interface_Package_Declaration | Iir_Kind_Interface_Function_Declaration | Iir_Kind_Interface_Procedure_Declaration + | Iir_Kind_Selected_Element | Iir_Kind_Sensitized_Process_Statement | Iir_Kind_Process_Statement | Iir_Kind_Concurrent_Simple_Signal_Assignment diff --git a/src/vhdl/sem_names.adb b/src/vhdl/sem_names.adb index ba00197f8..402674376 100644 --- a/src/vhdl/sem_names.adb +++ b/src/vhdl/sem_names.adb @@ -1950,6 +1950,7 @@ package body Sem_Names is Location_Copy (Se, Name); Set_Prefix (Se, R); Set_Type (Se, Get_Type (Rec_El)); + Set_Identifier (Se, Suffix); Set_Selected_Element (Se, Rec_El); Set_Base_Name (Se, Get_Object_Prefix (R, False)); Add_Result (Res, Se); |