Name

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_Character_Literal

Format: Short

Accessor

Field

Type

Access

Description

Type

Field1

Iir

ref

Identifier

Field3

Name_Id

owned

Get/Set the identifier of a declaration. Can also be used instead of get/set_label.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

Is_Forward_Ref

Flag1

Boolean

owned

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] "Character_Literal" [style=filled fillcolor="#eeeeec" label="{Character_Literal|{<Type> Type|<Identifier> Identifier|<Named_Entity> Named_Entity|<Base_Name> Base_Name|<Is_Forward_Ref> Is_Forward_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Character_Literal__Type" [shape=box label="Iir"] "Character_Literal":Type -> "Character_Literal__Type" [color="#3465a4" style=dashed] "Character_Literal__Named_Entity" [shape=box label="Iir"] "Character_Literal":Named_Entity -> "Character_Literal__Named_Entity" [color="#f57900" style=dotted] "Character_Literal__Base_Name" [shape=box label="Iir"] "Character_Literal":Base_Name -> "Character_Literal__Base_Name" [color="#3465a4" style=dashed] }

Iir_Kind_Simple_Name

Format: Short

Accessor

Field

Type

Access

Description

Identifier

Field3

Name_Id

owned

Get/Set the identifier of a declaration. Can also be used instead of get/set_label.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

Type

Field1

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.

Is_Forward_Ref

Flag1

Boolean

owned

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] "Simple_Name" [style=filled fillcolor="#eeeeec" label="{Simple_Name|{<Identifier> Identifier|<Named_Entity> Named_Entity|<Type> Type|<Base_Name> Base_Name|<Is_Forward_Ref> Is_Forward_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Simple_Name__Named_Entity" [shape=box label="Iir"] "Simple_Name":Named_Entity -> "Simple_Name__Named_Entity" [color="#f57900" style=dotted] "Simple_Name__Type" [shape=box label="Iir"] "Simple_Name":Type -> "Simple_Name__Type" [color="#3465a4" style=dashed] "Simple_Name__Base_Name" [shape=box label="Iir"] "Simple_Name":Base_Name -> "Simple_Name__Base_Name" [color="#3465a4" style=dashed] }

Iir_Kind_Selected_Name

Format: Short

Accessor

Field

Type

Access

Description

Prefix

Field0

Iir

owned

Prefix of a name.

Type

Field1

Iir

ref

Identifier

Field3

Name_Id

owned

Get/Set the identifier of a declaration. Can also be used instead of get/set_label.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

Is_Forward_Ref

Flag1

Boolean

owned

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] "Selected_Name" [style=filled fillcolor="#eeeeec" label="{Selected_Name|{<Prefix> Prefix|<Type> Type|<Identifier> Identifier|<Named_Entity> Named_Entity|<Base_Name> Base_Name|<Is_Forward_Ref> Is_Forward_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Selected_Name__Prefix" [shape=box label="Iir"] "Selected_Name":Prefix -> "Selected_Name__Prefix" [color="#000000"] "Selected_Name__Type" [shape=box label="Iir"] "Selected_Name":Type -> "Selected_Name__Type" [color="#3465a4" style=dashed] "Selected_Name__Named_Entity" [shape=box label="Iir"] "Selected_Name":Named_Entity -> "Selected_Name__Named_Entity" [color="#f57900" style=dotted] "Selected_Name__Base_Name" [shape=box label="Iir"] "Selected_Name":Base_Name -> "Selected_Name__Base_Name" [color="#3465a4" style=dashed] }

Iir_Kind_Operator_Symbol

Format: Short

Accessor

Field

Type

Access

Description

Type

Field1

Iir

ref

Identifier

Field3

Name_Id

owned

Get/Set the identifier of a declaration. Can also be used instead of get/set_label.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

Is_Forward_Ref

Flag1

Boolean

