Nonoverloadable 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_Type_Declaration

LRM08 6.3 Type declarations

type_declaration ::=
     full_type_declaration
   | incomplete_type_declaration
full_type_declaration ::=
   TYPE identifier IS type_definition ;
type_definition ::=
     scalar_type_definition
   | composite_type_definition
   | access_type_definition
   | file_type_definition
   | protected_type_definition

LRM08 5.4.2 Incomplete type declarations

incomplete_type_declaration ::=
     TYPE identifier ;

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_Definition

Field1

Iir

owned

Definition of the type. Note: the type definition can be a real type (unconstrained array, enumeration, file, record, access) or a subtype (integer, floating point). The parser set this field to null_iir for an incomplete type declaration. This field is set to an incomplete_type_definition node when analyzed.

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.

Incomplete_Type_Declaration

Field5

Iir

ref

Set if the type declaration completes an incomplete type declaration

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Type_Declaration" [style=filled fillcolor="#eeeeec" label="{Type_Declaration|{<Parent> Parent|<Type_Definition> Type_Definition|<Chain> Chain|<Identifier> Identifier|<Incomplete_Type_Declaration> Incomplete_Type_Declaration|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Type_Declaration__Parent" [shape=box label="Iir"] "Type_Declaration":Parent -> "Type_Declaration__Parent" [color="#3465a4" style=dashed] "Type_Declaration__Type_Definition" [shape=box label="Iir"] "Type_Declaration":Type_Definition -> "Type_Declaration__Type_Definition" [color="#000000"] "Type_Declaration__Chain" [shape=box label="Iir"] "Type_Declaration":Chain -> "Type_Declaration__Chain" [color="#4e9a06" style=bold] "Type_Declaration__Incomplete_Type_Declaration" [shape=box label="Iir"] "Type_Declaration":Incomplete_Type_Declaration -> "Type_Declaration__Incomplete_Type_Declaration" [color="#3465a4" style=dashed] }

Iir_Kind_Anonymous_Type_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_Definition

Field1

Iir

owned

Chain

Field2

Iir

chain next

Identifier

Field3

Name_Id

owned

Used for informative purpose only.

Subtype_Definition

Field4

Iir

forward ref

The subtype definition associated with the type declaration (if any).

Incomplete_Type_Declaration

Field5

Iir

ref

Set if the type declaration completes an incomplete type declaration

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Anonymous_Type_Declaration" [style=filled fillcolor="#eeeeec" label="{Anonymous_Type_Declaration|{<Parent> Parent|<Type_Definition> Type_Definition|<Chain> Chain|<Identifier> Identifier|<Subtype_Definition> Subtype_Definition|<Incomplete_Type_Declaration> Incomplete_Type_Declaration}}"] "Anonymous_Type_Declaration__Parent" [shape=box label="Iir"] "Anonymous_Type_Declaration":Parent -> "Anonymous_Type_Declaration__Parent" [color="#3465a4" style=dashed] "Anonymous_Type_Declaration__Type_Definition" [shape=box label="Iir"] "Anonymous_Type_Declaration":Type_Definition -> "Anonymous_Type_Declaration__Type_Definition" [color="#000000"] "Anonymous_Type_Declaration__Chain" [shape=box label="Iir"] "Anonymous_Type_Declaration":Chain -> "Anonymous_Type_Declaration__Chain" [color="#4e9a06" style=bold] "Anonymous_Type_Declaration__Subtype_Definition" [shape=box label="Iir"] "Anonymous_Type_Declaration":Subtype_Definition -> "Anonymous_Type_Declaration__Subtype_Definition" [color="#f57900" style=dashed] "Anonymous_Type_Declaration__Incomplete_Type_Declaration" [shape=box label="Iir"] "Anonymous_Type_Declaration":Incomplete_Type_Declaration -> "Anonymous_Type_Declaration__Incomplete_Type_Declaration" [color="#3465a4" style=dashed] }

Iir_Kind_Subtype_Declaration

LRM08 6.3 Subtype declarations

subtype_declaration ::=
   SUBTYPE identifier IS subtype_indication ;

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 integer and real types, the subtype_indication of the implicitly declared subtype for the type is the subtype definition.

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.

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] "Subtype_Declaration" [style=filled fillcolor="#eeeeec" label="{Subtype_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Type> Type|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Is_Ref> Is_Ref}}"] "Subtype_Declaration__Parent" [shape=box label="Iir"] "Subtype_Declaration":Parent -> "Subtype_Declaration__Parent" [color="#3465a4" style=dashed] "Subtype_Declaration__Chain" [shape=box label="Iir"] "Subtype_Declaration":Chain -> "Subtype_Declaration__Chain" [color="#4e9a06" style=bold] "Subtype_Declaration__Subtype_Indication" [shape=box label="Iir"] "Subtype_Declaration":Subtype_Indication -> "Subtype_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Subtype_Declaration__Type" [shape=box label="Iir"] "Subtype_Declaration":Type -> "Subtype_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Nature_Declaration

