Nature Indication

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_Scalar_Nature_Definition

Format: Medium

Accessor

Field

Type

Access

Description

Reference

Field2

Iir

forward ref

Reference terminal (forward ref). This is a declaration that is appended after the nature declaration.

Nature_Declarator

Field3

Iir

ref

The declarator that has created this nature type.

Base_Nature

Field4

Iir

ref

Across_Type_Mark

Field9

Iir

owned

Through_Type_Mark

Field10

Iir

owned

Across_Type

Field11

Iir

ref

Through_Type

Field12

Iir

ref

Nature_Staticness

State1

Iir_Staticness

owned

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Scalar_Nature_Definition" [style=filled fillcolor="#eeeeec" label="{Scalar_Nature_Definition|{<Reference> Reference|<Nature_Declarator> Nature_Declarator|<Base_Nature> Base_Nature|<Across_Type_Mark> Across_Type_Mark|<Through_Type_Mark> Through_Type_Mark|<Across_Type> Across_Type|<Through_Type> Through_Type|<Nature_Staticness> Nature_Staticness}}"] "Scalar_Nature_Definition__Reference" [shape=box label="Iir"] "Scalar_Nature_Definition":Reference -> "Scalar_Nature_Definition__Reference" [color="#f57900" style=dashed] "Scalar_Nature_Definition__Nature_Declarator" [shape=box label="Iir"] "Scalar_Nature_Definition":Nature_Declarator -> "Scalar_Nature_Definition__Nature_Declarator" [color="#3465a4" style=dashed] "Scalar_Nature_Definition__Base_Nature" [shape=box label="Iir"] "Scalar_Nature_Definition":Base_Nature -> "Scalar_Nature_Definition__Base_Nature" [color="#3465a4" style=dashed] "Scalar_Nature_Definition__Across_Type_Mark" [shape=box label="Iir"] "Scalar_Nature_Definition":Across_Type_Mark -> "Scalar_Nature_Definition__Across_Type_Mark" [color="#000000"] "Scalar_Nature_Definition__Through_Type_Mark" [shape=box label="Iir"] "Scalar_Nature_Definition":Through_Type_Mark -> "Scalar_Nature_Definition__Through_Type_Mark" [color="#000000"] "Scalar_Nature_Definition__Across_Type" [shape=box label="Iir"] "Scalar_Nature_Definition":Across_Type -> "Scalar_Nature_Definition__Across_Type" [color="#3465a4" style=dashed] "Scalar_Nature_Definition__Through_Type" [shape=box label="Iir"] "Scalar_Nature_Definition":Through_Type -> "Scalar_Nature_Definition__Through_Type" [color="#3465a4" style=dashed] }

Iir_Kind_Record_Nature_Definition

AMS-LRM17 5.8.3.3 Record natures

record_nature_definition ::=
   RECORD
      nature_element_declaration
      { nature_element_declaration }
   END RECORD [ /record_nature/_simple_name ]

Format: Medium

Accessor

Field

Type

Access

Description

Elements_Declaration_List

Field1

Iir_Flist

of maybe ref

List of elements of a record. For a record_type_definition: Is_Ref is false, as the elements declaration are owned by the type definition. For a record_subtype_definition: Is_Ref is false, as new constrained elements are owned through the Owned_Elements_Chain list.

Nature_Declarator

Field3

Iir

ref

Base_Nature

Field4

Iir

ref

Across_Type_Definition

Field10

Iir

owned

For array and record nature: the owner of the across type.

Through_Type_Definition

Field5

Iir

owned

For array and record nature: the owner of the through type.

Across_Type

Field11

Iir

ref

Through_Type

Field12

Iir

ref

Simple_Nature

Field7

Iir

ref

Only for composite base nature: the simple nature.

Nature_Staticness

State1

Iir_Staticness

owned

Constraint_State

State2

Iir_Constraint

owned

End_Has_Reserved_Id

Flag8

Boolean

owned

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

End_Has_Identifier