owned

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Operator_Symbol" [style=filled fillcolor="#eeeeec" label="{Operator_Symbol|{<Type> Type|<Identifier> Identifier|<Named_Entity> Named_Entity|<Base_Name> Base_Name|<Is_Forward_Ref> Is_Forward_Ref}}"] "Operator_Symbol__Type" [shape=box label="Iir"] "Operator_Symbol":Type -> "Operator_Symbol__Type" [color="#3465a4" style=dashed] "Operator_Symbol__Named_Entity" [shape=box label="Iir"] "Operator_Symbol":Named_Entity -> "Operator_Symbol__Named_Entity" [color="#f57900" style=dotted] "Operator_Symbol__Base_Name" [shape=box label="Iir"] "Operator_Symbol":Base_Name -> "Operator_Symbol__Base_Name" [color="#3465a4" style=dashed] }

Iir_Kind_Reference_Name

This doesn’t correspond to a name in the sources. This is an artificial name in the tree which is owned and reference another name.

Format: Short

Accessor

Field

Type

Access

Description

Type

Field1

Iir

ref

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

Referenced_Name

Field2

Iir

ref

The name from which the reference was created. Can be Null_Iir if the reference was created directly from a declaration.

Is_Forward_Ref

Flag1

Boolean

owned

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Reference_Name" [style=filled fillcolor="#eeeeec" label="{Reference_Name|{<Type> Type|<Named_Entity> Named_Entity|<Referenced_Name> Referenced_Name|<Is_Forward_Ref> Is_Forward_Ref|<Expr_Staticness> Expr_Staticness}}"] "Reference_Name__Type" [shape=box label="Iir"] "Reference_Name":Type -> "Reference_Name__Type" [color="#3465a4" style=dashed] "Reference_Name__Named_Entity" [shape=box label="Iir"] "Reference_Name":Named_Entity -> "Reference_Name__Named_Entity" [color="#f57900" style=dotted] "Reference_Name__Referenced_Name" [shape=box label="Iir"] "Reference_Name":Referenced_Name -> "Reference_Name__Referenced_Name" [color="#3465a4" style=dashed] }

Iir_Kind_External_Constant_Name

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.

Type

Field1

Iir

ref

Attr_Chain

Field2

Iir

forward ref

External_Pathname

Field3

Iir

owned

External pathname for an external name.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

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

Is_Forward_Ref

Flag1

Boolean

owned

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] "External_Constant_Name" [style=filled fillcolor="#eeeeec" label="{External_Constant_Name|{<Parent> Parent|<Type> Type|<Attr_Chain> Attr_Chain|<External_Pathname> External_Pathname|<Named_Entity> Named_Entity|<Subtype_Indication> Subtype_Indication|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Forward_Ref> Is_Forward_Ref|<Is_Ref> Is_Ref}}"] "External_Constant_Name__Parent" [shape=box label="Iir"] "External_Constant_Name":Parent -> "External_Constant_Name__Parent" [color="#3465a4" style=dashed] "External_Constant_Name__Type" [shape=box label="Iir"] "External_Constant_Name":Type -> "External_Constant_Name__Type" [color="#3465a4" style=dashed] "External_Constant_Name__Attr_Chain" [shape=box label="Iir"] "External_Constant_Name":Attr_Chain -> "External_Constant_Name__Attr_Chain" [color="#f57900" style=dashed] "External_Constant_Name__External_Pathname" [shape=box label="Iir"] "External_Constant_Name":External_Pathname -> "External_Constant_Name__External_Pathname" [color="#000000"] "External_Constant_Name__Named_Entity" [shape=box label="Iir"] "External_Constant_Name":Named_Entity -> "External_Constant_Name__Named_Entity" [color="#f57900" style=dotted] "External_Constant_Name__Subtype_Indication" [shape=box label="Iir"] "External_Constant_Name":Subtype_Indication -> "External_Constant_Name__Subtype_Indication" [color="#3465a4" style=dotted] }

