aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2017-10-09 20:33:36 +0200
committerTristan Gingold <tgingold@free.fr>2017-10-09 20:33:36 +0200
commitf111087acd05068f8bdf1a191bbd47a0c7f39381 (patch)
tree0ad1ef5bffff07722a53c7a1761d9db15cdf8d70 /src
parentb3b159a51ad10adcaa77a0110cd1dbea4c3c1973 (diff)
downloadghdl-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.ads2
-rw-r--r--src/vhdl/nodes_meta.adb196
-rw-r--r--src/vhdl/sem_names.adb1
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);