Object Declaration

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_Object_Alias_Declaration

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.

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.

Name

Field4

Iir

owned

Subtype_Indication

Field5

Iir

maybe ref

The subtype indication may not be present.

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

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

Seen_Flag

Flag1

Boolean

owned

Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles).

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.

After_Drivers_Flag

Flag5

Boolean

owned

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

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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] "Object_Alias_Declaration" [style=filled fillcolor="#eeeeec" label="{Object_Alias_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Name> Name|<Subtype_Indication> Subtype_Indication|<Type> Type|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Seen_Flag> Seen_Flag|<Visible_Flag> Visible_Flag|<After_Drivers_Flag> After_Drivers_Flag|<Use_Flag> Use_Flag|<Is_Ref> Is_Ref}}"] "Object_Alias_Declaration__Parent" [shape=box label="Iir"] "Object_Alias_Declaration":Parent -> "Object_Alias_Declaration__Parent" [color="#3465a4" style=dashed] "Object_Alias_Declaration__Chain" [shape=box label="Iir"] "Object_Alias_Declaration":Chain -> "Object_Alias_Declaration__Chain" [color="#4e9a06" style=bold] "Object_Alias_Declaration__Name" [shape=box label="Iir"] "Object_Alias_Declaration":Name -> "Object_Alias_Declaration__Name" [color="#000000"] "Object_Alias_Declaration__Subtype_Indication" [shape=box label="Iir"] "Object_Alias_Declaration":Subtype_Indication -> "Object_Alias_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Object_Alias_Declaration__Type" [shape=box label="Iir"] "Object_Alias_Declaration":Type -> "Object_Alias_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Free_Quantity_Declaration

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.

Chain

Field2

Iir

chain next

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.

Default_Value

Field4

Iir

maybe ref

Get the default value of an object declaration. Null_iir if no default value. Note that this node can be shared between declarations if they are separated by comma, such as in: variable a, b : integer := 5; procedure p (a, b : natural := 7);

Identifier

Field3

Name_Id

owned

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

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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] "Free_Quantity_Declaration" [style=filled fillcolor="#eeeeec" label="{Free_Quantity_Declaration|{<Parent> Parent|<Chain> Chain|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Identifier> Identifier|<Type> Type|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Has_Identifier_List> Has_Identifier_List|<Is_Ref> Is_Ref}}"] "Free_Quantity_Declaration__Parent" [shape=box label="Iir"] "Free_Quantity_Declaration":Parent -> "Free_Quantity_Declaration__Parent" [color="#3465a4" style=dashed] "Free_Quantity_Declaration__Chain" [shape=box label="Iir"] "Free_Quantity_Declaration":Chain -> "Free_Quantity_Declaration__Chain" [color="#4e9a06" style=bold] "Free_Quantity_Declaration__Subtype_Indication" [shape=box label="Iir"] "Free_Quantity_Declaration":Subtype_Indication -> "Free_Quantity_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Free_Quantity_Declaration__Default_Value" [shape=box label="Iir"] "Free_Quantity_Declaration":Default_Value -> "Free_Quantity_Declaration__Default_Value" [color="#3465a4" style=dotted] "Free_Quantity_Declaration__Type" [shape=box label="Iir"] "Free_Quantity_Declaration":Type -> "Free_Quantity_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Spectrum_Quantity_Declaration

Format: Medium

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.

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.

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.

Magnitude_Expression

Field6

Iir

owned

Phase_Expression

Field7

Iir

owned

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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] "Spectrum_Quantity_Declaration" [style=filled fillcolor="#eeeeec" label="{Spectrum_Quantity_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Magnitude_Expression> Magnitude_Expression|<Phase_Expression> Phase_Expression|<Type> Type|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Has_Identifier_List> Has_Identifier_List|<Is_Ref> Is_Ref}}"] "Spectrum_Quantity_Declaration__Parent" [shape=box label="Iir"] "Spectrum_Quantity_Declaration":Parent -> "Spectrum_Quantity_Declaration__Parent" [color="#3465a4" style=dashed] "Spectrum_Quantity_Declaration__Chain" [shape=box label="Iir"] "Spectrum_Quantity_Declaration":Chain -> "Spectrum_Quantity_Declaration__Chain" [color="#4e9a06" style=bold] "Spectrum_Quantity_Declaration__Subtype_Indication" [shape=box label="Iir"] "Spectrum_Quantity_Declaration":Subtype_Indication -> "Spectrum_Quantity_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Spectrum_Quantity_Declaration__Magnitude_Expression" [shape=box label="Iir"] "Spectrum_Quantity_Declaration":Magnitude_Expression -> "Spectrum_Quantity_Declaration__Magnitude_Expression" [color="#000000"] "Spectrum_Quantity_Declaration__Phase_Expression" [shape=box label="Iir"] "Spectrum_Quantity_Declaration":Phase_Expression -> "Spectrum_Quantity_Declaration__Phase_Expression" [color="#000000"] "Spectrum_Quantity_Declaration__Type" [shape=box label="Iir"] "Spectrum_Quantity_Declaration":Type -> "Spectrum_Quantity_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Noise_Quantity_Declaration

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.

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.

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.

