aboutsummaryrefslogtreecommitdiffstats
path: root/src/vhdl/iirs.ads
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2016-10-08 04:53:25 +0200
committerTristan Gingold <tgingold@free.fr>2016-10-08 14:57:24 +0200
commit8b090b01da269679e98a578f4fda17e3e4adce12 (patch)
tree8d3284a5aacde88d6662300d87abf645065d8e16 /src/vhdl/iirs.ads
parent120548782cb62cc5d8f82b1569e2383a8528b98a (diff)
downloadghdl-8b090b01da269679e98a578f4fda17e3e4adce12.tar.gz
ghdl-8b090b01da269679e98a578f4fda17e3e4adce12.tar.bz2
ghdl-8b090b01da269679e98a578f4fda17e3e4adce12.zip
Add signal_attribute_declaration to hold implicit atribute signals.
Diffstat (limited to 'src/vhdl/iirs.ads')
-rw-r--r--src/vhdl/iirs.ads39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/vhdl/iirs.ads b/src/vhdl/iirs.ads
index 59d6c904f..f87159185 100644
--- a/src/vhdl/iirs.ads
+++ b/src/vhdl/iirs.ads
@@ -1560,6 +1560,19 @@ package Iirs is
--
-- Get/Set_Name_Staticness (State2)
+ -- Iir_Kind_Signal_Attribute_Declaration (Short)
+ --
+ -- Chain of implicit signals created from signal attribute. This is just
+ -- an helper so that translation can create these implicit signals at the
+ -- same time as user signal declarations.
+ --
+ -- Get/Set_Parent (Field0)
+ --
+ -- Get/Set_Chain (Field2)
+ --
+ -- Chain of signals
+ -- Get/Set_Signal_Attribute_Chain (Field3)
+
-- Iir_Kind_Constant_Declaration (Medium)
-- Iir_Kind_Iterator_Declaration (Medium)
--
@@ -3733,12 +3746,18 @@ package Iirs is
--
-- Get/Set_Prefix (Field0)
--
+ -- Not used by Iir_Kind_Transaction_Attribute
+ -- Get/Set_Parameter (Field4)
+ --
-- Get/Set_Type (Field1)
--
- -- Get/Set_Chain (Field2)
+ -- Next attribute signal in the chain owned by the
+ -- signal_attribute_declaration. Usual Get/Set_Chain is not used here as
+ -- the chain is composed only of forward references.
+ -- Get/Set_Attr_Chain (Field2)
--
- -- Not used by Iir_Kind_Transaction_Attribute
- -- Get/Set_Parameter (Field4)
+ -- Head of the chain. Used only to ease the reconstruction of the chain.
+ -- Get/Set_Signal_Attribute_Declaration (Field3)
--
-- Get/Set_Base_Name (Field5)
--
@@ -3988,6 +4007,8 @@ package Iirs is
Iir_Kind_Interface_Function_Declaration, -- interface
Iir_Kind_Interface_Procedure_Declaration, -- interface
+ Iir_Kind_Signal_Attribute_Declaration,
+
-- Expressions.
Iir_Kind_Identity_Operator,
Iir_Kind_Negation_Operator,
@@ -6585,6 +6606,10 @@ package Iirs is
function Get_Guard_Sensitivity_List (Guard : Iir) return Iir_List;
procedure Set_Guard_Sensitivity_List (Guard : Iir; List : Iir_List);
+ -- Field: Field3 Forward_Ref
+ function Get_Signal_Attribute_Chain (Decl : Iir) return Iir;
+ procedure Set_Signal_Attribute_Chain (Decl : Iir; Chain : Iir);
+
-- Block_Configuration that applies to this block statement.
-- Field: Field6
function Get_Block_Block_Configuration (Block : Iir) return Iir;
@@ -6774,6 +6799,14 @@ package Iirs is
function Get_Parameter (Target : Iir) return Iir;
procedure Set_Parameter (Target : Iir; Param : Iir);
+ -- Field: Field2 Forward_Ref
+ function Get_Attr_Chain (Attr : Iir) return Iir;
+ procedure Set_Attr_Chain (Attr : Iir; Chain : Iir);
+
+ -- Field: Field3 Forward_Ref
+ function Get_Signal_Attribute_Declaration (Attr : Iir) return Iir;
+ procedure Set_Signal_Attribute_Declaration (Attr : Iir; Decl : Iir);
+
-- Type of the actual for an association by individual.
-- Unless the formal is an unconstrained array type, this is the same as
-- the formal type.