Other nodes (Psl_Hierarchical_Name … Record_Element_Resolution)
The diagrams below draw one box per node kind, with one port per field. The edge colours say how a link is held; they
are listed in full on the Fields page.
digraph {
rankdir="LR"
nodesep=0.1
node [shape=point width=0.06 color="#888a85"]
edge [fontname="monospace" fontsize=10 minlen=3]
l0a -> l0b [label="owned" color="#000000"]
l1a -> l1b [label="ref" color="#3465a4" style=dashed]
l2a -> l2b [label="maybe ref" color="#3465a4" style=dotted]
l3a -> l3b [label="of ref" color="#3465a4" style=dashed]
l4a -> l4b [label="of maybe ref" color="#3465a4" style=dotted]
l5a -> l5b [label="forward ref" color="#f57900" style=dashed]
l6a -> l6b [label="maybe forward ref" color="#f57900" style=dotted]
l7a -> l7b [label="chain" color="#4e9a06"]
l8a -> l8b [label="chain next" color="#4e9a06" style=bold]
}
Iir_Kind_Psl_Hierarchical_Name
Format: Short
Accessor
Field
Type
Access
Description
Entity_Name
Field2
Iir
owned
The entity name for an architecture or a configuration.
Architecture
Field3
Iir
owned
—
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Psl_Hierarchical_Name" [style=filled fillcolor="#eeeeec" label="{Psl_Hierarchical_Name|{<Entity_Name> Entity_Name|<Architecture> Architecture}}"]
"Psl_Hierarchical_Name__Entity_Name" [shape=box label="Iir"]
"Psl_Hierarchical_Name":Entity_Name -> "Psl_Hierarchical_Name__Entity_Name" [color="#000000"]
"Psl_Hierarchical_Name__Architecture" [shape=box label="Iir"]
"Psl_Hierarchical_Name":Architecture -> "Psl_Hierarchical_Name__Architecture" [color="#000000"]
}
Iir_Kind_Block_Configuration
LRM08 3.4.2 Block configuration
block_configuration : :=
FOR block_specification
{ use_clause }
{ configuration_item }
END FOR ;
configuration_item : :=
block_configuration
| component_configuration
block_specification : :=
/ architecture_ / name
| / block_statement_ / label
| / generate_statement_ / label [ ( generate_specification ) ]
Format: Short
Accessor
Field
Type
Access
Description
Parent
Field0
Iir
ref
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.
Block_Specification
Field5
Iir
owned
Note: for default block configurations of iterative generate statement, the block specification is an indexed_name, whose index_list is others. The name designates either a block statement or a generate statement body.
Declaration_Chain
Field1
Iir
chain
Only use_clause are allowed here.
Chain
Field2
Iir
chain next
—
Configuration_Item_Chain
Field3
Iir
chain
—
Prev_Block_Configuration
Field4
Iir
ref
Single linked list of block configuration that apply to the same for scheme generate block.
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Block_Configuration" [style=filled fillcolor="#eeeeec" label="{Block_Configuration|{<Parent> Parent|<Block_Specification> Block_Specification|<Declaration_Chain> Declaration_Chain|<Chain> Chain|<Configuration_Item_Chain> Configuration_Item_Chain|<Prev_Block_Configuration> Prev_Block_Configuration}}"]
"Block_Configuration__Parent" [shape=box label="Iir"]
"Block_Configuration":Parent -> "Block_Configuration__Parent" [color="#3465a4" style=dashed]
"Block_Configuration__Block_Specification" [shape=box label="Iir"]
"Block_Configuration":Block_Specification -> "Block_Configuration__Block_Specification" [color="#000000"]
"Block_Configuration__Declaration_Chain" [shape=box label="Iir"]
"Block_Configuration":Declaration_Chain -> "Block_Configuration__Declaration_Chain" [color="#4e9a06"]
"Block_Configuration__Chain" [shape=box label="Iir"]
"Block_Configuration":Chain -> "Block_Configuration__Chain" [color="#4e9a06" style=bold]
"Block_Configuration__Configuration_Item_Chain" [shape=box label="Iir"]
"Block_Configuration":Configuration_Item_Chain -> "Block_Configuration__Configuration_Item_Chain" [color="#4e9a06"]
"Block_Configuration__Prev_Block_Configuration" [shape=box label="Iir"]
"Block_Configuration":Prev_Block_Configuration -> "Block_Configuration__Prev_Block_Configuration" [color="#3465a4" style=dashed]
}
Iir_Kind_Component_Configuration
LRM08 7.3 Configuration specification
configuration_specification : :=
simple_configuration_specification
| compound_configuration_specification
simple_configuration_specification : :=
FOR component_specification binding_indication ;
[ END FOR ; ]
compound_configuration_specification : :=
FOR component_specification binding_indication ;
verification_unit_binding_indication ;
{ verification_unit_binding_indication ; }
END FOR ;
component_specification : :=
instantiation_list : component_name
instantiation_list : :=
instantiation_label { , instantiation_label }
| OTHERS
| ALL
The location points to ‘for’.
Format: Short
Accessor
Field
Type
Access
Description
Parent
Field0
Iir
ref
The declaration containing this type declaration.
Component_Name
Field5
Iir
owned
Component name for a component_configuration or a configuration_specification.
Instantiation_List
Field1
Iir_Flist
owned
A list, list_others or list_all.
Block_Configuration
Field4
Iir
owned
—
Binding_Indication
Field3
Iir
maybe ref
—
Chain
Field2
Iir
chain next
—
Has_End
Flag11
Boolean
owned
Only for Iir_Kind_Configuration_Specification:
Is_Ref
Flag12
Boolean
owned
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present.
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Component_Configuration" [style=filled fillcolor="#eeeeec" label="{Component_Configuration|{<Parent> Parent|<Component_Name> Component_Name|<Instantiation_List> Instantiation_List|<Block_Configuration> Block_Configuration|<Binding_Indication> Binding_Indication|<Chain> Chain|<Has_End> Has_End|<Is_Ref> Is_Ref}}"]
"Component_Configuration__Parent" [shape=box label="Iir"]
"Component_Configuration":Parent -> "Component_Configuration__Parent" [color="#3465a4" style=dashed]
"Component_Configuration__Component_Name" [shape=box label="Iir"]
"Component_Configuration":Component_Name -> "Component_Configuration__Component_Name" [color="#000000"]
"Component_Configuration__Instantiation_List" [shape=box3d label="Iir_Flist"]
"Component_Configuration":Instantiation_List -> "Component_Configuration__Instantiation_List" [color="#000000"]
"Component_Configuration__Block_Configuration" [shape=box label="Iir"]
"Component_Configuration":Block_Configuration -> "Component_Configuration__Block_Configuration" [color="#000000"]
"Component_Configuration__Binding_Indication" [shape=box label="Iir"]
"Component_Configuration":Binding_Indication -> "Component_Configuration__Binding_Indication" [color="#3465a4" style=dotted]
"Component_Configuration__Chain" [shape=box label="Iir"]
"Component_Configuration":Chain -> "Component_Configuration__Chain" [color="#4e9a06" style=bold]
}
Iir_Kind_Binding_Indication
Format: Medium
Accessor
Field
Type
Access
Description
Default_Entity_Aspect
Field1
Iir
owned
—
Entity_Aspect
Field3
Iir
owned
The entity aspect. It is a iir_kind_entity_aspect_entity, iir_kind_entity_aspect_open or iir_kind_entity_aspect_configuration. This may be transformed into a declaration by semantic.
Generic_Map_Aspect_Chain
Field8
Iir
chain
Generic map aspect list.
Port_Map_Aspect_Chain
Field9
Iir
chain
Port map aspect list.
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Binding_Indication" [style=filled fillcolor="#eeeeec" label="{Binding_Indication|{<Default_Entity_Aspect> Default_Entity_Aspect|<Entity_Aspect> Entity_Aspect|<Generic_Map_Aspect_Chain> Generic_Map_Aspect_Chain|<Port_Map_Aspect_Chain> Port_Map_Aspect_Chain}}"]
"Binding_Indication__Default_Entity_Aspect" [shape=box label="Iir"]
"Binding_Indication":Default_Entity_Aspect -> "Binding_Indication__Default_Entity_Aspect" [color="#000000"]
"Binding_Indication__Entity_Aspect" [shape=box label="Iir"]
"Binding_Indication":Entity_Aspect -> "Binding_Indication__Entity_Aspect" [color="#000000"]
"Binding_Indication__Generic_Map_Aspect_Chain" [shape=box label="Iir"]
"Binding_Indication":Generic_Map_Aspect_Chain -> "Binding_Indication__Generic_Map_Aspect_Chain" [color="#4e9a06"]
"Binding_Indication__Port_Map_Aspect_Chain" [shape=box label="Iir"]
"Binding_Indication":Port_Map_Aspect_Chain -> "Binding_Indication__Port_Map_Aspect_Chain" [color="#4e9a06"]
}
Iir_Kind_Entity_Class
Format: Short
Accessor
Field
Type
Access
Description
Chain
Field2
Iir
chain next
—
Entity_Class
Field3
Token_Type
owned
—
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Entity_Class" [style=filled fillcolor="#eeeeec" label="{Entity_Class|{<Chain> Chain|<Entity_Class> Entity_Class}}"]
"Entity_Class__Chain" [shape=box label="Iir"]
"Entity_Class":Chain -> "Entity_Class__Chain" [color="#4e9a06" style=bold]
}
Iir_Kind_Attribute_Value
An attribute value is the element of the chain of attribute of an entity, marking the entity as decorated by the
attribute. This node is built only by sem. In fact, the node is member of the chain of attribute of an entity, and of
the chain of a parent node containing all the attributes value for a scope. This makes elaboration (and more precisely,
expression evaluation) easier.
Format: Short
Accessor
Field
Type
Access
Description
Spec_Chain
Field2
Iir
owned
Chain of attribute_value for the attribute specification
Type
Field1
Iir
ref
—
Value_Chain
Field0
Iir
ref
Chain of all attribute_value for the node containing declarations
Designated_Entity
Field3
Iir
forward ref
The entity (as a declaration) on which the value applies.
Attribute_Specification
Field4
Iir
ref
—
Base_Name
Field5
Iir
ref
The base name of a name is the node at the origin of the name. The base name is a declaration (signal, object, constant or interface), a selected_by_all name, an implicit_dereference name.
Expr_Staticness
State1
Iir_Staticness
owned
Expression staticness, defined by rules of LRM 7.4
Name_Staticness
State2
Iir_Staticness
owned
Staticness of a name, according to rules of LRM 6.1
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Attribute_Value" [style=filled fillcolor="#eeeeec" label="{Attribute_Value|{<Spec_Chain> Spec_Chain|<Type> Type|<Value_Chain> Value_Chain|<Designated_Entity> Designated_Entity|<Attribute_Specification> Attribute_Specification|<Base_Name> Base_Name|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"]
"Attribute_Value__Spec_Chain" [shape=box label="Iir"]
"Attribute_Value":Spec_Chain -> "Attribute_Value__Spec_Chain" [color="#000000"]
"Attribute_Value__Type" [shape=box label="Iir"]
"Attribute_Value":Type -> "Attribute_Value__Type" [color="#3465a4" style=dashed]
"Attribute_Value__Value_Chain" [shape=box label="Iir"]
"Attribute_Value":Value_Chain -> "Attribute_Value__Value_Chain" [color="#3465a4" style=dashed]
"Attribute_Value__Designated_Entity" [shape=box label="Iir"]
"Attribute_Value":Designated_Entity -> "Attribute_Value__Designated_Entity" [color="#f57900" style=dashed]
"Attribute_Value__Attribute_Specification" [shape=box label="Iir"]
"Attribute_Value":Attribute_Specification -> "Attribute_Value__Attribute_Specification" [color="#3465a4" style=dashed]
"Attribute_Value__Base_Name" [shape=box label="Iir"]
"Attribute_Value":Base_Name -> "Attribute_Value__Base_Name" [color="#3465a4" style=dashed]
}
Iir_Kind_Signature
LRM08 4.5.3 Signatures
signature : := '[' [ type_mark { , type_mark } ] [ RETURN type_mark ] ']'
Format: Medium
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Signature" [style=filled fillcolor="#eeeeec" label="{Signature|{<Signature_Prefix> Signature_Prefix|<Type_Marks_List> Type_Marks_List|<Return_Type_Mark> Return_Type_Mark|<Named_Entity> Named_Entity|<Is_Forward_Ref> Is_Forward_Ref}}"]
"Signature__Signature_Prefix" [shape=box label="Iir"]
"Signature":Signature_Prefix -> "Signature__Signature_Prefix" [color="#000000"]
"Signature__Type_Marks_List" [shape=box3d label="Iir_Flist"]
"Signature":Type_Marks_List -> "Signature__Type_Marks_List" [color="#000000"]
"Signature__Return_Type_Mark" [shape=box label="Iir"]
"Signature":Return_Type_Mark -> "Signature__Return_Type_Mark" [color="#000000"]
"Signature__Named_Entity" [shape=box label="Iir"]
"Signature":Named_Entity -> "Signature__Named_Entity" [color="#f57900" style=dotted]
}
Iir_Kind_Aggregate_Info
Format: Short
Accessor
Field
Type
Access
Description
Sub_Aggregate_Info
Field1
Iir
owned
Get info for the next dimension. NULL_IIR terminated.
Aggr_Dynamic_Flag
Flag3
Boolean
owned
For array aggregate only: If TRUE, the choices are not locally static. This flag is only valid when the array aggregate is constrained, ie has no ‘others’ choice.
Aggr_Named_Flag
Flag4
Boolean
owned
If TRUE, the aggregate is named, else it is positional.
Aggr_Low_Limit
Field2
Iir
ref
The following three fields are used to check bounds of an array aggregate. For named aggregate, low and high bounds are computed, for positional aggregate, the (minimum) number of elements is computed. Note there may be elements beyond the bounds, due to other choice. These fields may apply for the aggregate or for the aggregate and its brothers if the node is for a sub-aggregate. The low and high index choice, if any.
Aggr_High_Limit
Field3
Iir
ref
Highest index choice, if any.
Aggr_Min_Length
Field4
Iir_Int32
owned
The minimum number of elements, if any. This is a minimax.
Aggr_Others_Flag
Flag2
Boolean
owned
True if the choice list has an ‘others’ choice.
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Aggregate_Info" [style=filled fillcolor="#eeeeec" label="{Aggregate_Info|{<Sub_Aggregate_Info> Sub_Aggregate_Info|<Aggr_Dynamic_Flag> Aggr_Dynamic_Flag|<Aggr_Named_Flag> Aggr_Named_Flag|<Aggr_Low_Limit> Aggr_Low_Limit|<Aggr_High_Limit> Aggr_High_Limit|<Aggr_Min_Length> Aggr_Min_Length|<Aggr_Others_Flag> Aggr_Others_Flag}}"]
"Aggregate_Info__Sub_Aggregate_Info" [shape=box label="Iir"]
"Aggregate_Info":Sub_Aggregate_Info -> "Aggregate_Info__Sub_Aggregate_Info" [color="#000000"]
"Aggregate_Info__Aggr_Low_Limit" [shape=box label="Iir"]
"Aggregate_Info":Aggr_Low_Limit -> "Aggregate_Info__Aggr_Low_Limit" [color="#3465a4" style=dashed]
"Aggregate_Info__Aggr_High_Limit" [shape=box label="Iir"]
"Aggregate_Info":Aggr_High_Limit -> "Aggregate_Info__Aggr_High_Limit" [color="#3465a4" style=dashed]
}
Iir_Kind_Procedure_Call
Format: Short
Accessor
Field
Type
Access
Description
Prefix
Field0
Iir
owned
Prefix of a name.
Parameter_Association_Chain
Field2
Iir
chain
Parameter associations for procedure and function call.
Implementation
Field3
Iir
ref
Procedure declaration corresponding to the procedure to call.
Method_Object
Field4
Iir
ref
Object of a method call. NULL_IIR if the subprogram is not a method.
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Procedure_Call" [style=filled fillcolor="#eeeeec" label="{Procedure_Call|{<Prefix> Prefix|<Parameter_Association_Chain> Parameter_Association_Chain|<Implementation> Implementation|<Method_Object> Method_Object}}"]
"Procedure_Call__Prefix" [shape=box label="Iir"]
"Procedure_Call":Prefix -> "Procedure_Call__Prefix" [color="#000000"]
"Procedure_Call__Parameter_Association_Chain" [shape=box label="Iir"]
"Procedure_Call":Parameter_Association_Chain -> "Procedure_Call__Parameter_Association_Chain" [color="#4e9a06"]
"Procedure_Call__Implementation" [shape=box label="Iir"]
"Procedure_Call":Implementation -> "Procedure_Call__Implementation" [color="#3465a4" style=dashed]
"Procedure_Call__Method_Object" [shape=box label="Iir"]
"Procedure_Call":Method_Object -> "Procedure_Call__Method_Object" [color="#3465a4" style=dashed]
}
Iir_Kind_Record_Element_Constraint
Format: Short
Accessor
Field
Type
Access
Description
Parent
Field0
Iir
ref
Record subtype definition which defines this constraint.
Chain
Field2
Iir
chain next
For Owned_Elements_Chain, so that the node has an owner.
Identifier
Field3
Name_Id
owned
Get/Set the identifier of a declaration. Can also be used instead of get/set_label.
Element_Position
Field4
Iir_Index32
owned
Return the position of the element in the record, starting from 0 for the first record element, increasing by one for each successive element.
Subtype_Indication
Field5
Iir
maybe ref
The subtype indication of a declaration. If several declarations share the same subtype_indication like in: variable a, b : integer := 5; then only the first declaration is the owner of the subtype_indication.
Type
Field1
Iir
ref
—
Visible_Flag
Flag4
Boolean
owned
Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished.
Is_Ref
Flag12
Boolean
owned
Set to True if Maybe_Ref fields are references. This cannot be shared with Has_Identifier_List as: Is_Ref is set to True on all items but the first, while Has_Identifier_List is set to True on all items but the last. Furthermore Is_Ref appears in nodes where Has_Identifier_List is not present.
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Record_Element_Constraint" [style=filled fillcolor="#eeeeec" label="{Record_Element_Constraint|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Element_Position> Element_Position|<Subtype_Indication> Subtype_Indication|<Type> Type|<Visible_Flag> Visible_Flag|<Is_Ref> Is_Ref}}"]
"Record_Element_Constraint__Parent" [shape=box label="Iir"]
"Record_Element_Constraint":Parent -> "Record_Element_Constraint__Parent" [color="#3465a4" style=dashed]
"Record_Element_Constraint__Chain" [shape=box label="Iir"]
"Record_Element_Constraint":Chain -> "Record_Element_Constraint__Chain" [color="#4e9a06" style=bold]
"Record_Element_Constraint__Subtype_Indication" [shape=box label="Iir"]
"Record_Element_Constraint":Subtype_Indication -> "Record_Element_Constraint__Subtype_Indication" [color="#3465a4" style=dotted]
"Record_Element_Constraint__Type" [shape=box label="Iir"]
"Record_Element_Constraint":Type -> "Record_Element_Constraint__Type" [color="#3465a4" style=dashed]
}
Iir_Kind_Array_Element_Resolution
LRM08 6.3 Subtype declarations
array_element_resolution : := resolution_indication
Format: Short
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Array_Element_Resolution" [style=filled fillcolor="#eeeeec" label="{Array_Element_Resolution|{<Resolution_Indication> Resolution_Indication|<Element_Subtype_Indication> Element_Subtype_Indication}}"]
"Array_Element_Resolution__Resolution_Indication" [shape=box label="Iir"]
"Array_Element_Resolution":Resolution_Indication -> "Array_Element_Resolution__Resolution_Indication" [color="#000000"]
"Array_Element_Resolution__Element_Subtype_Indication" [shape=box label="Iir"]
"Array_Element_Resolution":Element_Subtype_Indication -> "Array_Element_Resolution__Element_Subtype_Indication" [color="#000000"]
}
Iir_Kind_Record_Resolution
LRM08 6.3 Subtype declarations
record_resolution : :=
record_element_resolution { , record_element_resolution }
Format: Short
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Record_Resolution" [style=filled fillcolor="#eeeeec" label="{Record_Resolution|{<Record_Element_Resolution_Chain> Record_Element_Resolution_Chain}}"]
"Record_Resolution__Record_Element_Resolution_Chain" [shape=box label="Iir"]
"Record_Resolution":Record_Element_Resolution_Chain -> "Record_Resolution__Record_Element_Resolution_Chain" [color="#4e9a06"]
}
Iir_Kind_Record_Element_Resolution
LRM08 6.3 Subtype declarations
record_element_resolution : :=
/ record_element / _simple_name resolution_indication
Format: Short
Accessor
Field
Type
Access
Description
Chain
Field2
Iir
chain next
—
Identifier
Field3
Name_Id
owned
Get/Set the identifier of a declaration. Can also be used instead of get/set_label.
Resolution_Indication
Field5
Iir
owned
Either a resolution function name, an array_element_resolution or a record_resolution
digraph {
rankdir="LR"
node [shape=record fontname="monospace" fontsize=10]
edge [fontname="monospace" fontsize=9]
"Record_Element_Resolution" [style=filled fillcolor="#eeeeec" label="{Record_Element_Resolution|{<Chain> Chain|<Identifier> Identifier|<Resolution_Indication> Resolution_Indication}}"]
"Record_Element_Resolution__Chain" [shape=box label="Iir"]
"Record_Element_Resolution":Chain -> "Record_Element_Resolution__Chain" [color="#4e9a06" style=bold]
"Record_Element_Resolution__Resolution_Indication" [shape=box label="Iir"]
"Record_Element_Resolution":Resolution_Indication -> "Record_Element_Resolution__Resolution_Indication" [color="#000000"]
}