Iir_Kind_External_Signal_Name

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.

Type

Field1

Iir

ref

Attr_Chain

Field2

Iir

forward ref

External_Pathname

Field3

Iir

owned

External pathname for an external name.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

Has_Active_Flag

Flag2

Boolean

owned

This flag is set on a signal when its activity is read by the user. Some signals handling can be optimized when this flag is set.

After_Drivers_Flag

Flag5

Boolean

owned

This flag is set by trans_analyze if there is a projected waveform assignment in the process.

Guarded_Signal_Flag

Flag8

Boolean

owned

True if the signal is guarded (has a signal kind).

Signal_Kind

Flag9

Iir_Signal_Kind

owned

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

Is_Forward_Ref

Flag1

Boolean

owned

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] "External_Signal_Name" [style=filled fillcolor="#eeeeec" label="{External_Signal_Name|{<Parent> Parent|<Type> Type|<Attr_Chain> Attr_Chain|<External_Pathname> External_Pathname|<Named_Entity> Named_Entity|<Subtype_Indication> Subtype_Indication|<Has_Active_Flag> Has_Active_Flag|<After_Drivers_Flag> After_Drivers_Flag|<Guarded_Signal_Flag> Guarded_Signal_Flag|<Signal_Kind> Signal_Kind|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Forward_Ref> Is_Forward_Ref|<Is_Ref> Is_Ref}}"] "External_Signal_Name__Parent" [shape=box label="Iir"] "External_Signal_Name":Parent -> "External_Signal_Name__Parent" [color="#3465a4" style=dashed] "External_Signal_Name__Type" [shape=box label="Iir"] "External_Signal_Name":Type -> "External_Signal_Name__Type" [color="#3465a4" style=dashed] "External_Signal_Name__Attr_Chain" [shape=box label="Iir"] "External_Signal_Name":Attr_Chain -> "External_Signal_Name__Attr_Chain" [color="#f57900" style=dashed] "External_Signal_Name__External_Pathname" [shape=box label="Iir"] "External_Signal_Name":External_Pathname -> "External_Signal_Name__External_Pathname" [color="#000000"] "External_Signal_Name__Named_Entity" [shape=box label="Iir"] "External_Signal_Name":Named_Entity -> "External_Signal_Name__Named_Entity" [color="#f57900" style=dotted] "External_Signal_Name__Subtype_Indication" [shape=box label="Iir"] "External_Signal_Name":Subtype_Indication -> "External_Signal_Name__Subtype_Indication" [color="#3465a4" style=dotted] }

Iir_Kind_External_Variable_Name

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.

Type

Field1

Iir

ref

Attr_Chain

Field2

Iir

forward ref

External_Pathname

Field3

Iir

owned

External pathname for an external name.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

Shared_Flag

Flag2

Boolean

owned

If true, the variable is declared shared.

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

Is_Forward_Ref

Flag1

Boolean

owned

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] "External_Variable_Name" [style=filled fillcolor="#eeeeec" label="{External_Variable_Name|{<Parent> Parent|<Type> Type|<Attr_Chain> Attr_Chain|<External_Pathname> External_Pathname|<Named_Entity> Named_Entity|<Subtype_Indication> Subtype_Indication|<Shared_Flag> Shared_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Forward_Ref> Is_Forward_Ref|<Is_Ref> Is_Ref}}"] "External_Variable_Name__Parent" [shape=box label="Iir"] "External_Variable_Name":Parent -> "External_Variable_Name__Parent" [color="#3465a4" style=dashed] "External_Variable_Name__Type" [shape=box label="Iir"] "External_Variable_Name":Type -> "External_Variable_Name__Type" [color="#3465a4" style=dashed] "External_Variable_Name__Attr_Chain" [shape=box label="Iir"] "External_Variable_Name":Attr_Chain -> "External_Variable_Name__Attr_Chain" [color="#f57900" style=dashed] "External_Variable_Name__External_Pathname" [shape=box label="Iir"] "External_Variable_Name":External_Pathname -> "External_Variable_Name__External_Pathname" [color="#000000"] "External_Variable_Name__Named_Entity" [shape=box label="Iir"] "External_Variable_Name":Named_Entity -> "External_Variable_Name__Named_Entity" [color="#f57900" style=dotted] "External_Variable_Name__Subtype_Indication" [shape=box label="Iir"] "External_Variable_Name":Subtype_Indication -> "External_Variable_Name__Subtype_Indication" [color="#3465a4" style=dotted] }