Power_Expression

Field4

Iir

owned

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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] "Noise_Quantity_Declaration" [style=filled fillcolor="#eeeeec" label="{Noise_Quantity_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Power_Expression> Power_Expression|<Type> Type|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Has_Identifier_List> Has_Identifier_List|<Is_Ref> Is_Ref}}"] "Noise_Quantity_Declaration__Parent" [shape=box label="Iir"] "Noise_Quantity_Declaration":Parent -> "Noise_Quantity_Declaration__Parent" [color="#3465a4" style=dashed] "Noise_Quantity_Declaration__Chain" [shape=box label="Iir"] "Noise_Quantity_Declaration":Chain -> "Noise_Quantity_Declaration__Chain" [color="#4e9a06" style=bold] "Noise_Quantity_Declaration__Subtype_Indication" [shape=box label="Iir"] "Noise_Quantity_Declaration":Subtype_Indication -> "Noise_Quantity_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Noise_Quantity_Declaration__Power_Expression" [shape=box label="Iir"] "Noise_Quantity_Declaration":Power_Expression -> "Noise_Quantity_Declaration__Power_Expression" [color="#000000"] "Noise_Quantity_Declaration__Type" [shape=box label="Iir"] "Noise_Quantity_Declaration":Type -> "Noise_Quantity_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Across_Quantity_Declaration

Format: Medium

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

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.

Default_Value

Field4

Iir

maybe ref

Get the default value of an object declaration. Null_iir if no default value. Note that this node can be shared between declarations if they are separated by comma, such as in: variable a, b : integer := 5; procedure p (a, b : natural := 7);

Tolerance

Field7

Iir

owned

Plus_Terminal_Name

Field8

Iir

owned

Set only for the first declaration.

Minus_Terminal_Name

Field9

Iir

owned

Set only for the first declaration.

Plus_Terminal

Field10

Iir

ref

Same as Plus_Terminal_Name when defined.

Minus_Terminal

Field11

Iir

ref

Same as Minus_Terminal_Name when defined.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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_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] "Across_Quantity_Declaration" [style=filled fillcolor="#eeeeec" label="{Across_Quantity_Declaration|{<Parent> Parent|<Type> Type|<Chain> Chain|<Identifier> Identifier|<Default_Value> Default_Value|<Tolerance> Tolerance|<Plus_Terminal_Name> Plus_Terminal_Name|<Minus_Terminal_Name> Minus_Terminal_Name|<Plus_Terminal> Plus_Terminal|<Minus_Terminal> Minus_Terminal|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Ref> Is_Ref}}"] "Across_Quantity_Declaration__Parent" [shape=box label="Iir"] "Across_Quantity_Declaration":Parent -> "Across_Quantity_Declaration__Parent" [color="#3465a4" style=dashed] "Across_Quantity_Declaration__Type" [shape=box label="Iir"] "Across_Quantity_Declaration":Type -> "Across_Quantity_Declaration__Type" [color="#3465a4" style=dashed] "Across_Quantity_Declaration__Chain" [shape=box label="Iir"] "Across_Quantity_Declaration":Chain -> "Across_Quantity_Declaration__Chain" [color="#4e9a06" style=bold] "Across_Quantity_Declaration__Default_Value" [shape=box label="Iir"] "Across_Quantity_Declaration":Default_Value -> "Across_Quantity_Declaration__Default_Value" [color="#3465a4" style=dotted] "Across_Quantity_Declaration__Tolerance" [shape=box label="Iir"] "Across_Quantity_Declaration":Tolerance -> "Across_Quantity_Declaration__Tolerance" [color="#000000"] "Across_Quantity_Declaration__Plus_Terminal_Name" [shape=box label="Iir"] "Across_Quantity_Declaration":Plus_Terminal_Name -> "Across_Quantity_Declaration__Plus_Terminal_Name" [color="#000000"] "Across_Quantity_Declaration__Minus_Terminal_Name" [shape=box label="Iir"] "Across_Quantity_Declaration":Minus_Terminal_Name -> "Across_Quantity_Declaration__Minus_Terminal_Name" [color="#000000"] "Across_Quantity_Declaration__Plus_Terminal" [shape=box label="Iir"] "Across_Quantity_Declaration":Plus_Terminal -> "Across_Quantity_Declaration__Plus_Terminal" [color="#3465a4" style=dashed] "Across_Quantity_Declaration__Minus_Terminal" [shape=box label="Iir"] "Across_Quantity_Declaration":Minus_Terminal -> "Across_Quantity_Declaration__Minus_Terminal" [color="#3465a4" style=dashed] }

