Simultaneous Elsif

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_Simultaneous_Elsif

AMS-LRM17 11.11 Simultaneous if statement

simultaneous_if_statement ::=
  [ /if/_label : ]
    IF condition USE
      simultaneous_statement_part
    { ELSIF condition USE
      simultaneous_statement_part }
    [ ELSE
      simultaneous_statement_part ]
    END USE [ /if/_label ];

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.

Condition

Field1

Iir

maybe ref

Condition of a conditional_waveform, if_statement, elsif, while_loop_statement, next_statement or exit_statement.

Simultaneous_Statement_Chain

Field4

Iir

chain

Else_Clause

Field5

Iir

owned

Is_Ref

Flag12

Boolean

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.

End_Has_Identifier

Flag9

Boolean

owned

Layout flag: true if ‘end’ is followed by the identifier.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Simultaneous_Elsif" [style=filled fillcolor="#eeeeec" label="{Simultaneous_Elsif|{<Parent> Parent|<Condition> Condition|<Simultaneous_Statement_Chain> Simultaneous_Statement_Chain|<Else_Clause> Else_Clause|<Is_Ref> Is_Ref|<End_Has_Identifier> End_Has_Identifier}}"] "Simultaneous_Elsif__Parent" [shape=box label="Iir"] "Simultaneous_Elsif":Parent -> "Simultaneous_Elsif__Parent" [color="#3465a4" style=dashed] "Simultaneous_Elsif__Condition" [shape=box label="Iir"] "Simultaneous_Elsif":Condition -> "Simultaneous_Elsif__Condition" [color="#3465a4" style=dotted] "Simultaneous_Elsif__Simultaneous_Statement_Chain" [shape=box label="Iir"] "Simultaneous_Elsif":Simultaneous_Statement_Chain -> "Simultaneous_Elsif__Simultaneous_Statement_Chain" [color="#4e9a06"] "Simultaneous_Elsif__Else_Clause" [shape=box label="Iir"] "Simultaneous_Elsif":Else_Clause -> "Simultaneous_Elsif__Else_Clause" [color="#000000"] }