.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. Terminal 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 :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:Terminal_Declaration: Iir_Kind_Terminal_Declaration ============================= 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:`Chain ` - ``Field2`` - ``Iir`` - chain next - — * - :ref:`Identifier ` - ``Field3`` - ``Name_Id`` - owned - Get/Set the identifier of a declaration. Can also be used instead of get/set_label. * - :ref:`Subnature_Indication ` - ``Field5`` - ``Iir`` - owned - — * - :ref:`Nature ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Reference_Terminal_Flag ` - ``Flag1`` - ``Boolean`` - owned - Set if the terminal is a reference terminal, ie created by a nature declaration (ie a ground). * - :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. * - :ref:`Use_Flag ` - ``Flag6`` - ``Boolean`` - owned - For a declaration: true if the declaration is used somewhere. * - :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). * - :ref:`Name_Staticness ` - ``State2`` - ``Iir_Staticness`` - owned - Staticness of a name, according to rules of LRM 6.1 .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Terminal_Declaration" [style=filled fillcolor="#eeeeec" label="{Terminal_Declaration|{ Parent| Chain| Identifier| Subnature_Indication| Nature| Reference_Terminal_Flag| Visible_Flag| Use_Flag| Has_Identifier_List| Name_Staticness}}"] "Terminal_Declaration__Parent" [shape=box label="Iir"] "Terminal_Declaration":Parent -> "Terminal_Declaration__Parent" [color="#3465a4" style=dashed] "Terminal_Declaration__Chain" [shape=box label="Iir"] "Terminal_Declaration":Chain -> "Terminal_Declaration__Chain" [color="#4e9a06" style=bold] "Terminal_Declaration__Subnature_Indication" [shape=box label="Iir"] "Terminal_Declaration":Subnature_Indication -> "Terminal_Declaration__Subnature_Indication" [color="#000000"] "Terminal_Declaration__Nature" [shape=box label="Iir"] "Terminal_Declaration":Nature -> "Terminal_Declaration__Nature" [color="#3465a4" style=dashed] }