Iir_Kind_Through_Quantity_Declaration

Format: Medium

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

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.

Default_Value

Field4

Iir

maybe ref

Get the default value of an object declaration. Null_iir if no default value. Note that this node can be shared between declarations if they are separated by comma, such as in: variable a, b : integer := 5; procedure p (a, b : natural := 7);

Tolerance

Field7

Iir

owned

Plus_Terminal_Name

Field8

Iir

owned

Set only for the first declaration.

Minus_Terminal_Name

Field9

Iir

owned

Set only for the first declaration.

Plus_Terminal

Field10

Iir

ref

Same as Plus_Terminal_Name when defined.

Minus_Terminal

Field11

Iir

ref

Same as Minus_Terminal_Name when defined.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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_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] "Through_Quantity_Declaration" [style=filled fillcolor="#eeeeec" label="{Through_Quantity_Declaration|{<Parent> Parent|<Type> Type|<Chain> Chain|<Identifier> Identifier|<Default_Value> Default_Value|<Tolerance> Tolerance|<Plus_Terminal_Name> Plus_Terminal_Name|<Minus_Terminal_Name> Minus_Terminal_Name|<Plus_Terminal> Plus_Terminal|<Minus_Terminal> Minus_Terminal|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Ref> Is_Ref}}"] "Through_Quantity_Declaration__Parent" [shape=box label="Iir"] "Through_Quantity_Declaration":Parent -> "Through_Quantity_Declaration__Parent" [color="#3465a4" style=dashed] "Through_Quantity_Declaration__Type" [shape=box label="Iir"] "Through_Quantity_Declaration":Type -> "Through_Quantity_Declaration__Type" [color="#3465a4" style=dashed] "Through_Quantity_Declaration__Chain" [shape=box label="Iir"] "Through_Quantity_Declaration":Chain -> "Through_Quantity_Declaration__Chain" [color="#4e9a06" style=bold] "Through_Quantity_Declaration__Default_Value" [shape=box label="Iir"] "Through_Quantity_Declaration":Default_Value -> "Through_Quantity_Declaration__Default_Value" [color="#3465a4" style=dotted] "Through_Quantity_Declaration__Tolerance" [shape=box label="Iir"] "Through_Quantity_Declaration":Tolerance -> "Through_Quantity_Declaration__Tolerance" [color="#000000"] "Through_Quantity_Declaration__Plus_Terminal_Name" [shape=box label="Iir"] "Through_Quantity_Declaration":Plus_Terminal_Name -> "Through_Quantity_Declaration__Plus_Terminal_Name" [color="#000000"] "Through_Quantity_Declaration__Minus_Terminal_Name" [shape=box label="Iir"] "Through_Quantity_Declaration":Minus_Terminal_Name -> "Through_Quantity_Declaration__Minus_Terminal_Name" [color="#000000"] "Through_Quantity_Declaration__Plus_Terminal" [shape=box label="Iir"] "Through_Quantity_Declaration":Plus_Terminal -> "Through_Quantity_Declaration__Plus_Terminal" [color="#3465a4" style=dashed] "Through_Quantity_Declaration__Minus_Terminal" [shape=box label="Iir"] "Through_Quantity_Declaration":Minus_Terminal -> "Through_Quantity_Declaration__Minus_Terminal" [color="#3465a4" style=dashed] }

Iir_Kind_File_Declaration

LRM08 6.4.2.5 File declarations

file_declaration ::=
   FILE identifier_list : subtype_indication [ file_open_information ] ;
file_open_information ::=
   [ OPEN file_open_kind_expression ] IS file_logical_name
file_logical_name ::= string_expression

LRM87

file_declaration ::=
   FILE identifier : subtype_indication IS [ mode ] file_logical_name ;

Format: Medium

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

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.

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.

File_Logical_Name

Field6

Iir

owned

File_Open_Kind

Field7

Iir

owned

This is not used in vhdl 87.

Mode

Flag13

Iir_Mode

owned