AMS-LRM17 6.11 Nature and subnature declarations

nature_declaration ::=
  NATURE identifier IS nature_definition ;

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.

Nature_Definition

Field1

Iir

owned

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.

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Nature_Declaration" [style=filled fillcolor="#eeeeec" label="{Nature_Declaration|{<Parent> Parent|<Nature_Definition> Nature_Definition|<Chain> Chain|<Identifier> Identifier|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Nature_Declaration__Parent" [shape=box label="Iir"] "Nature_Declaration":Parent -> "Nature_Declaration__Parent" [color="#3465a4" style=dashed] "Nature_Declaration__Nature_Definition" [shape=box label="Iir"] "Nature_Declaration":Nature_Definition -> "Nature_Declaration__Nature_Definition" [color="#000000"] "Nature_Declaration__Chain" [shape=box label="Iir"] "Nature_Declaration":Chain -> "Nature_Declaration__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Subnature_Declaration

AMS-LRM17 6.11 Nature and subnature declarations

subnature_declaration ::=
  SUBNATURE identifier IS subnature_indication ;

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.

Identifier

Field3

Name_Id

owned

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

Subnature_Indication

Field5

Iir

owned

Nature

Field1

Iir

ref

Chain

Field2

Iir

chain next

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Subnature_Declaration" [style=filled fillcolor="#eeeeec" label="{Subnature_Declaration|{<Parent> Parent|<Identifier> Identifier|<Subnature_Indication> Subnature_Indication|<Nature> Nature|<Chain> Chain|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Subnature_Declaration__Parent" [shape=box label="Iir"] "Subnature_Declaration":Parent -> "Subnature_Declaration__Parent" [color="#3465a4" style=dashed] "Subnature_Declaration__Subnature_Indication" [shape=box label="Iir"] "Subnature_Declaration":Subnature_Indication -> "Subnature_Declaration__Subnature_Indication" [color="#000000"] "Subnature_Declaration__Nature" [shape=box label="Iir"] "Subnature_Declaration":Nature -> "Subnature_Declaration__Nature" [color="#3465a4" style=dashed] "Subnature_Declaration__Chain" [shape=box label="Iir"] "Subnature_Declaration":Chain -> "Subnature_Declaration__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Package_Header

Format: Medium

Accessor

Field

Type

Access

Description

Generic_Chain

Field6

Iir

chain

Generic_Map_Aspect_Chain

Field8

Iir

chain

Generic map aspect list.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Package_Header" [style=filled fillcolor="#eeeeec" label="{Package_Header|{<Generic_Chain> Generic_Chain|<Generic_Map_Aspect_Chain> Generic_Map_Aspect_Chain}}"] "Package_Header__Generic_Chain" [shape=box label="Iir"] "Package_Header":Generic_Chain -> "Package_Header__Generic_Chain" [color="#4e9a06"] "Package_Header__Generic_Map_Aspect_Chain" [shape=box label="Iir"] "Package_Header":Generic_Map_Aspect_Chain -> "Package_Header__Generic_Map_Aspect_Chain" [color="#4e9a06"] }

Iir_Kind_Unit_Declaration

LRM08 5.2.4 Physical types

primary_unit_declaration ::= identifier ;
secondary_unit_declaration ::= identifier = physical_literal ;
physical_literal ::= [ abstract_literal ] /unit/_name

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

The parent of a physical unit is the same parent as the type declaration.

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.

Physical_Literal

Field4

Iir

owned

The Physical_Literal is the expression that defines the value of a unit. It is evaluated during analysis and thus expressed as a multiple of the primary unit. That’s true even for the primary unit whose value is thus 1.

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

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

Used for time literals, to compute minimal resolution.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Unit_Declaration" [style=filled fillcolor="#eeeeec" label="{Unit_Declaration|{<Parent> Parent|<Type> Type|<Chain> Chain|<Identifier> Identifier|<Physical_Literal> Physical_Literal|<Expr_Staticness> Expr_Staticness|<Name_Staticness> Name_Staticness|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Unit_Declaration__Parent" [shape=box label="Iir"] "Unit_Declaration":Parent -> "Unit_Declaration__Parent" [color="#3465a4" style=dashed] "Unit_Declaration__Type" [shape=box label="Iir"] "Unit_Declaration":Type -> "Unit_Declaration__Type" [color="#3465a4" style=dashed] "Unit_Declaration__Chain" [shape=box label="Iir"] "Unit_Declaration":Chain -> "Unit_Declaration__Chain" [color="#4e9a06" style=bold] "Unit_Declaration__Physical_Literal" [shape=box label="Iir"] "Unit_Declaration":Physical_Literal -> "Unit_Declaration__Physical_Literal" [color="#000000"] }

