Choice

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_Choice_By_Range

(Iir_Kinds_Choice)

Used by: Iir_Kind_Aggregate Iir_Kind_Case_Statement Iir_Kind_Case_Generate_Statement Iir_Kind_Concurrent_Selected_Signal_Assignment Iir_Kind_Simultaneous_Case_Statement

The location of the first alternative is set on: ‘when’ for case statement, selected assignment and case generate, ‘(’ or ‘,’ for aggregates. The location of the following alternatives is set on ‘|’.

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Chain

Field2

Iir

chain next

For a list of choices, only the first one is associated, the following associations have the same_alternative_flag set.

Choice_Range

Field5

Iir

owned

Associated_Expr

Field3

Iir

owned

Get/Set what is associated with the choice. There are two different nodes, one for simple association and the other for chain association. They don’t have the same properties (normal vs chain), so the right field must be selected according to the property to have working walkers. Both fields are never used at the same time. For: * an expression for an aggregate * an individual association * a generate_statement_body chain for a case_generate_statement

Associated_Chain

Field4

Iir

chain

For * a waveform_chain for a concurrent_selected_signal_assignment, * a sequential statement chain for a case_statement.

Same_Alternative_Flag

Flag1

Boolean

owned

Set when share the same association as the previous one.

Element_Type_Flag

Flag2

Boolean

owned

For aggregates: if True, associated expression is for one element.

Choice_Staticness

State1

Iir_Staticness

owned

Staticness of the choice.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Choice_By_Range" [style=filled fillcolor="#eeeeec" label="{Choice_By_Range|{<Parent> Parent|<Chain> Chain|<Choice_Range> Choice_Range|<Associated_Expr> Associated_Expr|<Associated_Chain> Associated_Chain|<Same_Alternative_Flag> Same_Alternative_Flag|<Element_Type_Flag> Element_Type_Flag|<Choice_Staticness> Choice_Staticness}}"] "Choice_By_Range__Parent" [shape=box label="Iir"] "Choice_By_Range":Parent -> "Choice_By_Range__Parent" [color="#3465a4" style=dashed] "Choice_By_Range__Chain" [shape=box label="Iir"] "Choice_By_Range":Chain -> "Choice_By_Range__Chain" [color="#4e9a06" style=bold] "Choice_By_Range__Choice_Range" [shape=box label="Iir"] "Choice_By_Range":Choice_Range -> "Choice_By_Range__Choice_Range" [color="#000000"] "Choice_By_Range__Associated_Expr" [shape=box label="Iir"] "Choice_By_Range":Associated_Expr -> "Choice_By_Range__Associated_Expr" [color="#000000"] "Choice_By_Range__Associated_Chain" [shape=box label="Iir"] "Choice_By_Range":Associated_Chain -> "Choice_By_Range__Associated_Chain" [color="#4e9a06"] }

Iir_Kind_Choice_By_Expression

(Iir_Kinds_Choice)

Used by: Iir_Kind_Aggregate Iir_Kind_Case_Statement Iir_Kind_Case_Generate_Statement Iir_Kind_Concurrent_Selected_Signal_Assignment Iir_Kind_Simultaneous_Case_Statement

The location of the first alternative is set on: ‘when’ for case statement, selected assignment and case generate, ‘(’ or ‘,’ for aggregates. The location of the following alternatives is set on ‘|’.

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Chain

Field2

Iir

chain next

For a list of choices, only the first one is associated, the following associations have the same_alternative_flag set.

Choice_Expression

Field5

Iir

owned

Associated_Expr

Field3

Iir

owned

Get/Set what is associated with the choice. There are two different nodes, one for simple association and the other for chain association. They don’t have the same properties (normal vs chain), so the right field must be selected according to the property to have working walkers. Both fields are never used at the same time. For: * an expression for an aggregate * an individual association * a generate_statement_body chain for a case_generate_statement

Associated_Chain

Field4

Iir

chain

For * a waveform_chain for a concurrent_selected_signal_assignment, * a sequential statement chain for a case_statement.

Same_Alternative_Flag

Flag1

Boolean

owned

Set when share the same association as the previous one.

Element_Type_Flag

Flag2

Boolean

owned

For aggregates: if True, associated expression is for one element.

Choice_Staticness

State1

Iir_Staticness

owned

Staticness of the choice.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Choice_By_Expression" [style=filled fillcolor="#eeeeec" label="{Choice_By_Expression|{<Parent> Parent|<Chain> Chain|<Choice_Expression> Choice_Expression|<Associated_Expr> Associated_Expr|<Associated_Chain> Associated_Chain|<Same_Alternative_Flag> Same_Alternative_Flag|<Element_Type_Flag> Element_Type_Flag|<Choice_Staticness> Choice_Staticness}}"] "Choice_By_Expression__Parent" [shape=box label="Iir"] "Choice_By_Expression":Parent -> "Choice_By_Expression__Parent" [color="#3465a4" style=dashed] "Choice_By_Expression__Chain" [shape=box label="Iir"] "Choice_By_Expression":Chain -> "Choice_By_Expression__Chain" [color="#4e9a06" style=bold] "Choice_By_Expression__Choice_Expression" [shape=box label="Iir"] "Choice_By_Expression":Choice_Expression -> "Choice_By_Expression__Choice_Expression" [color="#000000"] "Choice_By_Expression__Associated_Expr" [shape=box label="Iir"] "Choice_By_Expression":Associated_Expr -> "Choice_By_Expression__Associated_Expr" [color="#000000"] "Choice_By_Expression__Associated_Chain" [shape=box label="Iir"] "Choice_By_Expression":Associated_Chain -> "Choice_By_Expression__Associated_Chain" [color="#4e9a06"] }

Iir_Kind_Choice_By_Others

(Iir_Kinds_Choice)

Used by: Iir_Kind_Aggregate Iir_Kind_Case_Statement Iir_Kind_Case_Generate_Statement Iir_Kind_Concurrent_Selected_Signal_Assignment Iir_Kind_Simultaneous_Case_Statement

The location of the first alternative is set on: ‘when’ for case statement, selected assignment and case generate, ‘(’ or ‘,’ for aggregates. The location of the following alternatives is set on ‘|’.

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Chain

Field2

Iir

chain next

For a list of choices, only the first one is associated, the following associations have the same_alternative_flag set.

Associated_Expr

Field3

Iir

owned

Get/Set what is associated with the choice. There are two different nodes, one for simple association and the other for chain association. They don’t have the same properties (normal vs chain), so the right field must be selected according to the property to have working walkers. Both fields are never used at the same time. For: * an expression for an aggregate * an individual association * a generate_statement_body chain for a case_generate_statement

Associated_Chain

Field4

Iir

chain

For * a waveform_chain for a concurrent_selected_signal_assignment, * a sequential statement chain for a case_statement.

Same_Alternative_Flag

Flag1

Boolean

owned

Set when share the same association as the previous one.

Element_Type_Flag

Flag2

Boolean

owned

For aggregates: if True, associated expression is for one element.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Choice_By_Others" [style=filled fillcolor="#eeeeec" label="{Choice_By_Others|{<Parent> Parent|<Chain> Chain|<Associated_Expr> Associated_Expr|<Associated_Chain> Associated_Chain|<Same_Alternative_Flag> Same_Alternative_Flag|<Element_Type_Flag> Element_Type_Flag}}"] "Choice_By_Others__Parent" [shape=box label="Iir"] "Choice_By_Others":Parent -> "Choice_By_Others__Parent" [color="#3465a4" style=dashed] "Choice_By_Others__Chain" [shape=box label="Iir"] "Choice_By_Others":Chain -> "Choice_By_Others__Chain" [color="#4e9a06" style=bold] "Choice_By_Others__Associated_Expr" [shape=box label="Iir"] "Choice_By_Others":Associated_Expr -> "Choice_By_Others__Associated_Expr" [color="#000000"] "Choice_By_Others__Associated_Chain" [shape=box label="Iir"] "Choice_By_Others":Associated_Chain -> "Choice_By_Others__Associated_Chain" [color="#4e9a06"] }

Iir_Kind_Choice_By_None

(Iir_Kinds_Choice)

Used by: Iir_Kind_Aggregate Iir_Kind_Case_Statement Iir_Kind_Case_Generate_Statement Iir_Kind_Concurrent_Selected_Signal_Assignment Iir_Kind_Simultaneous_Case_Statement

The location of the first alternative is set on: ‘when’ for case statement, selected assignment and case generate, ‘(’ or ‘,’ for aggregates. The location of the following alternatives is set on ‘|’.

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Chain

Field2

Iir

chain next

For a list of choices, only the first one is associated, the following associations have the same_alternative_flag set.

Associated_Expr

Field3

Iir

owned

Get/Set what is associated with the choice. There are two different nodes, one for simple association and the other for chain association. They don’t have the same properties (normal vs chain), so the right field must be selected according to the property to have working walkers. Both fields are never used at the same time. For: * an expression for an aggregate * an individual association * a generate_statement_body chain for a case_generate_statement

Associated_Chain

Field4

Iir

chain

For * a waveform_chain for a concurrent_selected_signal_assignment, * a sequential statement chain for a case_statement.

Same_Alternative_Flag

Flag1

Boolean

owned

Set when share the same association as the previous one.

Element_Type_Flag

Flag2

Boolean

owned

For aggregates: if True, associated expression is for one element.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Choice_By_None" [style=filled fillcolor="#eeeeec" label="{Choice_By_None|{<Parent> Parent|<Chain> Chain|<Associated_Expr> Associated_Expr|<Associated_Chain> Associated_Chain|<Same_Alternative_Flag> Same_Alternative_Flag|<Element_Type_Flag> Element_Type_Flag}}"] "Choice_By_None__Parent" [shape=box label="Iir"] "Choice_By_None":Parent -> "Choice_By_None__Parent" [color="#3465a4" style=dashed] "Choice_By_None__Chain" [shape=box label="Iir"] "Choice_By_None":Chain -> "Choice_By_None__Chain" [color="#4e9a06" style=bold] "Choice_By_None__Associated_Expr" [shape=box label="Iir"] "Choice_By_None":Associated_Expr -> "Choice_By_None__Associated_Expr" [color="#000000"] "Choice_By_None__Associated_Chain" [shape=box label="Iir"] "Choice_By_None":Associated_Chain -> "Choice_By_None__Associated_Chain" [color="#4e9a06"] }

Iir_Kind_Choice_By_Name

(Iir_Kinds_Choice)

Used by: Iir_Kind_Aggregate Iir_Kind_Case_Statement Iir_Kind_Case_Generate_Statement Iir_Kind_Concurrent_Selected_Signal_Assignment Iir_Kind_Simultaneous_Case_Statement

The location of the first alternative is set on: ‘when’ for case statement, selected assignment and case generate, ‘(’ or ‘,’ for aggregates. The location of the following alternatives is set on ‘|’.

Format: Short

Accessor

Field

Type

Access

Description

Parent

Field0

Iir

ref

Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop.

Chain

Field2

Iir

chain next

For a list of choices, only the first one is associated, the following associations have the same_alternative_flag set.

Choice_Name

Field5

Iir

owned

Should be a simple_name.

Associated_Expr

Field3

Iir

owned

Get/Set what is associated with the choice. There are two different nodes, one for simple association and the other for chain association. They don’t have the same properties (normal vs chain), so the right field must be selected according to the property to have working walkers. Both fields are never used at the same time. For: * an expression for an aggregate * an individual association * a generate_statement_body chain for a case_generate_statement

Associated_Chain

Field4

Iir

chain

For * a waveform_chain for a concurrent_selected_signal_assignment, * a sequential statement chain for a case_statement.

Same_Alternative_Flag

Flag1

Boolean

owned

Set when share the same association as the previous one.

Element_Type_Flag

Flag2

Boolean

owned

For aggregates: if True, associated expression is for one element.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Choice_By_Name" [style=filled fillcolor="#eeeeec" label="{Choice_By_Name|{<Parent> Parent|<Chain> Chain|<Choice_Name> Choice_Name|<Associated_Expr> Associated_Expr|<Associated_Chain> Associated_Chain|<Same_Alternative_Flag> Same_Alternative_Flag|<Element_Type_Flag> Element_Type_Flag}}"] "Choice_By_Name__Parent" [shape=box label="Iir"] "Choice_By_Name":Parent -> "Choice_By_Name__Parent" [color="#3465a4" style=dashed] "Choice_By_Name__Chain" [shape=box label="Iir"] "Choice_By_Name":Chain -> "Choice_By_Name__Chain" [color="#4e9a06" style=bold] "Choice_By_Name__Choice_Name" [shape=box label="Iir"] "Choice_By_Name":Choice_Name -> "Choice_By_Name__Choice_Name" [color="#000000"] "Choice_By_Name__Associated_Expr" [shape=box label="Iir"] "Choice_By_Name":Associated_Expr -> "Choice_By_Name__Associated_Expr" [color="#000000"] "Choice_By_Name__Associated_Chain" [shape=box label="Iir"] "Choice_By_Name":Associated_Chain -> "Choice_By_Name__Associated_Chain" [color="#4e9a06"] }