Flag9

Boolean

owned

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

Is_Ref

Flag12

Boolean

owned

Always false for record type: elements are owned by this node.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Record_Nature_Definition" [style=filled fillcolor="#eeeeec" label="{Record_Nature_Definition|{<Elements_Declaration_List> Elements_Declaration_List|<Nature_Declarator> Nature_Declarator|<Base_Nature> Base_Nature|<Across_Type_Definition> Across_Type_Definition|<Through_Type_Definition> Through_Type_Definition|<Across_Type> Across_Type|<Through_Type> Through_Type|<Simple_Nature> Simple_Nature|<Nature_Staticness> Nature_Staticness|<Constraint_State> Constraint_State|<End_Has_Reserved_Id> End_Has_Reserved_Id|<End_Has_Identifier> End_Has_Identifier|<Is_Ref> Is_Ref}}"] "Record_Nature_Definition__Elements_Declaration_List" [shape=box3d label="Iir_Flist"] "Record_Nature_Definition":Elements_Declaration_List -> "Record_Nature_Definition__Elements_Declaration_List" [color="#3465a4" style=dotted] "Record_Nature_Definition__Nature_Declarator" [shape=box label="Iir"] "Record_Nature_Definition":Nature_Declarator -> "Record_Nature_Definition__Nature_Declarator" [color="#3465a4" style=dashed] "Record_Nature_Definition__Base_Nature" [shape=box label="Iir"] "Record_Nature_Definition":Base_Nature -> "Record_Nature_Definition__Base_Nature" [color="#3465a4" style=dashed] "Record_Nature_Definition__Across_Type_Definition" [shape=box label="Iir"] "Record_Nature_Definition":Across_Type_Definition -> "Record_Nature_Definition__Across_Type_Definition" [color="#000000"] "Record_Nature_Definition__Through_Type_Definition" [shape=box label="Iir"] "Record_Nature_Definition":Through_Type_Definition -> "Record_Nature_Definition__Through_Type_Definition" [color="#000000"] "Record_Nature_Definition__Across_Type" [shape=box label="Iir"] "Record_Nature_Definition":Across_Type -> "Record_Nature_Definition__Across_Type" [color="#3465a4" style=dashed] "Record_Nature_Definition__Through_Type" [shape=box label="Iir"] "Record_Nature_Definition":Through_Type -> "Record_Nature_Definition__Through_Type" [color="#3465a4" style=dashed] "Record_Nature_Definition__Simple_Nature" [shape=box label="Iir"] "Record_Nature_Definition":Simple_Nature -> "Record_Nature_Definition__Simple_Nature" [color="#3465a4" style=dashed] }

Iir_Kind_Array_Nature_Definition

AMS-LRM17 5.8.3.2 Array Natures

Format: Medium

Accessor

Field

Type

Access

Description

Index_Subtype_Definition_List

Field6

Iir_Flist

owned

This is a list of type marks.

Element_Subnature_Indication

Field2

Iir

owned

Index_Subtype_List

Field9

Iir_Flist

ref

Same as the index_subtype_definition_list.

Element_Subnature

Field1

Iir

ref

Nature_Declarator

Field3

Iir

ref

Base_Nature

Field4

Iir

ref

Simple_Nature

Field7

Iir

ref

Only for composite base nature: the simple nature.

Nature_Staticness

State1

Iir_Staticness

owned

Constraint_State

State2

Iir_Constraint

owned

Index_Constraint_Flag

Flag4

Boolean

owned

Always false.

Across_Type_Definition

Field10

Iir

owned

For array and record nature: the owner of the across type.

Through_Type_Definition

Field5

Iir

owned

For array and record nature: the owner of the through type.

Across_Type

Field11

Iir

ref

Through_Type

Field12

Iir

