.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. Elsif ##### 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:Elsif: Iir_Kind_Elsif ============== LRM08 10.8 :: if_statement ::= [ /if/_label : ] IF condition THEN sequence_of_statements { ELSIF condition THEN sequence_of_statements } [ ELSE sequence_of_statements ] END IF [ /if/_label ] ; 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:`Condition ` - ``Field1`` - ``Iir`` - maybe ref - May be NULL only for an iir_kind_elsif node, and then means the else clause. * - :ref:`Sequential_Statement_Chain ` - ``Field4`` - ``Iir`` - chain - — * - :ref:`Else_Clause ` - ``Field5`` - ``Iir`` - owned - Must be an Iir_kind_elsif node, or NULL for no more elsif clauses. * - :ref:`End_Has_Identifier ` - ``Flag9`` - ``Boolean`` - owned - Layout flag: true if 'end' is followed by the identifier. * - :ref:`Covered_Flag ` - ``Flag10`` - ``Boolean`` - owned - Set during elaboration when the statement is executed. * - :ref:`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. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Elsif" [style=filled fillcolor="#eeeeec" label="{Elsif|{ Parent| Condition| Sequential_Statement_Chain| Else_Clause| End_Has_Identifier| Covered_Flag| Is_Ref}}"] "Elsif__Parent" [shape=box label="Iir"] "Elsif":Parent -> "Elsif__Parent" [color="#3465a4" style=dashed] "Elsif__Condition" [shape=box label="Iir"] "Elsif":Condition -> "Elsif__Condition" [color="#3465a4" style=dotted] "Elsif__Sequential_Statement_Chain" [shape=box label="Iir"] "Elsif":Sequential_Statement_Chain -> "Elsif__Sequential_Statement_Chain" [color="#4e9a06"] "Elsif__Else_Clause" [shape=box label="Iir"] "Elsif":Else_Clause -> "Elsif__Else_Clause" [color="#000000"] }