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 Fields page.

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] }

Iir_Kind_Function_Call

Format: Short

Accessor

Field

Type

Access

Description

Prefix

Field0

Iir

owned

Prefix of a name.

Type

Field1

Iir

ref

Parameter_Association_Chain

Field2

Iir

chain

Parameter associations for procedure and function call.

Implementation

Field3

Iir

ref

Function declaration corresponding to the function to call.

Method_Object

Field4

Iir

ref

Object of a method call. NULL_IIR if the subprogram is not a method.

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.

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

Name_Staticness

State2

Iir_Staticness

owned

Staticness of a name, according to rules of LRM 6.1

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> Prefix|<Type> Type|<Parameter_Association_Chain> Parameter_Association_Chain|<Implementation> Implementation|<Method_Object> Method_Object|<Base_Name> Base_Name|<Expr_Staticness> Expr_Staticness|<Name_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] }

Iir_Kind_Aggregate

Format: Short

Accessor

Field

Type

Access

Description

Association_Choices_Chain

Field4

Iir

chain

Chain of choices.

Literal_Subtype

Field3

Iir

owned

Same as Type, but marked as property of that node.

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.

Aggregate_Info

Field5

Iir

owned

Get/Set info for the aggregate. There is one aggregate_info for for each dimension.

Type

Field1

Iir

ref

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

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.

Determined_Aggregate_Flag

Flag2

Boolean

owned

True if the bounds of the aggregated are determined by the context.

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> Association_Choices_Chain|<Literal_Subtype> Literal_Subtype|<Literal_Origin> Literal_Origin|<Aggregate_Info> Aggregate_Info|<Type> Type|<Expr_Staticness> Expr_Staticness|<Aggregate_Expand_Flag> Aggregate_Expand_Flag|<Determined_Aggregate_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] }

Iir_Kind_Parenthesis_Expression

Format: Short

Accessor

Field

Type

Access

Description

Expression

Field5

Iir

owned

Expression for an various nodes.

Type

Field1

Iir

ref

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

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> Expression|<Type> Type|<Expr_Staticness> 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] }

Iir_Kind_Qualified_Expression

LRM08 9.3.5 Qualified expressions

qualified_expression ::=
     type_mark ' ( expression )
   | type_mark ' aggregate

Format: Short

Accessor

Field

Type

Access

Description

Type_Mark

Field4

Iir

owned

The type_mark that appeared in qualified expressions or type conversions.

Expression

Field5

Iir

owned

Expression for an various nodes.

Type

Field1

Iir

ref

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

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> Type_Mark|<Expression> Expression|<Type> Type|<Expr_Staticness> 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] }

Iir_Kind_Type_Conversion

LRM08 9.3.6 Type conversions

type_conversion ::= type_mark ( expression )

Format: Short

Accessor

Field

Type

Access

Description

Type

Field1

Iir

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.

Type_Mark

Field4

Iir

owned

The type_mark that appeared in qualified expressions or type conversions.

Expression

Field5

Iir

owned

Expression for an various nodes.

Expr_Staticness

State1

Iir_Staticness

owned

Expression staticness, defined by rules of LRM 7.4

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|<Type_Conversion_Subtype> Type_Conversion_Subtype|<Type_Mark> Type_Mark|<Expression> Expression|<Expr_Staticness> 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"] }