This is used only in vhdl 87.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

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_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] "File_Declaration" [style=filled fillcolor="#eeeeec" label="{File_Declaration|{<Parent> Parent|<Type> Type|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<File_Logical_Name> File_Logical_Name|<File_Open_Kind> File_Open_Kind|<Mode> Mode|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Mode> Has_Mode|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Ref> Is_Ref}}"] "File_Declaration__Parent" [shape=box label="Iir"] "File_Declaration":Parent -> "File_Declaration__Parent" [color="#3465a4" style=dashed] "File_Declaration__Type" [shape=box label="Iir"] "File_Declaration":Type -> "File_Declaration__Type" [color="#3465a4" style=dashed] "File_Declaration__Chain" [shape=box label="Iir"] "File_Declaration":Chain -> "File_Declaration__Chain" [color="#4e9a06" style=bold] "File_Declaration__Subtype_Indication" [shape=box label="Iir"] "File_Declaration":Subtype_Indication -> "File_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "File_Declaration__File_Logical_Name" [shape=box label="Iir"] "File_Declaration":File_Logical_Name -> "File_Declaration__File_Logical_Name" [color="#000000"] "File_Declaration__File_Open_Kind" [shape=box label="Iir"] "File_Declaration":File_Open_Kind -> "File_Declaration__File_Open_Kind" [color="#000000"] }

Iir_Kind_Guard_Signal_Declaration

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

Guard_Expression

Field2

Iir

owned

Expression defining the value of the implicit guard signal.

Identifier

Field3

Name_Id

owned

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

Guard_Sensitivity_List

Field4

Iir_List

of ref

Sensitivity list for the implicit guard signal.

Block_Statement

Field5

Iir

ref

Corresponding block statement for an implicit guard signal.

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.

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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_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] "Guard_Signal_Declaration" [style=filled fillcolor="#eeeeec" label="{Guard_Signal_Declaration|{<Parent> Parent|<Type> Type|<Guard_Expression> Guard_Expression|<Identifier> Identifier|<Guard_Sensitivity_List> Guard_Sensitivity_List|<Block_Statement> Block_Statement|<Has_Active_Flag> Has_Active_Flag|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Guarded_Signal_Flag> Guarded_Signal_Flag|<Signal_Kind> Signal_Kind|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Is_Ref> Is_Ref}}"] "Guard_Signal_Declaration__Parent" [shape=box label="Iir"] "Guard_Signal_Declaration":Parent -> "Guard_Signal_Declaration__Parent" [color="#3465a4" style=dashed] "Guard_Signal_Declaration__Type" [shape=box label="Iir"] "Guard_Signal_Declaration":Type -> "Guard_Signal_Declaration__Type" [color="#3465a4" style=dashed] "Guard_Signal_Declaration__Guard_Expression" [shape=box label="Iir"] "Guard_Signal_Declaration":Guard_Expression -> "Guard_Signal_Declaration__Guard_Expression" [color="#000000"] "Guard_Signal_Declaration__Guard_Sensitivity_List" [shape=box3d label="Iir_List"] "Guard_Signal_Declaration":Guard_Sensitivity_List -> "Guard_Signal_Declaration__Guard_Sensitivity_List" [color="#3465a4" style=dashed] "Guard_Signal_Declaration__Block_Statement" [shape=box label="Iir"] "Guard_Signal_Declaration":Block_Statement -> "Guard_Signal_Declaration__Block_Statement" [color="#3465a4" style=dashed] }

Iir_Kind_Signal_Declaration

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.

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.

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.

Default_Value

Field4

Iir

maybe ref

Get the default value of an object declaration. Null_iir if no default value. Note that this node can be shared between declarations if they are separated by comma, such as in: variable a, b : integer := 5; procedure p (a, b : natural := 7);

Type

Field1

Iir

ref

Has_Disconnect_Flag

Flag1

Boolean

owned

This flag is set on a signal_declaration, when a disconnection specification applies to the signal (or a subelement of it). This is used to check ‘others’ and ‘all’ designators.

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.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

After_Drivers_Flag

Flag5

Boolean

owned

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

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Guarded_Signal_Flag

Flag8

Boolean

owned

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

Signal_Kind

Flag9

Iir_Signal_Kind

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.

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

Note

