Simultaneous Statement

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_Simple_Simultaneous_Statement

Format: Medium

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

Label

Field3

Name_Id

owned

Simultaneous_Left

Field5

Iir

owned

Simultaneous_Right

Field6

Iir

owned

Tolerance

Field7

Iir

owned

Visible_Flag

Flag4

Boolean

owned

Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Simple_Simultaneous_Statement" [style=filled fillcolor="#eeeeec" label="{Simple_Simultaneous_Statement|{<Parent> Parent|<Chain> Chain|<Label> Label|<Simultaneous_Left> Simultaneous_Left|<Simultaneous_Right> Simultaneous_Right|<Tolerance> Tolerance|<Visible_Flag> Visible_Flag}}"] "Simple_Simultaneous_Statement__Parent" [shape=box label="Iir"] "Simple_Simultaneous_Statement":Parent -> "Simple_Simultaneous_Statement__Parent" [color="#3465a4" style=dashed] "Simple_Simultaneous_Statement__Chain" [shape=box label="Iir"] "Simple_Simultaneous_Statement":Chain -> "Simple_Simultaneous_Statement__Chain" [color="#4e9a06" style=bold] "Simple_Simultaneous_Statement__Simultaneous_Left" [shape=box label="Iir"] "Simple_Simultaneous_Statement":Simultaneous_Left -> "Simple_Simultaneous_Statement__Simultaneous_Left" [color="#000000"] "Simple_Simultaneous_Statement__Simultaneous_Right" [shape=box label="Iir"] "Simple_Simultaneous_Statement":Simultaneous_Right -> "Simple_Simultaneous_Statement__Simultaneous_Right" [color="#000000"] "Simple_Simultaneous_Statement__Tolerance" [shape=box label="Iir"] "Simple_Simultaneous_Statement":Tolerance -> "Simple_Simultaneous_Statement__Tolerance" [color="#000000"] }

Iir_Kind_Simultaneous_Null_Statement

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

Label

Field3

Name_Id

owned

Visible_Flag

Flag4

Boolean

owned

Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Simultaneous_Null_Statement" [style=filled fillcolor="#eeeeec" label="{Simultaneous_Null_Statement|{<Parent> Parent|<Chain> Chain|<Label> Label|<Visible_Flag> Visible_Flag}}"] "Simultaneous_Null_Statement__Parent" [shape=box label="Iir"] "Simultaneous_Null_Statement":Parent -> "Simultaneous_Null_Statement__Parent" [color="#3465a4" style=dashed] "Simultaneous_Null_Statement__Chain" [shape=box label="Iir"] "Simultaneous_Null_Statement":Chain -> "Simultaneous_Null_Statement__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Simultaneous_Procedural_Statement

AMS-LRM17 11.13 Simultaneous procedural statement