ref

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Array_Nature_Definition" [style=filled fillcolor="#eeeeec" label="{Array_Nature_Definition|{<Index_Subtype_Definition_List> Index_Subtype_Definition_List|<Element_Subnature_Indication> Element_Subnature_Indication|<Index_Subtype_List> Index_Subtype_List|<Element_Subnature> Element_Subnature|<Nature_Declarator> Nature_Declarator|<Base_Nature> Base_Nature|<Simple_Nature> Simple_Nature|<Nature_Staticness> Nature_Staticness|<Constraint_State> Constraint_State|<Index_Constraint_Flag> Index_Constraint_Flag|<Across_Type_Definition> Across_Type_Definition|<Through_Type_Definition> Through_Type_Definition|<Across_Type> Across_Type|<Through_Type> Through_Type}}"] "Array_Nature_Definition__Index_Subtype_Definition_List" [shape=box3d label="Iir_Flist"] "Array_Nature_Definition":Index_Subtype_Definition_List -> "Array_Nature_Definition__Index_Subtype_Definition_List" [color="#000000"] "Array_Nature_Definition__Element_Subnature_Indication" [shape=box label="Iir"] "Array_Nature_Definition":Element_Subnature_Indication -> "Array_Nature_Definition__Element_Subnature_Indication" [color="#000000"] "Array_Nature_Definition__Index_Subtype_List" [shape=box3d label="Iir_Flist"] "Array_Nature_Definition":Index_Subtype_List -> "Array_Nature_Definition__Index_Subtype_List" [color="#3465a4" style=dashed] "Array_Nature_Definition__Element_Subnature" [shape=box label="Iir"] "Array_Nature_Definition":Element_Subnature -> "Array_Nature_Definition__Element_Subnature" [color="#3465a4" style=dashed] "Array_Nature_Definition__Nature_Declarator" [shape=box label="Iir"] "Array_Nature_Definition":Nature_Declarator -> "Array_Nature_Definition__Nature_Declarator" [color="#3465a4" style=dashed] "Array_Nature_Definition__Base_Nature" [shape=box label="Iir"] "Array_Nature_Definition":Base_Nature -> "Array_Nature_Definition__Base_Nature" [color="#3465a4" style=dashed] "Array_Nature_Definition__Simple_Nature" [shape=box label="Iir"] "Array_Nature_Definition":Simple_Nature -> "Array_Nature_Definition__Simple_Nature" [color="#3465a4" style=dashed] "Array_Nature_Definition__Across_Type_Definition" [shape=box label="Iir"] "Array_Nature_Definition":Across_Type_Definition -> "Array_Nature_Definition__Across_Type_Definition" [color="#000000"] "Array_Nature_Definition__Through_Type_Definition" [shape=box label="Iir"] "Array_Nature_Definition":Through_Type_Definition -> "Array_Nature_Definition__Through_Type_Definition" [color="#000000"] "Array_Nature_Definition__Across_Type" [shape=box label="Iir"] "Array_Nature_Definition":Across_Type -> "Array_Nature_Definition__Across_Type" [color="#3465a4" style=dashed] "Array_Nature_Definition__Through_Type" [shape=box label="Iir"] "Array_Nature_Definition":Through_Type -> "Array_Nature_Definition__Through_Type" [color="#3465a4" style=dashed] }

Iir_Kind_Array_Subnature_Definition

Format: Medium

Accessor

Field

Type

Access

Description

Subnature_Nature_Mark

Field2

Iir

owned

Index_Constraint_List

Field6

Iir_Flist

owned

The index_constraint list as it appears in the subtype indication (if present). This is a list of subtype indication.

Index_Subtype_List

Field9

Iir_Flist

ref

The type of the index. This is either the index_constraint list or the index subtypes of the type_mark.

Array_Element_Constraint

Field8

Iir

owned

Tolerance

Field7

Iir

owned

Element_Subnature

Field1

Iir

ref

Nature_Declarator

Field3

Iir

ref

Base_Nature

Field4

Iir

ref

Nature_Staticness

State1

Iir_Staticness

owned

Constraint_State

State2

Iir_Constraint

owned

Index_Constraint_Flag

Flag4

Boolean