Get/Set_Signal_Driver is present in the source but commented out. For a non-resolved signal: null_iir if the signal has no driver, or a process/concurrent_statement for which the signal should have a driver. This is used to catch at analyse time unresolved signals with several drivers.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Signal_Declaration" [style=filled fillcolor="#eeeeec" label="{Signal_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Has_Disconnect_Flag> Has_Disconnect_Flag|<Has_Active_Flag> Has_Active_Flag|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<After_Drivers_Flag> After_Drivers_Flag|<Use_Flag> Use_Flag|<Guarded_Signal_Flag> Guarded_Signal_Flag|<Signal_Kind> Signal_Kind|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Signal_Declaration__Parent" [shape=box label="Iir"] "Signal_Declaration":Parent -> "Signal_Declaration__Parent" [color="#3465a4" style=dashed] "Signal_Declaration__Chain" [shape=box label="Iir"] "Signal_Declaration":Chain -> "Signal_Declaration__Chain" [color="#4e9a06" style=bold] "Signal_Declaration__Subtype_Indication" [shape=box label="Iir"] "Signal_Declaration":Subtype_Indication -> "Signal_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Signal_Declaration__Default_Value" [shape=box label="Iir"] "Signal_Declaration":Default_Value -> "Signal_Declaration__Default_Value" [color="#3465a4" style=dotted] "Signal_Declaration__Type" [shape=box label="Iir"] "Signal_Declaration":Type -> "Signal_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Variable_Declaration

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.

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.

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.

Default_Value

Field4

Iir

maybe ref

Get the default value of an object declaration. Null_iir if no default value. Note that this node can be shared between declarations if they are separated by comma, such as in: variable a, b : integer := 5; procedure p (a, b : natural := 7);

Type

Field1

Iir

ref

Shared_Flag

Flag2

Boolean

owned

True if the variable is a shared variable.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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.

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] "Variable_Declaration" [style=filled fillcolor="#eeeeec" label="{Variable_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Shared_Flag> Shared_Flag|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Variable_Declaration__Parent" [shape=box label="Iir"] "Variable_Declaration":Parent -> "Variable_Declaration__Parent" [color="#3465a4" style=dashed] "Variable_Declaration__Chain" [shape=box label="Iir"] "Variable_Declaration":Chain -> "Variable_Declaration__Chain" [color="#4e9a06" style=bold] "Variable_Declaration__Subtype_Indication" [shape=box label="Iir"] "Variable_Declaration":Subtype_Indication -> "Variable_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Variable_Declaration__Default_Value" [shape=box label="Iir"] "Variable_Declaration":Default_Value -> "Variable_Declaration__Default_Value" [color="#3465a4" style=dotted] "Variable_Declaration__Type" [shape=box label="Iir"] "Variable_Declaration":Type -> "Variable_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Constant_Declaration

Format: Medium

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.

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.

Subtype_Indication

Field5

Iir

maybe ref

For iterator, this is the reconstructed subtype indication.

Default_Value

Field4

Iir

maybe ref

Default value of a deferred constant points to the full constant declaration.

Type

Field1

Iir

ref

Note that the type may be extracted from the default_value if the subtype indication is unconstrained.

Deferred_Declaration

Field6

Iir

forward ref

Summary: | constant C1 : integer; – Deferred declaration (in a package) | constant C2 : integer := 4; – Declaration | constant C1 : integer := 3; – Full declaration (in a body) | NAME Deferred_declaration Deferred_declaration_flag | C1 Null_iir or C1’ (*) True | C2 Null_Iir False | C1’ C1 False |(*): Deferred_declaration is Null_Iir as long as the full declaration | has not been analyzed.

Deferred_Declaration_Flag

Flag1

Boolean

owned

The deferred_declaration_flag must be set if the constant declaration is a deferred_constant declaration. Set only during sem.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Elaborated_Flag

Flag7

Boolean

owned

Set if not deferred, at end of the package.

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.

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] "Constant_Declaration" [style=filled fillcolor="#eeeeec" label="{Constant_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Deferred_Declaration> Deferred_Declaration|<Deferred_Declaration_Flag> Deferred_Declaration_Flag|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Elaborated_Flag> Elaborated_Flag|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Constant_Declaration__Parent" [shape=box label="Iir"] "Constant_Declaration":Parent -> "Constant_Declaration__Parent" [color="#3465a4" style=dashed] "Constant_Declaration__Chain" [shape=box label="Iir"] "Constant_Declaration":Chain -> "Constant_Declaration__Chain" [color="#4e9a06" style=bold] "Constant_Declaration__Subtype_Indication" [shape=box label="Iir"] "Constant_Declaration":Subtype_Indication -> "Constant_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Constant_Declaration__Default_Value" [shape=box label="Iir"] "Constant_Declaration":Default_Value -> "Constant_Declaration__Default_Value" [color="#3465a4" style=dotted] "Constant_Declaration__Type" [shape=box label="Iir"] "Constant_Declaration":Type -> "Constant_Declaration__Type" [color="#3465a4" style=dashed] "Constant_Declaration__Deferred_Declaration" [shape=box label="Iir"] "Constant_Declaration":Deferred_Declaration -> "Constant_Declaration__Deferred_Declaration" [color="#f57900" style=dashed] }