Iir_Kind_Library_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Design_File_Chain

Field1

Iir

chain

Design files in the library.

Chain

Field2

Iir

chain next

Identifier

Field3

Name_Id

owned

This node is used to contain all a library. Only internally used. Name (identifier) of the library.

Date

Field4

Date_Type

owned

Most recent date in this library.

Library_Directory

Field5

Name_Id

owned

System directory where the library is stored.

Elab_Flag

Flag3

Boolean

owned

Used to compute dependencies.

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.

Vendor_Library_Flag

Flag1

Boolean

owned

Set on vendor libraries to turn off warnings on unbounded instantiation. The vendor libraries are those providing components/entities for hard-macros.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Library_Declaration" [style=filled fillcolor="#eeeeec" label="{Library_Declaration|{<Design_File_Chain> Design_File_Chain|<Chain> Chain|<Identifier> Identifier|<Date> Date|<Library_Directory> Library_Directory|<Elab_Flag> Elab_Flag|<Visible_Flag> Visible_Flag|<Vendor_Library_Flag> Vendor_Library_Flag}}"] "Library_Declaration__Design_File_Chain" [shape=box label="Iir"] "Library_Declaration":Design_File_Chain -> "Library_Declaration__Design_File_Chain" [color="#4e9a06"] "Library_Declaration__Chain" [shape=box label="Iir"] "Library_Declaration":Chain -> "Library_Declaration__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Component_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.

Generic_Chain

Field6

Iir

chain

Port_Chain

Field7

Iir

chain

Macro_Expand_Flag

Flag2

Boolean

owned

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_Is

Flag7

Boolean

owned

Layout flag: true if ‘is’ is present.

End_Has_Reserved_Id

Flag8

Boolean

owned

Should always be true

End_Has_Identifier

Flag9

Boolean

owned

Layout flag: true if ‘end’ is followed by the identifier.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Component_Declaration" [style=filled fillcolor="#eeeeec" label="{Component_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Generic_Chain> Generic_Chain|<Port_Chain> Port_Chain|<Macro_Expand_Flag> Macro_Expand_Flag|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Is> Has_Is|<End_Has_Reserved_Id> End_Has_Reserved_Id|<End_Has_Identifier> End_Has_Identifier}}"] "Component_Declaration__Parent" [shape=box label="Iir"] "Component_Declaration":Parent -> "Component_Declaration__Parent" [color="#3465a4" style=dashed] "Component_Declaration__Chain" [shape=box label="Iir"] "Component_Declaration":Chain -> "Component_Declaration__Chain" [color="#4e9a06" style=bold] "Component_Declaration__Generic_Chain" [shape=box label="Iir"] "Component_Declaration":Generic_Chain -> "Component_Declaration__Generic_Chain" [color="#4e9a06"] "Component_Declaration__Port_Chain" [shape=box label="Iir"] "Component_Declaration":Port_Chain -> "Component_Declaration__Port_Chain" [color="#4e9a06"] }

Iir_Kind_Attribute_Declaration

LRM08 6.7 Attribute declarations

attribute_declaration ::=
   ATTRIBUTE identifier : type_mark ;

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

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.

Type_Mark

Field4

Iir

owned

The type_mark that appeared in qualified expressions or type conversions.

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Attribute_Declaration" [style=filled fillcolor="#eeeeec" label="{Attribute_Declaration|{<Parent> Parent|<Type> Type|<Chain> Chain|<Identifier> Identifier|<Type_Mark> Type_Mark|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Attribute_Declaration__Parent" [shape=box label="Iir"] "Attribute_Declaration":Parent -> "Attribute_Declaration__Parent" [color="#3465a4" style=dashed] "Attribute_Declaration__Type" [shape=box label="Iir"] "Attribute_Declaration":Type -> "Attribute_Declaration__Type" [color="#3465a4" style=dashed] "Attribute_Declaration__Chain" [shape=box label="Iir"] "Attribute_Declaration":Chain -> "Attribute_Declaration__Chain" [color="#4e9a06" style=bold] "Attribute_Declaration__Type_Mark" [shape=box label="Iir"] "Attribute_Declaration":Type_Mark -> "Attribute_Declaration__Type_Mark" [color="#000000"] }

Iir_Kind_Group_Template_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.

Entity_Class_Entry_Chain

Field1

Iir

chain