Iir_Kind_Selected_By_All_Name

Format: Short

Accessor

Field

Type

Access

Description

Prefix

Field0

Iir

owned

Prefix of a name.

Type

Field1

Iir

ref

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

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.

Is_Forward_Ref

Flag1

Boolean

owned

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Selected_By_All_Name" [style=filled fillcolor="#eeeeec" label="{Selected_By_All_Name|{<Prefix> Prefix|<Type> Type|<Named_Entity> Named_Entity|<Base_Name> Base_Name|<Is_Forward_Ref> Is_Forward_Ref|<Expr_Staticness> Expr_Staticness}}"] "Selected_By_All_Name__Prefix" [shape=box label="Iir"] "Selected_By_All_Name":Prefix -> "Selected_By_All_Name__Prefix" [color="#000000"] "Selected_By_All_Name__Type" [shape=box label="Iir"] "Selected_By_All_Name":Type -> "Selected_By_All_Name__Type" [color="#3465a4" style=dashed] "Selected_By_All_Name__Named_Entity" [shape=box label="Iir"] "Selected_By_All_Name":Named_Entity -> "Selected_By_All_Name__Named_Entity" [color="#f57900" style=dotted] "Selected_By_All_Name__Base_Name" [shape=box label="Iir"] "Selected_By_All_Name":Base_Name -> "Selected_By_All_Name__Base_Name" [color="#3465a4" style=dashed] }

Iir_Kind_Parenthesis_Name

Created by the parser, and mutated into the correct iir node: it can be either a function call, an indexed array, a type conversion or a slice name.

Format: Short

Accessor

Field

Type

Access

Description

Prefix

Field0

Iir

owned

Prefix of a name.

Type

Field1

Iir

ref

Always returns null_iir.

Association_Chain

Field2

Iir

chain

List of individual associations for association_element_by_individual. Associations for parenthesis_name.

Suffix

Field3

Iir

owned

Temporarly used during parse.

Named_Entity

Field4

Iir

maybe forward ref

The named entity designated by a name.

Is_Forward_Ref

Flag1

Boolean

owned

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Parenthesis_Name" [style=filled fillcolor="#eeeeec" label="{Parenthesis_Name|{<Prefix> Prefix|<Type> Type|<Association_Chain> Association_Chain|<Suffix> Suffix|<Named_Entity> Named_Entity|<Is_Forward_Ref> Is_Forward_Ref}}"] "Parenthesis_Name__Prefix" [shape=box label="Iir"] "Parenthesis_Name":Prefix -> "Parenthesis_Name__Prefix" [color="#000000"] "Parenthesis_Name__Type" [shape=box label="Iir"] "Parenthesis_Name":Type -> "Parenthesis_Name__Type" [color="#3465a4" style=dashed] "Parenthesis_Name__Association_Chain" [shape=box label="Iir"] "Parenthesis_Name":Association_Chain -> "Parenthesis_Name__Association_Chain" [color="#4e9a06"] "Parenthesis_Name__Suffix" [shape=box label="Iir"] "Parenthesis_Name":Suffix -> "Parenthesis_Name__Suffix" [color="#000000"] "Parenthesis_Name__Named_Entity" [shape=box label="Iir"] "Parenthesis_Name":Named_Entity -> "Parenthesis_Name__Named_Entity" [color="#f57900" style=dotted] }