.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. 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 :ref:`INT:AST:Fields` page. .. graphviz:: 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] } .. _INT:AST:Scalar_Nature_Definition: Iir_Kind_Scalar_Nature_Definition ================================= Format: ``Medium`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Reference ` - ``Field2`` - ``Iir`` - forward ref - Reference terminal (forward ref). This is a declaration that is appended after the nature declaration. * - :ref:`Nature_Declarator ` - ``Field3`` - ``Iir`` - ref - The declarator that has created this nature type. * - :ref:`Base_Nature ` - ``Field4`` - ``Iir`` - ref - — * - :ref:`Across_Type_Mark ` - ``Field9`` - ``Iir`` - owned - — * - :ref:`Through_Type_Mark ` - ``Field10`` - ``Iir`` - owned - — * - :ref:`Across_Type ` - ``Field11`` - ``Iir`` - ref - — * - :ref:`Through_Type ` - ``Field12`` - ``Iir`` - ref - — * - :ref:`Nature_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - — .. graphviz:: 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| Nature_Declarator| Base_Nature| Across_Type_Mark| Through_Type_Mark| Across_Type| Through_Type| 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] } .. _INT:AST:Record_Nature_Definition: 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`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`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. * - :ref:`Nature_Declarator ` - ``Field3`` - ``Iir`` - ref - — * - :ref:`Base_Nature ` - ``Field4`` - ``Iir`` - ref - — * - :ref:`Across_Type_Definition ` - ``Field10`` - ``Iir`` - owned - For array and record nature: the owner of the across type. * - :ref:`Through_Type_Definition ` - ``Field5`` - ``Iir`` - owned - For array and record nature: the owner of the through type. * - :ref:`Across_Type ` - ``Field11`` - ``Iir`` - ref - — * - :ref:`Through_Type ` - ``Field12`` - ``Iir`` - ref - — * - :ref:`Simple_Nature ` - ``Field7`` - ``Iir`` - ref - Only for composite base nature: the simple nature. * - :ref:`Nature_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - — * - :ref:`Constraint_State ` - ``State2`` - ``Iir_Constraint`` - owned - — * - :ref:`End_Has_Reserved_Id ` - ``Flag8`` - ``Boolean`` - owned - Layout flag: true if 'end' is followed by the reserved identifier. * - :ref:`End_Has_Identifier ` - ``Flag9`` - ``Boolean`` - owned - Layout flag: true if 'end' is followed by the identifier. * - :ref:`Is_Ref ` - ``Flag12`` - ``Boolean`` - owned - Always false for record type: elements are owned by this node. .. graphviz:: 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| Nature_Declarator| Base_Nature| Across_Type_Definition| Through_Type_Definition| Across_Type| Through_Type| Simple_Nature| Nature_Staticness| Constraint_State| End_Has_Reserved_Id| End_Has_Identifier| 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] } .. _INT:AST:Array_Nature_Definition: Iir_Kind_Array_Nature_Definition ================================ AMS-LRM17 5.8.3.2 Array Natures Format: ``Medium`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Index_Subtype_Definition_List ` - ``Field6`` - ``Iir_Flist`` - owned - This is a list of type marks. * - :ref:`Element_Subnature_Indication ` - ``Field2`` - ``Iir`` - owned - — * - :ref:`Index_Subtype_List ` - ``Field9`` - ``Iir_Flist`` - ref - Same as the index_subtype_definition_list. * - :ref:`Element_Subnature ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Nature_Declarator ` - ``Field3`` - ``Iir`` - ref - — * - :ref:`Base_Nature ` - ``Field4`` - ``Iir`` - ref - — * - :ref:`Simple_Nature ` - ``Field7`` - ``Iir`` - ref - Only for composite base nature: the simple nature. * - :ref:`Nature_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - — * - :ref:`Constraint_State ` - ``State2`` - ``Iir_Constraint`` - owned - — * - :ref:`Index_Constraint_Flag ` - ``Flag4`` - ``Boolean`` - owned - Always false. * - :ref:`Across_Type_Definition ` - ``Field10`` - ``Iir`` - owned - For array and record nature: the owner of the across type. * - :ref:`Through_Type_Definition ` - ``Field5`` - ``Iir`` - owned - For array and record nature: the owner of the through type. * - :ref:`Across_Type ` - ``Field11`` - ``Iir`` - ref - — * - :ref:`Through_Type ` - ``Field12`` - ``Iir`` - ref - — .. graphviz:: 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| Element_Subnature_Indication| Index_Subtype_List| Element_Subnature| Nature_Declarator| Base_Nature| Simple_Nature| Nature_Staticness| Constraint_State| Index_Constraint_Flag| Across_Type_Definition| Through_Type_Definition| Across_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] } .. _INT:AST:Array_Subnature_Definition: Iir_Kind_Array_Subnature_Definition =================================== Format: ``Medium`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Subnature_Nature_Mark ` - ``Field2`` - ``Iir`` - owned - — * - :ref:`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. * - :ref:`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. * - :ref:`Array_Element_Constraint ` - ``Field8`` - ``Iir`` - owned - — * - :ref:`Tolerance ` - ``Field7`` - ``Iir`` - owned - — * - :ref:`Element_Subnature ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Nature_Declarator ` - ``Field3`` - ``Iir`` - ref - — * - :ref:`Base_Nature ` - ``Field4`` - ``Iir`` - ref - — * - :ref:`Nature_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - — * - :ref:`Constraint_State ` - ``State2`` - ``Iir_Constraint`` - owned - — * - :ref:`Index_Constraint_Flag ` - ``Flag4`` - ``Boolean`` - owned - Set on an array_subtype if there is an index constraint. If not set, the subtype is unconstrained. * - :ref:`Across_Type_Definition ` - ``Field10`` - ``Iir`` - owned - For array and record nature: the owner of the across type. * - :ref:`Through_Type_Definition ` - ``Field5`` - ``Iir`` - owned - For array and record nature: the owner of the through type. * - :ref:`Across_Type ` - ``Field11`` - ``Iir`` - ref - — * - :ref:`Through_Type ` - ``Field12`` - ``Iir`` - ref - — .. graphviz:: 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| Index_Constraint_List| Index_Subtype_List| Array_Element_Constraint| Tolerance| Element_Subnature| Nature_Declarator| Base_Nature| Nature_Staticness| Constraint_State| Index_Constraint_Flag| Across_Type_Definition| Through_Type_Definition| Across_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] }