owned

Set on an array_subtype if there is an index constraint. If not set, the subtype is unconstrained.

Across_Type_Definition

Field10

Iir

owned

For array and record nature: the owner of the across type.

Through_Type_Definition

Field5

Iir

owned

For array and record nature: the owner of the through type.

Across_Type

Field11

Iir

ref

Through_Type

Field12

Iir

ref

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Array_Subnature_Definition" [style=filled fillcolor="#eeeeec" label="{Array_Subnature_Definition|{<Subnature_Nature_Mark> Subnature_Nature_Mark|<Index_Constraint_List> Index_Constraint_List|<Index_Subtype_List> Index_Subtype_List|<Array_Element_Constraint> Array_Element_Constraint|<Tolerance> Tolerance|<Element_Subnature> Element_Subnature|<Nature_Declarator> Nature_Declarator|<Base_Nature> Base_Nature|<Nature_Staticness> Nature_Staticness|<Constraint_State> Constraint_State|<Index_Constraint_Flag> Index_Constraint_Flag|<Across_Type_Definition> Across_Type_Definition|<Through_Type_Definition> Through_Type_Definition|<Across_Type> Across_Type|<Through_Type> Through_Type}}"] "Array_Subnature_Definition__Subnature_Nature_Mark" [shape=box label="Iir"] "Array_Subnature_Definition":Subnature_Nature_Mark -> "Array_Subnature_Definition__Subnature_Nature_Mark" [color="#000000"] "Array_Subnature_Definition__Index_Constraint_List" [shape=box3d label="Iir_Flist"] "Array_Subnature_Definition":Index_Constraint_List -> "Array_Subnature_Definition__Index_Constraint_List" [color="#000000"] "Array_Subnature_Definition__Index_Subtype_List" [shape=box3d label="Iir_Flist"] "Array_Subnature_Definition":Index_Subtype_List -> "Array_Subnature_Definition__Index_Subtype_List" [color="#3465a4" style=dashed] "Array_Subnature_Definition__Array_Element_Constraint" [shape=box label="Iir"] "Array_Subnature_Definition":Array_Element_Constraint -> "Array_Subnature_Definition__Array_Element_Constraint" [color="#000000"] "Array_Subnature_Definition__Tolerance" [shape=box label="Iir"] "Array_Subnature_Definition":Tolerance -> "Array_Subnature_Definition__Tolerance" [color="#000000"] "Array_Subnature_Definition__Element_Subnature" [shape=box label="Iir"] "Array_Subnature_Definition":Element_Subnature -> "Array_Subnature_Definition__Element_Subnature" [color="#3465a4" style=dashed] "Array_Subnature_Definition__Nature_Declarator" [shape=box label="Iir"] "Array_Subnature_Definition":Nature_Declarator -> "Array_Subnature_Definition__Nature_Declarator" [color="#3465a4" style=dashed] "Array_Subnature_Definition__Base_Nature" [shape=box label="Iir"] "Array_Subnature_Definition":Base_Nature -> "Array_Subnature_Definition__Base_Nature" [color="#3465a4" style=dashed] "Array_Subnature_Definition__Across_Type_Definition" [shape=box label="Iir"] "Array_Subnature_Definition":Across_Type_Definition -> "Array_Subnature_Definition__Across_Type_Definition" [color="#000000"] "Array_Subnature_Definition__Through_Type_Definition" [shape=box label="Iir"] "Array_Subnature_Definition":Through_Type_Definition -> "Array_Subnature_Definition__Through_Type_Definition" [color="#000000"] "Array_Subnature_Definition__Across_Type" [shape=box label="Iir"] "Array_Subnature_Definition":Across_Type -> "Array_Subnature_Definition__Across_Type" [color="#3465a4" style=dashed] "Array_Subnature_Definition__Through_Type" [shape=box label="Iir"] "Array_Subnature_Definition":Through_Type -> "Array_Subnature_Definition__Through_Type" [color="#3465a4" style=dashed] }