.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. Other nodes (Simple_Aggregate ... Conditional_Expression) ######################################################### 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:Simple_Aggregate: Iir_Kind_Simple_Aggregate ========================= This node can only be generated by evaluation: it is an unidimensional positional aggregate. Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Literal_Subtype ` - ``Field3`` - ``Iir`` - owned - Same as Type, but marked as property of that node. * - :ref:`Literal_Origin ` - ``Field2`` - ``Iir`` - owned - The origin of a literal can be null_iir for a literal generated by the parser, or a node which was statically evaluated to this literal. Such nodes are created by eval_expr. * - :ref:`Simple_Aggregate_List ` - ``Field4`` - ``Iir_Flist`` - ref - List of elements (Index 0 is for the leftest element). * - :ref:`Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Expr_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - Expression staticness, defined by rules of LRM 7.4 .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Simple_Aggregate" [style=filled fillcolor="#eeeeec" label="{Simple_Aggregate|{ Literal_Subtype| Literal_Origin| Simple_Aggregate_List| Type| Expr_Staticness}}"] "Simple_Aggregate__Literal_Subtype" [shape=box label="Iir"] "Simple_Aggregate":Literal_Subtype -> "Simple_Aggregate__Literal_Subtype" [color="#000000"] "Simple_Aggregate__Literal_Origin" [shape=box label="Iir"] "Simple_Aggregate":Literal_Origin -> "Simple_Aggregate__Literal_Origin" [color="#000000"] "Simple_Aggregate__Simple_Aggregate_List" [shape=box3d label="Iir_Flist"] "Simple_Aggregate":Simple_Aggregate_List -> "Simple_Aggregate__Simple_Aggregate_List" [color="#3465a4" style=dashed] "Simple_Aggregate__Type" [shape=box label="Iir"] "Simple_Aggregate":Type -> "Simple_Aggregate__Type" [color="#3465a4" style=dashed] } .. _INT:AST:Overflow_Literal: Iir_Kind_Overflow_Literal ========================= This node can only be generated by evaluation to represent an error: out of range, division by zero... Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Literal_Origin ` - ``Field2`` - ``Iir`` - owned - The origin of a literal can be null_iir for a literal generated by the parser, or a node which was statically evaluated to this literal. Such nodes are created by eval_expr. * - :ref:`Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Expr_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - Expression staticness, defined by rules of LRM 7.4 .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Overflow_Literal" [style=filled fillcolor="#eeeeec" label="{Overflow_Literal|{ Literal_Origin| Type| Expr_Staticness}}"] "Overflow_Literal__Literal_Origin" [shape=box label="Iir"] "Overflow_Literal":Literal_Origin -> "Overflow_Literal__Literal_Origin" [color="#000000"] "Overflow_Literal__Type" [shape=box label="Iir"] "Overflow_Literal":Type -> "Overflow_Literal__Type" [color="#3465a4" style=dashed] } .. _INT:AST:Unaffected_Waveform: Iir_Kind_Unaffected_Waveform ============================ The 'unaffected' reserved word when it appears in the sources. Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - Unaffected replaces a waveform element, so it is considered to be part of a chain. But it is always alone in the chain. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Unaffected_Waveform" [style=filled fillcolor="#eeeeec" label="{Unaffected_Waveform|{ Chain}}"] "Unaffected_Waveform__Chain" [shape=box label="Iir"] "Unaffected_Waveform":Chain -> "Unaffected_Waveform__Chain" [color="#4e9a06" style=bold] } .. _INT:AST:Waveform_Element: Iir_Kind_Waveform_Element ========================= Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`We_Value ` - ``Field1`` - ``Iir`` - owned - — * - :ref:`Time ` - ``Field3`` - ``Iir`` - owned - — * - :ref:`Chain ` - ``Field2`` - ``Iir`` - chain next - — .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Waveform_Element" [style=filled fillcolor="#eeeeec" label="{Waveform_Element|{ We_Value|