.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. Clause ###### 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:Library_Clause: Iir_Kind_Library_Clause ======================= LRM08 13.2 Design libraries :: library_clause ::= LIBRARY logical_name_list ; :: logical_name_list ::= logical_name { , logical_name } :: logical_name ::= identifier Note: a library_clause node is created for every logical_name. As a consequence, the scope of the library starts after the logical_name and not after the library_clause. However, since an identifier can only be used as a logical_name, and since the second occurrence has no effect, this is correct. Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - Get/Set the identifier of a declaration. Can also be used instead of get/set_label. * - :ref:`Library_Declaration ` - ``Field1`` - ``Iir`` - forward ref - Library declaration of a library clause. This is Forward_Ref as the dependency of the unit on the library is not tracked. * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :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). .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Library_Clause" [style=filled fillcolor="#eeeeec" label="{Library_Clause|{ Parent| Identifier| Library_Declaration| Chain| Has_Identifier_List}}"] "Library_Clause__Parent" [shape=box label="Iir"] "Library_Clause":Parent -> "Library_Clause__Parent" [color="#3465a4" style=dashed] "Library_Clause__Library_Declaration" [shape=box label="Iir"] "Library_Clause":Library_Declaration -> "Library_Clause__Library_Declaration" [color="#f57900" style=dashed] "Library_Clause__Chain" [shape=box label="Iir"] "Library_Clause":Chain -> "Library_Clause__Chain" [color="#4e9a06" style=bold] } .. _INT:AST:Use_Clause: Iir_Kind_Use_Clause =================== LRM08 12.4 Use clauses :: use_clause ::= USE selected_name { , selected_name } ; Location is on 'USE'. Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Selected_Name ` - ``Field1`` - ``Iir`` - owned - Selected name of an use_clause or context_reference * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Use_Clause_Chain ` - ``Field3`` - ``Iir`` - owned - Selected names of an use_clause are chained. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Use_Clause" [style=filled fillcolor="#eeeeec" label="{Use_Clause|{ Parent| Selected_Name| Chain| Use_Clause_Chain}}"] "Use_Clause__Parent" [shape=box label="Iir"] "Use_Clause":Parent -> "Use_Clause__Parent" [color="#3465a4" style=dashed] "Use_Clause__Selected_Name" [shape=box label="Iir"] "Use_Clause":Selected_Name -> "Use_Clause__Selected_Name" [color="#000000"] "Use_Clause__Chain" [shape=box label="Iir"] "Use_Clause":Chain -> "Use_Clause__Chain" [color="#4e9a06" style=bold] "Use_Clause__Use_Clause_Chain" [shape=box label="Iir"] "Use_Clause":Use_Clause_Chain -> "Use_Clause__Use_Clause_Chain" [color="#000000"] } .. _INT:AST:Context_Reference: Iir_Kind_Context_Reference ========================== LRM08 13.4 Context clauses :: context_reference ::= CONTEXT selected_name { , selected_name } Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Parent ` - ``Field0`` - ``Iir`` - ref - Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. * - :ref:`Selected_Name ` - ``Field1`` - ``Iir`` - owned - Selected name of an use_clause or context_reference * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Context_Reference_Chain ` - ``Field3`` - ``Iir`` - owned - Selected names of a context_reference are chained. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Context_Reference" [style=filled fillcolor="#eeeeec" label="{Context_Reference|{ Parent| Selected_Name| Chain| Context_Reference_Chain}}"] "Context_Reference__Parent" [shape=box label="Iir"] "Context_Reference":Parent -> "Context_Reference__Parent" [color="#3465a4" style=dashed] "Context_Reference__Selected_Name" [shape=box label="Iir"] "Context_Reference":Selected_Name -> "Context_Reference__Selected_Name" [color="#000000"] "Context_Reference__Chain" [shape=box label="Iir"] "Context_Reference":Chain -> "Context_Reference__Chain" [color="#4e9a06" style=bold] "Context_Reference__Context_Reference_Chain" [shape=box label="Iir"] "Context_Reference":Context_Reference_Chain -> "Context_Reference__Context_Reference_Chain" [color="#000000"] }