Iir_Kind_Iterator_Declaration

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.

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.

Subtype_Indication

Field5

Iir

maybe ref

For iterator, this is the reconstructed subtype indication.

Discrete_Range

Field4

Iir

owned

Discrete range of an iterator. During analysis, a subtype indication is created from this range.

Type

Field1

Iir

ref

Note that the type may be extracted from the default_value if the subtype indication is unconstrained.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

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.

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] "Iterator_Declaration" [style=filled fillcolor="#eeeeec" label="{Iterator_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Discrete_Range> Discrete_Range|<Type> Type|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Iterator_Declaration__Parent" [shape=box label="Iir"] "Iterator_Declaration":Parent -> "Iterator_Declaration__Parent" [color="#3465a4" style=dashed] "Iterator_Declaration__Chain" [shape=box label="Iir"] "Iterator_Declaration":Chain -> "Iterator_Declaration__Chain" [color="#4e9a06" style=bold] "Iterator_Declaration__Subtype_Indication" [shape=box label="Iir"] "Iterator_Declaration":Subtype_Indication -> "Iterator_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Iterator_Declaration__Discrete_Range" [shape=box label="Iir"] "Iterator_Declaration":Discrete_Range -> "Iterator_Declaration__Discrete_Range" [color="#000000"] "Iterator_Declaration__Type" [shape=box label="Iir"] "Iterator_Declaration":Type -> "Iterator_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Interface_Constant_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the parent of an interface declaration. The parent is an entity declaration, a subprogram specification, a component declaration, a loop statement, a block declaration or ?? Useful to distinguish a port and an interface.

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.

Subtype_Indication

Field5

Iir

maybe ref

For interface view, this is the subtype indication of the view indication.

Default_Value

Field4

Iir

maybe ref

Must always be null_iir for iir_kind_interface_file_declaration.

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

Mode

Flag13

Iir_Mode

owned

Mode of interfaces or file (v87).

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

Has_Class

Flag11

Boolean

owned

Layout flag for object declaration. If True, the object class is present.

Has_Semicolon

Flag16

Boolean

owned

Layout flag for interface declaration. If True, ‘;’ is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List.

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.

Open_Flag

Flag7

Boolean

owned

This flag is set for a very short time during the check that no in port is unconnected.

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] "Interface_Constant_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Constant_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Mode> Mode|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Mode> Has_Mode|<Has_Class> Has_Class|<Has_Semicolon> Has_Semicolon|<Is_Ref> Is_Ref|<Open_Flag> Open_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Interface_Constant_Declaration__Parent" [shape=box label="Iir"] "Interface_Constant_Declaration":Parent -> "Interface_Constant_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Constant_Declaration__Chain" [shape=box label="Iir"] "Interface_Constant_Declaration":Chain -> "Interface_Constant_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Constant_Declaration__Subtype_Indication" [shape=box label="Iir"] "Interface_Constant_Declaration":Subtype_Indication -> "Interface_Constant_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Interface_Constant_Declaration__Default_Value" [shape=box label="Iir"] "Interface_Constant_Declaration":Default_Value -> "Interface_Constant_Declaration__Default_Value" [color="#3465a4" style=dotted] "Interface_Constant_Declaration__Type" [shape=box label="Iir"] "Interface_Constant_Declaration":Type -> "Interface_Constant_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Interface_Variable_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the parent of an interface declaration. The parent is an entity declaration, a subprogram specification, a component declaration, a loop statement, a block declaration or ?? Useful to distinguish a port and an interface.

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.

Subtype_Indication

Field5

Iir

maybe ref

For interface view, this is the subtype indication of the view indication.

Default_Value

Field4

Iir

maybe ref

Must always be null_iir for iir_kind_interface_file_declaration.

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

Mode

Flag13

Iir_Mode

owned

Mode of interfaces or file (v87).

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

Has_Class

Flag11

Boolean

owned

Layout flag for object declaration. If True, the object class is present.

Has_Semicolon

Flag16

Boolean

owned

Layout flag for interface declaration. If True, ‘;’ is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List.

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.

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] "Interface_Variable_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Variable_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Mode> Mode|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Mode> Has_Mode|<Has_Class> Has_Class|<Has_Semicolon> Has_Semicolon|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Interface_Variable_Declaration__Parent" [shape=box label="Iir"] "Interface_Variable_Declaration":Parent -> "Interface_Variable_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Variable_Declaration__Chain" [shape=box label="Iir"] "Interface_Variable_Declaration":Chain -> "Interface_Variable_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Variable_Declaration__Subtype_Indication" [shape=box label="Iir"] "Interface_Variable_Declaration":Subtype_Indication -> "Interface_Variable_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Interface_Variable_Declaration__Default_Value" [shape=box label="Iir"] "Interface_Variable_Declaration":Default_Value -> "Interface_Variable_Declaration__Default_Value" [color="#3465a4" style=dotted] "Interface_Variable_Declaration__Type" [shape=box label="Iir"] "Interface_Variable_Declaration":Type -> "Interface_Variable_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Interface_Signal_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the parent of an interface declaration. The parent is an entity declaration, a subprogram specification, a component declaration, a loop statement, a block declaration or ?? Useful to distinguish a port and an interface.

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.