List of entity class entry. To handle `<>’, the last element of the list can be an entity_class of kind tok_box.

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.

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Group_Template_Declaration" [style=filled fillcolor="#eeeeec" label="{Group_Template_Declaration|{<Parent> Parent|<Entity_Class_Entry_Chain> Entity_Class_Entry_Chain|<Chain> Chain|<Identifier> Identifier|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Group_Template_Declaration__Parent" [shape=box label="Iir"] "Group_Template_Declaration":Parent -> "Group_Template_Declaration__Parent" [color="#3465a4" style=dashed] "Group_Template_Declaration__Entity_Class_Entry_Chain" [shape=box label="Iir"] "Group_Template_Declaration":Entity_Class_Entry_Chain -> "Group_Template_Declaration__Entity_Class_Entry_Chain" [color="#4e9a06"] "Group_Template_Declaration__Chain" [shape=box label="Iir"] "Group_Template_Declaration":Chain -> "Group_Template_Declaration__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Group_Declaration

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

The declaration containing this type declaration.

Group_Constituent_List

Field1

Iir_Flist

owned

List of constituents.

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.

Group_Template_Name

Field5

Iir

owned

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Group_Declaration" [style=filled fillcolor="#eeeeec" label="{Group_Declaration|{<Parent> Parent|<Group_Constituent_List> Group_Constituent_List|<Chain> Chain|<Identifier> Identifier|<Group_Template_Name> Group_Template_Name|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag}}"] "Group_Declaration__Parent" [shape=box label="Iir"] "Group_Declaration":Parent -> "Group_Declaration__Parent" [color="#3465a4" style=dashed] "Group_Declaration__Group_Constituent_List" [shape=box3d label="Iir_Flist"] "Group_Declaration":Group_Constituent_List -> "Group_Declaration__Group_Constituent_List" [color="#000000"] "Group_Declaration__Chain" [shape=box label="Iir"] "Group_Declaration":Chain -> "Group_Declaration__Chain" [color="#4e9a06" style=bold] "Group_Declaration__Group_Template_Name" [shape=box label="Iir"] "Group_Declaration":Group_Template_Name -> "Group_Declaration__Group_Template_Name" [color="#000000"] }

Iir_Kind_Element_Declaration

LRM08 5.3.3 Record types

element_declaration ::=
   identifier_list : element_subtype_definition ;
identifier_list ::= identifier { , identifier }
element_subtype_definition ::= subtype_indication

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.

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.

Element_Position

Field4

Iir_Index32

owned

Return the position of the element in the record, starting from 0 for the first record element, increasing by one for each successive element.

Type

Field1

Iir

ref

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

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.

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] "Element_Declaration" [style=filled fillcolor="#eeeeec" label="{Element_Declaration|{<Parent> Parent|<Identifier> Identifier|<Subtype_Indication> Subtype_Indication|<Element_Position> Element_Position|<Type> Type|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag|<Is_Ref> Is_Ref}}"] "Element_Declaration__Parent" [shape=box label="Iir"] "Element_Declaration":Parent -> "Element_Declaration__Parent" [color="#3465a4" style=dashed] "Element_Declaration__Subtype_Indication" [shape=box label="Iir"] "Element_Declaration":Subtype_Indication -> "Element_Declaration__Subtype_Indication" [color="#3465a4" style=dotted] "Element_Declaration__Type" [shape=box label="Iir"] "Element_Declaration":Type -> "Element_Declaration__Type" [color="#3465a4" style=dashed] }

Iir_Kind_Nature_Element_Declaration

AMS-LRM17 5.8.3.3 Record natures

nature_element_declaration ::=
   identifier_list : element_subnature_definition ;
element_subnature_definition ::= subnature_indication

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.

Identifier

Field3

Name_Id

owned

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

Subnature_Indication

Field5

Iir

owned

Element_Position

Field4

Iir_Index32

owned

Nature

Field1

Iir

ref

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Nature_Element_Declaration" [style=filled fillcolor="#eeeeec" label="{Nature_Element_Declaration|{<Parent> Parent|<Identifier> Identifier|<Subnature_Indication> Subnature_Indication|<Element_Position> Element_Position|<Nature> Nature|<Has_Identifier_List> Has_Identifier_List|<Visible_Flag> Visible_Flag}}"] "Nature_Element_Declaration__Parent" [shape=box label="Iir"] "Nature_Element_Declaration":Parent -> "Nature_Element_Declaration__Parent" [color="#3465a4" style=dashed] "Nature_Element_Declaration__Subnature_Indication" [shape=box label="Iir"] "Nature_Element_Declaration":Subnature_Indication -> "Nature_Element_Declaration__Subnature_Indication" [color="#000000"] "Nature_Element_Declaration__Nature" [shape=box label="Iir"] "Nature_Element_Declaration":Nature -> "Nature_Element_Declaration__Nature" [color="#3465a4" style=dashed] }