Association Element

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_Association_Element_By_Expression

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Actual

Field3

Iir

owned

Actual_Conversion

Field4

Iir

owned

A function call or a type conversion for the actual. FIXME: should be a name ?

Formal_Conversion

Field5

Iir

owned

A function call or a type conversion for the formal.

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

Inertial_Flag

Flag5

Boolean

owned

True for inertial associations (even without the inertial word).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_By_Expression" [style=filled fillcolor="#eeeeec" label="{Association_Element_By_Expression|{<Formal> Formal|<Chain> Chain|<Actual> Actual|<Actual_Conversion> Actual_Conversion|<Formal_Conversion> Formal_Conversion|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag|<Inertial_Flag> Inertial_Flag}}"] "Association_Element_By_Expression__Formal" [shape=box label="Iir"] "Association_Element_By_Expression":Formal -> "Association_Element_By_Expression__Formal" [color="#000000"] "Association_Element_By_Expression__Chain" [shape=box label="Iir"] "Association_Element_By_Expression":Chain -> "Association_Element_By_Expression__Chain" [color="#4e9a06" style=bold] "Association_Element_By_Expression__Actual" [shape=box label="Iir"] "Association_Element_By_Expression":Actual -> "Association_Element_By_Expression__Actual" [color="#000000"] "Association_Element_By_Expression__Actual_Conversion" [shape=box label="Iir"] "Association_Element_By_Expression":Actual_Conversion -> "Association_Element_By_Expression__Actual_Conversion" [color="#000000"] "Association_Element_By_Expression__Formal_Conversion" [shape=box label="Iir"] "Association_Element_By_Expression":Formal_Conversion -> "Association_Element_By_Expression__Formal_Conversion" [color="#000000"] }

Iir_Kind_Association_Element_By_Name

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Actual

Field3

Iir

owned

Actual_Conversion

Field4

Iir

owned

A function call or a type conversion for the actual. FIXME: should be a name ?

Formal_Conversion

Field5

Iir

owned

A function call or a type conversion for the formal.

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_By_Name" [style=filled fillcolor="#eeeeec" label="{Association_Element_By_Name|{<Formal> Formal|<Chain> Chain|<Actual> Actual|<Actual_Conversion> Actual_Conversion|<Formal_Conversion> Formal_Conversion|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag}}"] "Association_Element_By_Name__Formal" [shape=box label="Iir"] "Association_Element_By_Name":Formal -> "Association_Element_By_Name__Formal" [color="#000000"] "Association_Element_By_Name__Chain" [shape=box label="Iir"] "Association_Element_By_Name":Chain -> "Association_Element_By_Name__Chain" [color="#4e9a06" style=bold] "Association_Element_By_Name__Actual" [shape=box label="Iir"] "Association_Element_By_Name":Actual -> "Association_Element_By_Name__Actual" [color="#000000"] "Association_Element_By_Name__Actual_Conversion" [shape=box label="Iir"] "Association_Element_By_Name":Actual_Conversion -> "Association_Element_By_Name__Actual_Conversion" [color="#000000"] "Association_Element_By_Name__Formal_Conversion" [shape=box label="Iir"] "Association_Element_By_Name":Formal_Conversion -> "Association_Element_By_Name__Formal_Conversion" [color="#000000"] }

Iir_Kind_Association_Element_By_Individual

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Individual_Association_Chain

Field4

Iir

chain

List of choices for association_element_by_individual.

Actual_Type_Definition

Field3

Iir

owned

Owner of Actual_Type if needed.

Actual_Type

Field5

Iir

ref

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. Subtype indication for a type association.

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

Choice_Staticness

State1

Iir_Staticness

owned

Must be Locally unless there is an error on one choice.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_By_Individual" [style=filled fillcolor="#eeeeec" label="{Association_Element_By_Individual|{<Formal> Formal|<Chain> Chain|<Individual_Association_Chain> Individual_Association_Chain|<Actual_Type_Definition> Actual_Type_Definition|<Actual_Type> Actual_Type|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag|<Choice_Staticness> Choice_Staticness}}"] "Association_Element_By_Individual__Formal" [shape=box label="Iir"] "Association_Element_By_Individual":Formal -> "Association_Element_By_Individual__Formal" [color="#000000"] "Association_Element_By_Individual__Chain" [shape=box label="Iir"] "Association_Element_By_Individual":Chain -> "Association_Element_By_Individual__Chain" [color="#4e9a06" style=bold] "Association_Element_By_Individual__Individual_Association_Chain" [shape=box label="Iir"] "Association_Element_By_Individual":Individual_Association_Chain -> "Association_Element_By_Individual__Individual_Association_Chain" [color="#4e9a06"] "Association_Element_By_Individual__Actual_Type_Definition" [shape=box label="Iir"] "Association_Element_By_Individual":Actual_Type_Definition -> "Association_Element_By_Individual__Actual_Type_Definition" [color="#000000"] "Association_Element_By_Individual__Actual_Type" [shape=box label="Iir"] "Association_Element_By_Individual":Actual_Type -> "Association_Element_By_Individual__Actual_Type" [color="#3465a4" style=dashed] }

Iir_Kind_Association_Element_Open

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Open_Actual

Field3

Iir

ref

For ‘<>’ default interface subprogram.

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

Artificial_Flag

Flag3

Boolean

owned

