.. # This page is generated by doc/ASTReference.py when Sphinx starts. Do not edit it. Other nodes (Function_Call ... Type_Conversion) ############################################### 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:Function_Call: Iir_Kind_Function_Call ====================== Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Prefix ` - ``Field0`` - ``Iir`` - owned - Prefix of a name. * - :ref:`Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Parameter_Association_Chain ` - ``Field2`` - ``Iir`` - chain - Parameter associations for procedure and function call. * - :ref:`Implementation ` - ``Field3`` - ``Iir`` - ref - Function declaration corresponding to the function to call. * - :ref:`Method_Object ` - ``Field4`` - ``Iir`` - ref - Object of a method call. NULL_IIR if the subprogram is not a method. * - :ref:`Base_Name ` - ``Field5`` - ``Iir`` - ref - The base name of a name is the node at the origin of the name. The base name is a declaration (signal, object, constant or interface), a selected_by_all name, an implicit_dereference name. * - :ref:`Expr_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - Expression staticness, defined by rules of LRM 7.4 * - :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] "Function_Call" [style=filled fillcolor="#eeeeec" label="{Function_Call|{ Prefix| Type| Parameter_Association_Chain| Implementation| Method_Object| Base_Name| Expr_Staticness| Name_Staticness}}"] "Function_Call__Prefix" [shape=box label="Iir"] "Function_Call":Prefix -> "Function_Call__Prefix" [color="#000000"] "Function_Call__Type" [shape=box label="Iir"] "Function_Call":Type -> "Function_Call__Type" [color="#3465a4" style=dashed] "Function_Call__Parameter_Association_Chain" [shape=box label="Iir"] "Function_Call":Parameter_Association_Chain -> "Function_Call__Parameter_Association_Chain" [color="#4e9a06"] "Function_Call__Implementation" [shape=box label="Iir"] "Function_Call":Implementation -> "Function_Call__Implementation" [color="#3465a4" style=dashed] "Function_Call__Method_Object" [shape=box label="Iir"] "Function_Call":Method_Object -> "Function_Call__Method_Object" [color="#3465a4" style=dashed] "Function_Call__Base_Name" [shape=box label="Iir"] "Function_Call":Base_Name -> "Function_Call__Base_Name" [color="#3465a4" style=dashed] } .. _INT:AST:Aggregate: Iir_Kind_Aggregate ================== Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Association_Choices_Chain ` - ``Field4`` - ``Iir`` - chain - Chain of choices. * - :ref:`Literal_Subtype ` - ``Field3`` - ``Iir`` - owned - Same as Type, but marked as property of that node. * - :ref:`Literal_Origin ` - ``Field2`` - ``Iir`` - owned - Exist for symmetry with other literals, but must never be set. The content of the aggregate is modified during evaluation, not the aggregate itself. * - :ref:`Aggregate_Info ` - ``Field5`` - ``Iir`` - owned - Get/Set info for the aggregate. There is one aggregate_info for for each dimension. * - :ref:`Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Expr_Staticness ` - ``State1`` - ``Iir_Staticness`` - owned - Expression staticness, defined by rules of LRM 7.4 * - :ref:`Aggregate_Expand_Flag ` - ``Flag1`` - ``Boolean`` - owned - If true, the aggregate can be statically built. This is an optimization and the conditions are defined in sem_expr. * - :ref:`Determined_Aggregate_Flag ` - ``Flag2`` - ``Boolean`` - owned - True if the bounds of the aggregated are determined by the context. .. graphviz:: digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Aggregate" [style=filled fillcolor="#eeeeec" label="{Aggregate|{ Association_Choices_Chain| Literal_Subtype| Literal_Origin| Aggregate_Info| Type| Expr_Staticness| Aggregate_Expand_Flag| Determined_Aggregate_Flag}}"] "Aggregate__Association_Choices_Chain" [shape=box label="Iir"] "Aggregate":Association_Choices_Chain -> "Aggregate__Association_Choices_Chain" [color="#4e9a06"] "Aggregate__Literal_Subtype" [shape=box label="Iir"] "Aggregate":Literal_Subtype -> "Aggregate__Literal_Subtype" [color="#000000"] "Aggregate__Literal_Origin" [shape=box label="Iir"] "Aggregate":Literal_Origin -> "Aggregate__Literal_Origin" [color="#000000"] "Aggregate__Aggregate_Info" [shape=box label="Iir"] "Aggregate":Aggregate_Info -> "Aggregate__Aggregate_Info" [color="#000000"] "Aggregate__Type" [shape=box label="Iir"] "Aggregate":Type -> "Aggregate__Type" [color="#3465a4" style=dashed] } .. _INT:AST:Parenthesis_Expression: Iir_Kind_Parenthesis_Expression =============================== Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Expression ` - ``Field5`` - ``Iir`` - owned - Expression for an various nodes. * - :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] "Parenthesis_Expression" [style=filled fillcolor="#eeeeec" label="{Parenthesis_Expression|{ Expression| Type| Expr_Staticness}}"] "Parenthesis_Expression__Expression" [shape=box label="Iir"] "Parenthesis_Expression":Expression -> "Parenthesis_Expression__Expression" [color="#000000"] "Parenthesis_Expression__Type" [shape=box label="Iir"] "Parenthesis_Expression":Type -> "Parenthesis_Expression__Type" [color="#3465a4" style=dashed] } .. _INT:AST:Qualified_Expression: Iir_Kind_Qualified_Expression ============================= LRM08 9.3.5 Qualified expressions :: qualified_expression ::= type_mark ' ( expression ) | type_mark ' aggregate Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Type_Mark ` - ``Field4`` - ``Iir`` - owned - The type_mark that appeared in qualified expressions or type conversions. * - :ref:`Expression ` - ``Field5`` - ``Iir`` - owned - Expression for an various nodes. * - :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] "Qualified_Expression" [style=filled fillcolor="#eeeeec" label="{Qualified_Expression|{ Type_Mark| Expression| Type| Expr_Staticness}}"] "Qualified_Expression__Type_Mark" [shape=box label="Iir"] "Qualified_Expression":Type_Mark -> "Qualified_Expression__Type_Mark" [color="#000000"] "Qualified_Expression__Expression" [shape=box label="Iir"] "Qualified_Expression":Expression -> "Qualified_Expression__Expression" [color="#000000"] "Qualified_Expression__Type" [shape=box label="Iir"] "Qualified_Expression":Type -> "Qualified_Expression__Type" [color="#3465a4" style=dashed] } .. _INT:AST:Type_Conversion: Iir_Kind_Type_Conversion ======================== LRM08 9.3.6 Type conversions :: type_conversion ::= type_mark ( expression ) Format: ``Short`` .. list-table:: :header-rows: 1 :widths: 30 12 18 12 28 * - Accessor - Field - Type - Access - Description * - :ref:`Type ` - ``Field1`` - ``Iir`` - ref - — * - :ref:`Type_Conversion_Subtype ` - ``Field3`` - ``Iir`` - owned - If the type mark denotes an unconstrained array and the expression is locally static, the result should be locally static according to vhdl93 (which is not clear on that point). As a subtype is created, it is referenced by this field. * - :ref:`Type_Mark ` - ``Field4`` - ``Iir`` - owned - The type_mark that appeared in qualified expressions or type conversions. * - :ref:`Expression ` - ``Field5`` - ``Iir`` - owned - Expression for an various nodes. * - :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] "Type_Conversion" [style=filled fillcolor="#eeeeec" label="{Type_Conversion|{ Type| Type_Conversion_Subtype| Type_Mark| Expression| Expr_Staticness}}"] "Type_Conversion__Type" [shape=box label="Iir"] "Type_Conversion":Type -> "Type_Conversion__Type" [color="#3465a4" style=dashed] "Type_Conversion__Type_Conversion_Subtype" [shape=box label="Iir"] "Type_Conversion":Type_Conversion_Subtype -> "Type_Conversion__Type_Conversion_Subtype" [color="#000000"] "Type_Conversion__Type_Mark" [shape=box label="Iir"] "Type_Conversion":Type_Mark -> "Type_Conversion__Type_Mark" [color="#000000"] "Type_Conversion__Expression" [shape=box label="Iir"] "Type_Conversion":Expression -> "Type_Conversion__Expression" [color="#000000"] }