aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/vhdl-nodes_meta.adb
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-12-30 20:07:35 +0100
committerTristan Gingold <tgingold@free.fr>2019-12-30 20:07:35 +0100
commit10b0ac263ed7c59c438c1cb82faef51370cbd67e (patch)
tree0430b5e1ae8c137057832f2946d16f9d5222588a /src/vhdl/vhdl-nodes_meta.adb
parent6340fddff21567b10dd774d5459536d37c6239dc (diff)
downloadghdl-10b0ac263ed7c59c438c1cb82faef51370cbd67e.tar.gz
ghdl-10b0ac263ed7c59c438c1cb82faef51370cbd67e.tar.bz2
ghdl-10b0ac263ed7c59c438c1cb82faef51370cbd67e.zip
ams-vhdl: add simultaneous null statement.
Diffstat (limited to 'src/vhdl/vhdl-nodes_meta.adb')
-rw-r--r--src/vhdl/vhdl-nodes_meta.adb210
1 files changed, 123 insertions, 87 deletions
diff --git a/src/vhdl/vhdl-nodes_meta.adb b/src/vhdl/vhdl-nodes_meta.adb
index 206716ae7..ed955d05c 100644
--- a/src/vhdl/vhdl-nodes_meta.adb
+++ b/src/vhdl/vhdl-nodes_meta.adb
@@ -1533,8 +1533,12 @@ package body Vhdl.Nodes_Meta is
return "if_generate_else_clause";
when Iir_Kind_Simple_Simultaneous_Statement =>
return "simple_simultaneous_statement";
+ when Iir_Kind_Simultaneous_Null_Statement =>
+ return "simultaneous_null_statement";
when Iir_Kind_Simultaneous_Procedural_Statement =>
return "simultaneous_procedural_statement";
+ when Iir_Kind_Simultaneous_Case_Statement =>
+ return "simultaneous_case_statement";
when Iir_Kind_Simultaneous_If_Statement =>
return "simultaneous_if_statement";
when Iir_Kind_Simultaneous_Elsif =>
@@ -4337,6 +4341,11 @@ package body Vhdl.Nodes_Meta is
Field_Simultaneous_Left,
Field_Simultaneous_Right,
Field_Tolerance,
+ -- Iir_Kind_Simultaneous_Null_Statement
+ Field_Label,
+ Field_Visible_Flag,
+ Field_Parent,
+ Field_Chain,
-- Iir_Kind_Simultaneous_Procedural_Statement
Field_Label,
Field_Visible_Flag,
@@ -4349,6 +4358,16 @@ package body Vhdl.Nodes_Meta is
Field_Declaration_Chain,
Field_Attribute_Value_Chain,
Field_Sequential_Statement_Chain,
+ -- Iir_Kind_Simultaneous_Case_Statement
+ Field_Label,
+ Field_Visible_Flag,
+ Field_Is_Within_Flag,
+ Field_End_Has_Reserved_Id,
+ Field_End_Has_Identifier,
+ Field_Parent,
+ Field_Case_Statement_Alternative_Chain,
+ Field_Chain,
+ Field_Expression,
-- Iir_Kind_Simultaneous_If_Statement
Field_Label,
Field_Is_Ref,
@@ -5194,92 +5213,94 @@ package body Vhdl.Nodes_Meta is
Iir_Kind_Generate_Statement_Body => 1680,
Iir_Kind_If_Generate_Else_Clause => 1686,
Iir_Kind_Simple_Simultaneous_Statement => 1693,
- Iir_Kind_Simultaneous_Procedural_Statement => 1704,
- Iir_Kind_Simultaneous_If_Statement => 1713,
- Iir_Kind_Simultaneous_Elsif => 1719,
- Iir_Kind_Simple_Signal_Assignment_Statement => 1730,
- Iir_Kind_Conditional_Signal_Assignment_Statement => 1741,
- Iir_Kind_Selected_Waveform_Assignment_Statement => 1753,
- Iir_Kind_Null_Statement => 1757,
- Iir_Kind_Assertion_Statement => 1764,
- Iir_Kind_Report_Statement => 1770,
- Iir_Kind_Wait_Statement => 1778,
- Iir_Kind_Variable_Assignment_Statement => 1785,
- Iir_Kind_Conditional_Variable_Assignment_Statement => 1792,
- Iir_Kind_Return_Statement => 1798,
- Iir_Kind_For_Loop_Statement => 1809,
- Iir_Kind_While_Loop_Statement => 1820,
- Iir_Kind_Next_Statement => 1827,
- Iir_Kind_Exit_Statement => 1834,
- Iir_Kind_Case_Statement => 1842,
- Iir_Kind_Procedure_Call_Statement => 1848,
- Iir_Kind_Break_Statement => 1855,
- Iir_Kind_If_Statement => 1865,
- Iir_Kind_Elsif => 1871,
- Iir_Kind_Character_Literal => 1879,
- Iir_Kind_Simple_Name => 1887,
- Iir_Kind_Selected_Name => 1896,
- Iir_Kind_Operator_Symbol => 1902,
- Iir_Kind_Reference_Name => 1907,
- Iir_Kind_External_Constant_Name => 1915,
- Iir_Kind_External_Signal_Name => 1923,
- Iir_Kind_External_Variable_Name => 1932,
- Iir_Kind_Selected_By_All_Name => 1938,
- Iir_Kind_Parenthesis_Name => 1943,
- Iir_Kind_Package_Pathname => 1947,
- Iir_Kind_Absolute_Pathname => 1948,
- Iir_Kind_Relative_Pathname => 1949,
- Iir_Kind_Pathname_Element => 1954,
- Iir_Kind_Base_Attribute => 1956,
- Iir_Kind_Subtype_Attribute => 1961,
- Iir_Kind_Element_Attribute => 1966,
- Iir_Kind_Across_Attribute => 1971,
- Iir_Kind_Through_Attribute => 1976,
- Iir_Kind_Nature_Reference_Attribute => 1980,
- Iir_Kind_Left_Type_Attribute => 1985,
- Iir_Kind_Right_Type_Attribute => 1990,
- Iir_Kind_High_Type_Attribute => 1995,
- Iir_Kind_Low_Type_Attribute => 2000,
- Iir_Kind_Ascending_Type_Attribute => 2005,
- Iir_Kind_Image_Attribute => 2011,
- Iir_Kind_Value_Attribute => 2017,
- Iir_Kind_Pos_Attribute => 2023,
- Iir_Kind_Val_Attribute => 2029,
- Iir_Kind_Succ_Attribute => 2035,
- Iir_Kind_Pred_Attribute => 2041,
- Iir_Kind_Leftof_Attribute => 2047,
- Iir_Kind_Rightof_Attribute => 2053,
- Iir_Kind_Signal_Slew_Attribute => 2061,
- Iir_Kind_Quantity_Slew_Attribute => 2069,
- Iir_Kind_Ramp_Attribute => 2077,
- Iir_Kind_Dot_Attribute => 2084,
- Iir_Kind_Integ_Attribute => 2091,
- Iir_Kind_Above_Attribute => 2099,
- Iir_Kind_Delayed_Attribute => 2108,
- Iir_Kind_Stable_Attribute => 2117,
- Iir_Kind_Quiet_Attribute => 2126,
- Iir_Kind_Transaction_Attribute => 2135,
- Iir_Kind_Event_Attribute => 2139,
- Iir_Kind_Active_Attribute => 2143,
- Iir_Kind_Last_Event_Attribute => 2147,
- Iir_Kind_Last_Active_Attribute => 2151,
- Iir_Kind_Last_Value_Attribute => 2155,
- Iir_Kind_Driving_Attribute => 2159,
- Iir_Kind_Driving_Value_Attribute => 2163,
- Iir_Kind_Behavior_Attribute => 2163,
- Iir_Kind_Structure_Attribute => 2163,
- Iir_Kind_Simple_Name_Attribute => 2170,
- Iir_Kind_Instance_Name_Attribute => 2175,
- Iir_Kind_Path_Name_Attribute => 2180,
- Iir_Kind_Left_Array_Attribute => 2187,
- Iir_Kind_Right_Array_Attribute => 2194,
- Iir_Kind_High_Array_Attribute => 2201,
- Iir_Kind_Low_Array_Attribute => 2208,
- Iir_Kind_Length_Array_Attribute => 2215,
- Iir_Kind_Ascending_Array_Attribute => 2222,
- Iir_Kind_Range_Array_Attribute => 2229,
- Iir_Kind_Reverse_Range_Array_Attribute => 2236,
- Iir_Kind_Attribute_Name => 2245
+ Iir_Kind_Simultaneous_Null_Statement => 1697,
+ Iir_Kind_Simultaneous_Procedural_Statement => 1708,
+ Iir_Kind_Simultaneous_Case_Statement => 1717,
+ Iir_Kind_Simultaneous_If_Statement => 1726,
+ Iir_Kind_Simultaneous_Elsif => 1732,
+ Iir_Kind_Simple_Signal_Assignment_Statement => 1743,
+ Iir_Kind_Conditional_Signal_Assignment_Statement => 1754,
+ Iir_Kind_Selected_Waveform_Assignment_Statement => 1766,
+ Iir_Kind_Null_Statement => 1770,
+ Iir_Kind_Assertion_Statement => 1777,
+ Iir_Kind_Report_Statement => 1783,
+ Iir_Kind_Wait_Statement => 1791,
+ Iir_Kind_Variable_Assignment_Statement => 1798,
+ Iir_Kind_Conditional_Variable_Assignment_Statement => 1805,
+ Iir_Kind_Return_Statement => 1811,
+ Iir_Kind_For_Loop_Statement => 1822,
+ Iir_Kind_While_Loop_Statement => 1833,
+ Iir_Kind_Next_Statement => 1840,
+ Iir_Kind_Exit_Statement => 1847,
+ Iir_Kind_Case_Statement => 1855,
+ Iir_Kind_Procedure_Call_Statement => 1861,
+ Iir_Kind_Break_Statement => 1868,
+ Iir_Kind_If_Statement => 1878,
+ Iir_Kind_Elsif => 1884,
+ Iir_Kind_Character_Literal => 1892,
+ Iir_Kind_Simple_Name => 1900,
+ Iir_Kind_Selected_Name => 1909,
+ Iir_Kind_Operator_Symbol => 1915,
+ Iir_Kind_Reference_Name => 1920,
+ Iir_Kind_External_Constant_Name => 1928,
+ Iir_Kind_External_Signal_Name => 1936,
+ Iir_Kind_External_Variable_Name => 1945,
+ Iir_Kind_Selected_By_All_Name => 1951,
+ Iir_Kind_Parenthesis_Name => 1956,
+ Iir_Kind_Package_Pathname => 1960,
+ Iir_Kind_Absolute_Pathname => 1961,
+ Iir_Kind_Relative_Pathname => 1962,
+ Iir_Kind_Pathname_Element => 1967,
+ Iir_Kind_Base_Attribute => 1969,
+ Iir_Kind_Subtype_Attribute => 1974,
+ Iir_Kind_Element_Attribute => 1979,
+ Iir_Kind_Across_Attribute => 1984,
+ Iir_Kind_Through_Attribute => 1989,
+ Iir_Kind_Nature_Reference_Attribute => 1993,
+ Iir_Kind_Left_Type_Attribute => 1998,
+ Iir_Kind_Right_Type_Attribute => 2003,
+ Iir_Kind_High_Type_Attribute => 2008,
+ Iir_Kind_Low_Type_Attribute => 2013,
+ Iir_Kind_Ascending_Type_Attribute => 2018,
+ Iir_Kind_Image_Attribute => 2024,
+ Iir_Kind_Value_Attribute => 2030,
+ Iir_Kind_Pos_Attribute => 2036,
+ Iir_Kind_Val_Attribute => 2042,
+ Iir_Kind_Succ_Attribute => 2048,
+ Iir_Kind_Pred_Attribute => 2054,
+ Iir_Kind_Leftof_Attribute => 2060,
+ Iir_Kind_Rightof_Attribute => 2066,
+ Iir_Kind_Signal_Slew_Attribute => 2074,
+ Iir_Kind_Quantity_Slew_Attribute => 2082,
+ Iir_Kind_Ramp_Attribute => 2090,
+ Iir_Kind_Dot_Attribute => 2097,
+ Iir_Kind_Integ_Attribute => 2104,
+ Iir_Kind_Above_Attribute => 2112,
+ Iir_Kind_Delayed_Attribute => 2121,
+ Iir_Kind_Stable_Attribute => 2130,
+ Iir_Kind_Quiet_Attribute => 2139,
+ Iir_Kind_Transaction_Attribute => 2148,
+ Iir_Kind_Event_Attribute => 2152,
+ Iir_Kind_Active_Attribute => 2156,
+ Iir_Kind_Last_Event_Attribute => 2160,
+ Iir_Kind_Last_Active_Attribute => 2164,
+ Iir_Kind_Last_Value_Attribute => 2168,
+ Iir_Kind_Driving_Attribute => 2172,
+ Iir_Kind_Driving_Value_Attribute => 2176,
+ Iir_Kind_Behavior_Attribute => 2176,
+ Iir_Kind_Structure_Attribute => 2176,
+ Iir_Kind_Simple_Name_Attribute => 2183,
+ Iir_Kind_Instance_Name_Attribute => 2188,
+ Iir_Kind_Path_Name_Attribute => 2193,
+ Iir_Kind_Left_Array_Attribute => 2200,
+ Iir_Kind_Right_Array_Attribute => 2207,
+ Iir_Kind_High_Array_Attribute => 2214,
+ Iir_Kind_Low_Array_Attribute => 2221,
+ Iir_Kind_Length_Array_Attribute => 2228,
+ Iir_Kind_Ascending_Array_Attribute => 2235,
+ Iir_Kind_Range_Array_Attribute => 2242,
+ Iir_Kind_Reverse_Range_Array_Attribute => 2249,
+ Iir_Kind_Attribute_Name => 2258
);
function Get_Fields_First (K : Iir_Kind) return Fields_Index is
@@ -8138,7 +8159,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_Psl_Default_Clock
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Null_Statement
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
@@ -8995,7 +9018,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Psl_Default_Clock
| Iir_Kind_Generate_Statement_Body
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Null_Statement
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
@@ -9050,7 +9075,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_Psl_Default_Clock
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Null_Statement
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
@@ -9149,7 +9176,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Component_Instantiation_Statement
| Iir_Kind_If_Generate_Else_Clause
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Null_Statement
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simple_Signal_Assignment_Statement
| Iir_Kind_Conditional_Signal_Assignment_Statement
@@ -10164,6 +10193,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Allocator_By_Expression
| Iir_Kind_Concurrent_Selected_Signal_Assignment
| Iir_Kind_Case_Generate_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Selected_Waveform_Assignment_Statement
| Iir_Kind_Variable_Assignment_Statement
| Iir_Kind_Return_Statement
@@ -10456,7 +10486,9 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_Generate_Statement_Body
| Iir_Kind_If_Generate_Else_Clause
| Iir_Kind_Simple_Simultaneous_Statement
+ | Iir_Kind_Simultaneous_Null_Statement
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simultaneous_Elsif
| Iir_Kind_Simple_Signal_Assignment_Statement
@@ -11301,6 +11333,7 @@ package body Vhdl.Nodes_Meta is
begin
case K is
when Iir_Kind_Case_Generate_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Case_Statement =>
return True;
when others =>
@@ -11516,6 +11549,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_For_Generate_Statement
| Iir_Kind_Generate_Statement_Body
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_For_Loop_Statement =>
return True;
when others =>
@@ -11640,7 +11674,8 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_If_Generate_Statement
| Iir_Kind_Case_Generate_Statement
| Iir_Kind_For_Generate_Statement
- | Iir_Kind_Simultaneous_Procedural_Statement =>
+ | Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement =>
return True;
when others =>
return False;
@@ -11676,6 +11711,7 @@ package body Vhdl.Nodes_Meta is
| Iir_Kind_For_Generate_Statement
| Iir_Kind_Generate_Statement_Body
| Iir_Kind_Simultaneous_Procedural_Statement
+ | Iir_Kind_Simultaneous_Case_Statement
| Iir_Kind_Simultaneous_If_Statement
| Iir_Kind_Simultaneous_Elsif
| Iir_Kind_For_Loop_Statement