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 Fields page.
Iir_Kind_Simple_Aggregate
This node can only be generated by evaluation: it is an unidimensional positional aggregate.
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
Same as Type, but marked as property of that node. |
|
|
|
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 |
List of elements (Index 0 is for the leftest element). |
|
|
|
ref |
— |
|
|
|
owned |
Expression staticness, defined by rules of LRM 7.4 |
Iir_Kind_Overflow_Literal
This node can only be generated by evaluation to represent an error: out of range, division by zero…
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
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 |
— |
|
|
|
owned |
Expression staticness, defined by rules of LRM 7.4 |
Iir_Kind_Unaffected_Waveform
The ‘unaffected’ reserved word when it appears in the sources.
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
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. |
Iir_Kind_Waveform_Element
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
chain next |
— |
Iir_Kind_Conditional_Waveform
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
Condition of a conditional_waveform, if_statement, elsif, while_loop_statement, next_statement or exit_statement. |
|
|
|
chain |
— |
|
|
|
chain next |
— |
|
|
|
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. |
Iir_Kind_Conditional_Expression
LRM08 10.5.3
conditional_expressions ::=
expression WHEN condition
{ ELSE expression WHEN condition }
[ ELSE expression ]
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
Condition of a conditional_waveform, if_statement, elsif, while_loop_statement, next_statement or exit_statement. |
|
|
|
owned |
Expression for an various nodes. |
|
|
|
chain next |
— |
|
|
|
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. |