Set when the node was artificially created, eg by canon. Currently used only by association_element_open.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_Open" [style=filled fillcolor="#eeeeec" label="{Association_Element_Open|{<Formal> Formal|<Chain> Chain|<Open_Actual> Open_Actual|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<Artificial_Flag> Artificial_Flag|<In_Formal_Flag> In_Formal_Flag}}"] "Association_Element_Open__Formal" [shape=box label="Iir"] "Association_Element_Open":Formal -> "Association_Element_Open__Formal" [color="#000000"] "Association_Element_Open__Chain" [shape=box label="Iir"] "Association_Element_Open":Chain -> "Association_Element_Open__Chain" [color="#4e9a06" style=bold] "Association_Element_Open__Open_Actual" [shape=box label="Iir"] "Association_Element_Open":Open_Actual -> "Association_Element_Open__Open_Actual" [color="#3465a4" style=dashed] }

Iir_Kind_Association_Element_Package

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Actual

Field3

Iir

owned

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_Package" [style=filled fillcolor="#eeeeec" label="{Association_Element_Package|{<Formal> Formal|<Chain> Chain|<Actual> Actual|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag}}"] "Association_Element_Package__Formal" [shape=box label="Iir"] "Association_Element_Package":Formal -> "Association_Element_Package__Formal" [color="#000000"] "Association_Element_Package__Chain" [shape=box label="Iir"] "Association_Element_Package":Chain -> "Association_Element_Package__Chain" [color="#4e9a06" style=bold] "Association_Element_Package__Actual" [shape=box label="Iir"] "Association_Element_Package":Actual -> "Association_Element_Package__Actual" [color="#000000"] }

Iir_Kind_Association_Element_Type

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Actual

Field3

Iir

owned

Subprogram_Association_Chain

Field4

Iir

chain

Chain of implicit subprogram associations for a type association.

Actual_Type

Field5

Iir

ref

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. Subtype indication for a type association.

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_Type" [style=filled fillcolor="#eeeeec" label="{Association_Element_Type|{<Formal> Formal|<Chain> Chain|<Actual> Actual|<Subprogram_Association_Chain> Subprogram_Association_Chain|<Actual_Type> Actual_Type|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag}}"] "Association_Element_Type__Formal" [shape=box label="Iir"] "Association_Element_Type":Formal -> "Association_Element_Type__Formal" [color="#000000"] "Association_Element_Type__Chain" [shape=box label="Iir"] "Association_Element_Type":Chain -> "Association_Element_Type__Chain" [color="#4e9a06" style=bold] "Association_Element_Type__Actual" [shape=box label="Iir"] "Association_Element_Type":Actual -> "Association_Element_Type__Actual" [color="#000000"] "Association_Element_Type__Subprogram_Association_Chain" [shape=box label="Iir"] "Association_Element_Type":Subprogram_Association_Chain -> "Association_Element_Type__Subprogram_Association_Chain" [color="#4e9a06"] "Association_Element_Type__Actual_Type" [shape=box label="Iir"] "Association_Element_Type":Actual_Type -> "Association_Element_Type__Actual_Type" [color="#3465a4" style=dashed] }

Iir_Kind_Association_Element_Subprogram

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Actual

Field3

Iir

owned

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_Subprogram" [style=filled fillcolor="#eeeeec" label="{Association_Element_Subprogram|{<Formal> Formal|<Chain> Chain|<Actual> Actual|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag}}"] "Association_Element_Subprogram__Formal" [shape=box label="Iir"] "Association_Element_Subprogram":Formal -> "Association_Element_Subprogram__Formal" [color="#000000"] "Association_Element_Subprogram__Chain" [shape=box label="Iir"] "Association_Element_Subprogram":Chain -> "Association_Element_Subprogram__Chain" [color="#4e9a06" style=bold] "Association_Element_Subprogram__Actual" [shape=box label="Iir"] "Association_Element_Subprogram":Actual -> "Association_Element_Subprogram__Actual" [color="#000000"] }

Iir_Kind_Association_Element_Terminal

These are used for association element of an association list with an interface (ie subprogram call, port map, generic map).

Format: Short

Accessor

Field

Type

Access

Description

Formal

Field1

Iir

owned

Chain

Field2

Iir

chain next

Actual

Field3

Iir

owned

Whole_Association_Flag

Flag1

Boolean

owned

Get/Set the whole association flag (true if the formal is associated in whole and not individually, see LRM93 4.3.2.2)

Collapse_Signal_Flag

Flag2

Boolean

owned

This flag is set when the formal signal can be the actual signal. In this case, the formal signal is not created, and the actual is shared. This is the signal collapsing optimisation.

In_Formal_Flag

Flag4

Boolean

owned

True if the name appears in a formal_part. In that case, some checks must be disabled (eg: the expression of a type conversion can be a write-only interface).

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Association_Element_Terminal" [style=filled fillcolor="#eeeeec" label="{Association_Element_Terminal|{<Formal> Formal|<Chain> Chain|<Actual> Actual|<Whole_Association_Flag> Whole_Association_Flag|<Collapse_Signal_Flag> Collapse_Signal_Flag|<In_Formal_Flag> In_Formal_Flag}}"] "Association_Element_Terminal__Formal" [shape=box label="Iir"] "Association_Element_Terminal":Formal -> "Association_Element_Terminal__Formal" [color="#000000"] "Association_Element_Terminal__Chain" [shape=box label="Iir"] "Association_Element_Terminal":Chain -> "Association_Element_Terminal__Chain" [color="#4e9a06" style=bold] "Association_Element_Terminal__Actual" [shape=box label="Iir"] "Association_Element_Terminal":Actual -> "Association_Element_Terminal__Actual" [color="#000000"] }