Subtype_Indication

Field5

Iir

maybe ref

For interface view, this is the subtype indication of the view indication.

Default_Value

Field4

Iir

maybe ref

Must always be null_iir for iir_kind_interface_file_declaration.

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

Mode

Flag13

Iir_Mode

owned

Mode of interfaces or file (v87).

Has_Disconnect_Flag

Flag1

Boolean

owned

This flag is set on a signal_declaration, when a disconnection specification applies to the signal (or a subelement of it). This is used to check ‘others’ and ‘all’ designators.

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.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

After_Drivers_Flag

Flag5

Boolean

owned

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

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Guarded_Signal_Flag

Flag8

Boolean

owned

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

Signal_Kind

Flag9

Iir_Signal_Kind

owned

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

Has_Class

Flag11

Boolean

owned

Layout flag for object declaration. If True, the object class is present.

Has_Semicolon

Flag16

Boolean

owned

Layout flag for interface declaration. If True, ‘;’ is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List.

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.

Open_Flag

Flag7

Boolean

owned

This flag is set for a very short time during the check that no in port is unconnected.

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] "Interface_Signal_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Signal_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Mode> Mode|<Has_Disconnect_Flag> Has_Disconnect_Flag|<Has_Active_Flag> Has_Active_Flag|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<After_Drivers_Flag> After_Drivers_Flag|<Use_Flag> Use_Flag|<Guarded_Signal_Flag> Guarded_Signal_Flag|<Signal_Kind> Signal_Kind|<Has_Mode> Has_Mode|<Has_Class> Has_Class|<Has_Semicolon> Has_Semicolon|<Is_Ref> Is_Ref|<Open_Flag> Open_Flag|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Interface_Signal_Declaration__Parent" [shape=box label="Iir"] "Interface_Signal_Declaration":Parent -> "Interface_Signal_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Signal_Declaration__Chain" [shape=box label="Iir"] "Interface_Signal_Declaration":Chain -> "Interface_Signal_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Signal_Declaration__Subtype_Indication" [shape=box label="Iir"] "Interface_Signal_Declaration":Subtype_Indication -> "Interface_Signal_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Interface_Signal_Declaration__Default_Value" [shape=box label="Iir"] "Interface_Signal_Declaration":Default_Value -> "Interface_Signal_Declaration__Default_Value" [color="#3465a4" style=dotted] "Interface_Signal_Declaration__Type" [shape=box label="Iir"] "Interface_Signal_Declaration":Type -> "Interface_Signal_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Interface_View_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the parent of an interface declaration. The parent is an entity declaration, a subprogram specification, a component declaration, a loop statement, a block declaration or ?? Useful to distinguish a port and an interface.

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.

Subtype_Indication

Field5

Iir

maybe ref

For interface view, this is the subtype indication of the view indication.

Mode_View_Indication

Field4

Iir

maybe ref

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

Has_Disconnect_Flag

Flag1

Boolean

owned

This flag is set on a signal_declaration, when a disconnection specification applies to the signal (or a subelement of it). This is used to check ‘others’ and ‘all’ designators.

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.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

After_Drivers_Flag

Flag5

Boolean

owned

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

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

Has_Class

Flag11

Boolean

owned

Layout flag for object declaration. If True, the object class is present.

Has_Semicolon

Flag16

Boolean

owned