simultaneous_procedural_statement ::=
  [ procedural_label : ]
    PROCEDURAL [ IS ]
      procedural_declarative_part
    BEGIN
      procedural_statement_part
    END PROCEDURAL [ procedural_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.

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Declaration_Chain

Field1

Iir

chain

Sequential_Statement_Chain

Field4

Iir

chain

Attribute_Value_Chain

Field5

Iir

ref

Chain of attribute values for declared items. To be used with Get/Set_Value_Chain. There is no order, therefore, a new attribute value may be always prepended.

Visible_Flag

Flag4

Boolean

owned

Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished.

Is_Within_Flag

Flag5

Boolean

owned

This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule.

Has_Is

Flag7

Boolean

owned

Layout flag: true if ‘is’ is present.

End_Has_Reserved_Id

Flag8

Boolean

owned

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

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_Procedural_Statement" [style=filled fillcolor="#eeeeec" label="{Simultaneous_Procedural_Statement|{<Parent> Parent|<Chain> Chain|<Label> Label|<Declaration_Chain> Declaration_Chain|<Sequential_Statement_Chain> Sequential_Statement_Chain|<Attribute_Value_Chain> Attribute_Value_Chain|<Visible_Flag> Visible_Flag|<Is_Within_Flag> Is_Within_Flag|<Has_Is> Has_Is|<End_Has_Reserved_Id> End_Has_Reserved_Id|<End_Has_Identifier> End_Has_Identifier}}"] "Simultaneous_Procedural_Statement__Parent" [shape=box label="Iir"] "Simultaneous_Procedural_Statement":Parent -> "Simultaneous_Procedural_Statement__Parent" [color="#3465a4" style=dashed] "Simultaneous_Procedural_Statement__Chain" [shape=box label="Iir"] "Simultaneous_Procedural_Statement":Chain -> "Simultaneous_Procedural_Statement__Chain" [color="#4e9a06" style=bold] "Simultaneous_Procedural_Statement__Declaration_Chain" [shape=box label="Iir"] "Simultaneous_Procedural_Statement":Declaration_Chain -> "Simultaneous_Procedural_Statement__Declaration_Chain" [color="#4e9a06"] "Simultaneous_Procedural_Statement__Sequential_Statement_Chain" [shape=box label="Iir"] "Simultaneous_Procedural_Statement":Sequential_Statement_Chain -> "Simultaneous_Procedural_Statement__Sequential_Statement_Chain" [color="#4e9a06"] "Simultaneous_Procedural_Statement__Attribute_Value_Chain" [shape=box label="Iir"] "Simultaneous_Procedural_Statement":Attribute_Value_Chain -> "Simultaneous_Procedural_Statement__Attribute_Value_Chain" [color="#3465a4" style=dashed] }

Iir_Kind_Simultaneous_Case_Statement

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.

Case_Statement_Alternative_Chain

Field1

Iir

chain

Chain is composed of Iir_Kind_Choice_By_XXX.

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Expression

Field5

Iir

owned

Expression for an various nodes.

Visible_Flag

Flag4

Boolean

owned

Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished.

Is_Within_Flag

Flag5

Boolean

owned

This flag is set is code being analyzed is textually within TARGET. This is used for selected by name rule.

End_Has_Reserved_Id

Flag8

Boolean

owned

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

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_Case_Statement" [style=filled fillcolor="#eeeeec" label="{Simultaneous_Case_Statement|{<Parent> Parent|<Case_Statement_Alternative_Chain> Case_Statement_Alternative_Chain|<Chain> Chain|<Label> Label|<Expression> Expression|<Visible_Flag> Visible_Flag|<Is_Within_Flag> Is_Within_Flag|<End_Has_Reserved_Id> End_Has_Reserved_Id|<End_Has_Identifier> End_Has_Identifier}}"] "Simultaneous_Case_Statement__Parent" [shape=box label="Iir"] "Simultaneous_Case_Statement":Parent -> "Simultaneous_Case_Statement__Parent" [color="#3465a4" style=dashed] "Simultaneous_Case_Statement__Case_Statement_Alternative_Chain" [shape=box label="Iir"] "Simultaneous_Case_Statement":Case_Statement_Alternative_Chain -> "Simultaneous_Case_Statement__Case_Statement_Alternative_Chain" [color="#4e9a06"] "Simultaneous_Case_Statement__Chain" [shape=box label="Iir"] "Simultaneous_Case_Statement":Chain -> "Simultaneous_Case_Statement__Chain" [color="#4e9a06" style=bold] "Simultaneous_Case_Statement__Expression" [shape=box label="Iir"] "Simultaneous_Case_Statement":Expression -> "Simultaneous_Case_Statement__Expression" [color="#000000"] }

Iir_Kind_Simultaneous_If_Statement

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.

Label

Field3

Name_Id

owned

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

Chain

Field2

Iir

chain next

Visible_Flag

Flag4

Boolean

owned

Get/Set the visible flag of a declaration. The visible flag is true to make invalid the use of the identifier during its declaration. It is set to false when the identifier is added to the name table, and set to true when the declaration is finished.

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_If_Statement" [style=filled fillcolor="#eeeeec" label="{Simultaneous_If_Statement|{<Parent> Parent|<Label> Label|<Condition> Condition|<Simultaneous_Statement_Chain> Simultaneous_Statement_Chain|<Else_Clause> Else_Clause|<Chain> Chain|<Visible_Flag> Visible_Flag|<Is_Ref> Is_Ref|<End_Has_Identifier> End_Has_Identifier}}"] "Simultaneous_If_Statement__Parent" [shape=box label="Iir"] "Simultaneous_If_Statement":Parent -> "Simultaneous_If_Statement__Parent" [color="#3465a4" style=dashed] "Simultaneous_If_Statement__Condition" [shape=box label="Iir"] "Simultaneous_If_Statement":Condition -> "Simultaneous_If_Statement__Condition" [color="#3465a4" style=dotted] "Simultaneous_If_Statement__Simultaneous_Statement_Chain" [shape=box label="Iir"] "Simultaneous_If_Statement":Simultaneous_Statement_Chain -> "Simultaneous_If_Statement__Simultaneous_Statement_Chain" [color="#4e9a06"] "Simultaneous_If_Statement__Else_Clause" [shape=box label="Iir"] "Simultaneous_If_Statement":Else_Clause -> "Simultaneous_If_Statement__Else_Clause" [color="#000000"] "Simultaneous_If_Statement__Chain" [shape=box label="Iir"] "Simultaneous_If_Statement":Chain -> "Simultaneous_If_Statement__Chain" [color="#4e9a06" style=bold] }