Layout flag for interface declaration. If True, ‘;’ is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List.

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.

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] "Interface_View_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_View_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Mode_View_Indication> Mode_View_Indication|<Type> Type|<Has_Disconnect_Flag> Has_Disconnect_Flag|<Has_Active_Flag> Has_Active_Flag|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<After_Drivers_Flag> After_Drivers_Flag|<Use_Flag> Use_Flag|<Has_Mode> Has_Mode|<Has_Class> Has_Class|<Has_Semicolon> Has_Semicolon|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Interface_View_Declaration__Parent" [shape=box label="Iir"] "Interface_View_Declaration":Parent -> "Interface_View_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_View_Declaration__Chain" [shape=box label="Iir"] "Interface_View_Declaration":Chain -> "Interface_View_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_View_Declaration__Subtype_Indication" [shape=box label="Iir"] "Interface_View_Declaration":Subtype_Indication -> "Interface_View_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Interface_View_Declaration__Mode_View_Indication" [shape=box label="Iir"] "Interface_View_Declaration":Mode_View_Indication -> "Interface_View_Declaration__Mode_View_Indication" [color="#3465a4" style=dotted] "Interface_View_Declaration__Type" [shape=box label="Iir"] "Interface_View_Declaration":Type -> "Interface_View_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Interface_File_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the parent of an interface declaration. The parent is an entity declaration, a subprogram specification, a component declaration, a loop statement, a block declaration or ?? Useful to distinguish a port and an interface.

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.

Subtype_Indication

Field5

Iir

maybe ref

For interface view, this is the subtype indication of the view indication.

Default_Value

Field4

Iir

maybe ref

Must always be null_iir for iir_kind_interface_file_declaration.

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

Mode

Flag13

Iir_Mode

owned

Mode of interfaces or file (v87).

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

Has_Class

Flag11

Boolean

owned

Layout flag for object declaration. If True, the object class is present.

Has_Semicolon

Flag16

Boolean

owned

Layout flag for interface declaration. If True, ‘;’ is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List.

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.

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] "Interface_File_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_File_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Mode> Mode|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Mode> Has_Mode|<Has_Class> Has_Class|<Has_Semicolon> Has_Semicolon|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Interface_File_Declaration__Parent" [shape=box label="Iir"] "Interface_File_Declaration":Parent -> "Interface_File_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_File_Declaration__Chain" [shape=box label="Iir"] "Interface_File_Declaration":Chain -> "Interface_File_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_File_Declaration__Subtype_Indication" [shape=box label="Iir"] "Interface_File_Declaration":Subtype_Indication -> "Interface_File_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Interface_File_Declaration__Default_Value" [shape=box label="Iir"] "Interface_File_Declaration":Default_Value -> "Interface_File_Declaration__Default_Value" [color="#3465a4" style=dotted] "Interface_File_Declaration__Type" [shape=box label="Iir"] "Interface_File_Declaration":Type -> "Interface_File_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Interface_Quantity_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the parent of an interface declaration. The parent is an entity declaration, a subprogram specification, a component declaration, a loop statement, a block declaration or ?? Useful to distinguish a port and an interface.

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.

Subtype_Indication

Field5

Iir

maybe ref

For interface view, this is the subtype indication of the view indication.

Default_Value

Field4

Iir

maybe ref

Must always be null_iir for iir_kind_interface_file_declaration.

Type

Field1

Iir

ref

The type can be deduced from the subtype indication, but this field is present for uniformity (and speed).

Mode

Flag13

Iir_Mode

owned

Mode of interfaces or file (v87).

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Mode

Flag10

Boolean

owned

Layout flag for object declaration. If True, the mode is present.

Has_Class

Flag11

Boolean

owned

Layout flag for object declaration. If True, the object class is present.

Has_Semicolon

Flag16

Boolean

owned

Layout flag for interface declaration. If True, ‘;’ is present after the interface. In case of multiple names separated with colon, it cannot be set with Has_Identifier_List.

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.

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] "Interface_Quantity_Declaration" [style=filled fillcolor="#eeeeec" label="{Interface_Quantity_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Default_Value> Default_Value|<Type> Type|<Mode> Mode|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Mode> Has_Mode|<Has_Class> Has_Class|<Has_Semicolon> Has_Semicolon|<Is_Ref> Is_Ref|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness}}"] "Interface_Quantity_Declaration__Parent" [shape=box label="Iir"] "Interface_Quantity_Declaration":Parent -> "Interface_Quantity_Declaration__Parent" [color="#3465a4" style=dashed] "Interface_Quantity_Declaration__Chain" [shape=box label="Iir"] "Interface_Quantity_Declaration":Chain -> "Interface_Quantity_Declaration__Chain" [color="#4e9a06" style=bold] "Interface_Quantity_Declaration__Subtype_Indication" [shape=box label="Iir"] "Interface_Quantity_Declaration":Subtype_Indication -> "Interface_Quantity_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Interface_Quantity_Declaration__Default_Value" [shape=box label="Iir"] "Interface_Quantity_Declaration":Default_Value -> "Interface_Quantity_Declaration__Default_Value" [color="#3465a4" style=dotted] "Interface_Quantity_Declaration__Type" [shape=box label="Iir"] "Interface_Quantity_Declaration":Type -> "Interface_Quantity_Declaration__Type" [color="#3465a4" style=dashed] }