Concurrent 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_Sensitized_Process_Statement

Location is on the label, or ‘postponed’ or ‘process’.

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.

Declaration_Chain

Field1

Iir

chain

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

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.

Process_Origin

Field8

Iir

owned

The concurrent statement at the origin of that process. This is Null_Iir for a user process.

Sequential_Statement_Chain

Field4

Iir

chain

Sensitivity_List

Field6

Iir_List

of maybe ref

Sensitivity list. Must be after the statements, because signal aliases may be referenced (in case of implicit process).

Callees_List

Field7

Iir_List

of ref

Returns the list of subprogram called in this subprogram or process. Note: implicit function (such as implicit operators) are omitted from this list, since the purpose of this list is to correctly set flags for side effects (purity_state, wait_state). Can return null_iir if there is no subprogram called.

Wait_State

State1

Tri_State_Type

owned

Get/Set the wait state of the current subprogram or process. TRUE if it contains a wait statement, either directly or indirectly. FALSE if it doesn’t contain a wait statement. UNKNOWN if the wait status is not yet known.

Seen_Flag

Flag1

Boolean

owned

Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles).

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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.

End_Has_Postponed

Flag10

Boolean

owned

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

Stop_Flag

Flag2

Boolean

owned

Set when std.env.stop/finish is called. Prevents the infinite loop warning.

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.

Passive_Flag

Flag14

Boolean

owned

Get/Set the passive flag of a process. TRUE if the process must be passive. FALSE if the process may be not passive. For a procedure declaration, set if it is passive.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Sensitized_Process_Statement" [style=filled fillcolor="#eeeeec" label="{Sensitized_Process_Statement|{<Parent> Parent|<Declaration_Chain> Declaration_Chain|<Chain> Chain|<Label> Label|<Attribute_Value_Chain> Attribute_Value_Chain|<Process_Origin> Process_Origin|<Sequential_Statement_Chain> Sequential_Statement_Chain|<Sensitivity_List> Sensitivity_List|<Callees_List> Callees_List|<Wait_State> Wait_State|<Seen_Flag> Seen_Flag|<Postponed_Flag> Postponed_Flag|<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|<End_Has_Postponed> End_Has_Postponed|<Stop_Flag> Stop_Flag|<Is_Ref> Is_Ref|<Passive_Flag> Passive_Flag}}"] "Sensitized_Process_Statement__Parent" [shape=box label="Iir"] "Sensitized_Process_Statement":Parent -> "Sensitized_Process_Statement__Parent" [color="#3465a4" style=dashed] "Sensitized_Process_Statement__Declaration_Chain" [shape=box label="Iir"] "Sensitized_Process_Statement":Declaration_Chain -> "Sensitized_Process_Statement__Declaration_Chain" [color="#4e9a06"] "Sensitized_Process_Statement__Chain" [shape=box label="Iir"] "Sensitized_Process_Statement":Chain -> "Sensitized_Process_Statement__Chain" [color="#4e9a06" style=bold] "Sensitized_Process_Statement__Attribute_Value_Chain" [shape=box label="Iir"] "Sensitized_Process_Statement":Attribute_Value_Chain -> "Sensitized_Process_Statement__Attribute_Value_Chain" [color="#3465a4" style=dashed] "Sensitized_Process_Statement__Process_Origin" [shape=box label="Iir"] "Sensitized_Process_Statement":Process_Origin -> "Sensitized_Process_Statement__Process_Origin" [color="#000000"] "Sensitized_Process_Statement__Sequential_Statement_Chain" [shape=box label="Iir"] "Sensitized_Process_Statement":Sequential_Statement_Chain -> "Sensitized_Process_Statement__Sequential_Statement_Chain" [color="#4e9a06"] "Sensitized_Process_Statement__Sensitivity_List" [shape=box3d label="Iir_List"] "Sensitized_Process_Statement":Sensitivity_List -> "Sensitized_Process_Statement__Sensitivity_List" [color="#3465a4" style=dotted] "Sensitized_Process_Statement__Callees_List" [shape=box3d label="Iir_List"] "Sensitized_Process_Statement":Callees_List -> "Sensitized_Process_Statement__Callees_List" [color="#3465a4" style=dashed] }

Iir_Kind_Process_Statement

Location is on the label, or ‘postponed’ or ‘process’.

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.

Declaration_Chain

Field1

Iir

chain

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

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.

Process_Origin

Field8

Iir

owned

The concurrent statement at the origin of that process. This is Null_Iir for a user process.

Sequential_Statement_Chain

Field4

Iir

chain

Callees_List

Field7

Iir_List

of ref

Returns the list of subprogram called in this subprogram or process. Note: implicit function (such as implicit operators) are omitted from this list, since the purpose of this list is to correctly set flags for side effects (purity_state, wait_state). Can return null_iir if there is no subprogram called.

Wait_State

State1

Tri_State_Type

owned

Get/Set the wait state of the current subprogram or process. TRUE if it contains a wait statement, either directly or indirectly. FALSE if it doesn’t contain a wait statement. UNKNOWN if the wait status is not yet known.

Seen_Flag

Flag1

Boolean

owned

Get/Set the seen flag. Used when the graph of callees is walked, to avoid infinite loops, since the graph is not a DAG (there may be cycles).

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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.

End_Has_Postponed

Flag10

Boolean

owned

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

Suspend_Flag

Flag11

Boolean

owned

Set on wait, procedure call and composite statements when there is a sub-statement that can suspend a procedure or a process. Also set on procedure declaration. Note that the flag is conservative: it must be true if the node contains directly or indirectly a wait statement, but need not to be false otherwise.

Stop_Flag

Flag2

Boolean

owned

Set when std.env.stop/finish is called. Prevents the infinite loop warning.

Passive_Flag

Flag14

Boolean

owned

Get/Set the passive flag of a process. TRUE if the process must be passive. FALSE if the process may be not passive. For a procedure declaration, set if it is passive.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Process_Statement" [style=filled fillcolor="#eeeeec" label="{Process_Statement|{<Parent> Parent|<Declaration_Chain> Declaration_Chain|<Chain> Chain|<Label> Label|<Attribute_Value_Chain> Attribute_Value_Chain|<Process_Origin> Process_Origin|<Sequential_Statement_Chain> Sequential_Statement_Chain|<Callees_List> Callees_List|<Wait_State> Wait_State|<Seen_Flag> Seen_Flag|<Postponed_Flag> Postponed_Flag|<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|<End_Has_Postponed> End_Has_Postponed|<Suspend_Flag> Suspend_Flag|<Stop_Flag> Stop_Flag|<Passive_Flag> Passive_Flag}}"] "Process_Statement__Parent" [shape=box label="Iir"] "Process_Statement":Parent -> "Process_Statement__Parent" [color="#3465a4" style=dashed] "Process_Statement__Declaration_Chain" [shape=box label="Iir"] "Process_Statement":Declaration_Chain -> "Process_Statement__Declaration_Chain" [color="#4e9a06"] "Process_Statement__Chain" [shape=box label="Iir"] "Process_Statement":Chain -> "Process_Statement__Chain" [color="#4e9a06" style=bold] "Process_Statement__Attribute_Value_Chain" [shape=box label="Iir"] "Process_Statement":Attribute_Value_Chain -> "Process_Statement__Attribute_Value_Chain" [color="#3465a4" style=dashed] "Process_Statement__Process_Origin" [shape=box label="Iir"] "Process_Statement":Process_Origin -> "Process_Statement__Process_Origin" [color="#000000"] "Process_Statement__Sequential_Statement_Chain" [shape=box label="Iir"] "Process_Statement":Sequential_Statement_Chain -> "Process_Statement__Sequential_Statement_Chain" [color="#4e9a06"] "Process_Statement__Callees_List" [shape=box3d label="Iir_List"] "Process_Statement":Callees_List -> "Process_Statement__Callees_List" [color="#3465a4" style=dashed] }

Iir_Kind_Concurrent_Simple_Signal_Assignment

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.

Target

Field1

Iir

maybe ref

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Reject_Time_Expression

Field4

Iir

owned

Waveform_Chain

Field5

Iir

chain

Guard

Field8

Iir

ref

If the assignment is guarded, then get_guard must return the declaration of the signal guard, otherwise, null_iir. If the guard signal decl is not known, as a kludge and only to mark this assignment guarded, the guard can be this assignment.

Delay_Mechanism

Flag1

Iir_Delay_Mechanism

owned

Has_Delay_Mechanism

Flag2

Boolean

owned

Layout flag for signal assignment. If True, the delay mechanism is present. This is obviously true for transport or inertial with reject, but the simple ‘inertial’ is optional.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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.

Guarded_Target_State

State1

Tri_State_Type

owned

True if the target of the assignment is guarded

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Concurrent_Simple_Signal_Assignment" [style=filled fillcolor="#eeeeec" label="{Concurrent_Simple_Signal_Assignment|{<Parent> Parent|<Target> Target|<Chain> Chain|<Label> Label|<Reject_Time_Expression> Reject_Time_Expression|<Waveform_Chain> Waveform_Chain|<Guard> Guard|<Delay_Mechanism> Delay_Mechanism|<Has_Delay_Mechanism> Has_Delay_Mechanism|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag|<Guarded_Target_State> Guarded_Target_State|<Is_Ref> Is_Ref}}"] "Concurrent_Simple_Signal_Assignment__Parent" [shape=box label="Iir"] "Concurrent_Simple_Signal_Assignment":Parent -> "Concurrent_Simple_Signal_Assignment__Parent" [color="#3465a4" style=dashed] "Concurrent_Simple_Signal_Assignment__Target" [shape=box label="Iir"] "Concurrent_Simple_Signal_Assignment":Target -> "Concurrent_Simple_Signal_Assignment__Target" [color="#3465a4" style=dotted] "Concurrent_Simple_Signal_Assignment__Chain" [shape=box label="Iir"] "Concurrent_Simple_Signal_Assignment":Chain -> "Concurrent_Simple_Signal_Assignment__Chain" [color="#4e9a06" style=bold] "Concurrent_Simple_Signal_Assignment__Reject_Time_Expression" [shape=box label="Iir"] "Concurrent_Simple_Signal_Assignment":Reject_Time_Expression -> "Concurrent_Simple_Signal_Assignment__Reject_Time_Expression" [color="#000000"] "Concurrent_Simple_Signal_Assignment__Waveform_Chain" [shape=box label="Iir"] "Concurrent_Simple_Signal_Assignment":Waveform_Chain -> "Concurrent_Simple_Signal_Assignment__Waveform_Chain" [color="#4e9a06"] "Concurrent_Simple_Signal_Assignment__Guard" [shape=box label="Iir"] "Concurrent_Simple_Signal_Assignment":Guard -> "Concurrent_Simple_Signal_Assignment__Guard" [color="#3465a4" style=dashed] }

Iir_Kind_Concurrent_Conditional_Signal_Assignment

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.

Target

Field1

Iir

maybe ref

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Reject_Time_Expression

Field4

Iir

owned

Conditional_Waveform_Chain

Field5

Iir

chain

Guard

Field8

Iir

ref

If the assignment is guarded, then get_guard must return the declaration of the signal guard, otherwise, null_iir. If the guard signal decl is not known, as a kludge and only to mark this assignment guarded, the guard can be this assignment.

Delay_Mechanism

Flag1

Iir_Delay_Mechanism

owned

Has_Delay_Mechanism

Flag2

Boolean

owned

Layout flag for signal assignment. If True, the delay mechanism is present. This is obviously true for transport or inertial with reject, but the simple ‘inertial’ is optional.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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.

Guarded_Target_State

State1

Tri_State_Type

owned

True if the target of the assignment is guarded

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Concurrent_Conditional_Signal_Assignment" [style=filled fillcolor="#eeeeec" label="{Concurrent_Conditional_Signal_Assignment|{<Parent> Parent|<Target> Target|<Chain> Chain|<Label> Label|<Reject_Time_Expression> Reject_Time_Expression|<Conditional_Waveform_Chain> Conditional_Waveform_Chain|<Guard> Guard|<Delay_Mechanism> Delay_Mechanism|<Has_Delay_Mechanism> Has_Delay_Mechanism|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag|<Guarded_Target_State> Guarded_Target_State|<Is_Ref> Is_Ref}}"] "Concurrent_Conditional_Signal_Assignment__Parent" [shape=box label="Iir"] "Concurrent_Conditional_Signal_Assignment":Parent -> "Concurrent_Conditional_Signal_Assignment__Parent" [color="#3465a4" style=dashed] "Concurrent_Conditional_Signal_Assignment__Target" [shape=box label="Iir"] "Concurrent_Conditional_Signal_Assignment":Target -> "Concurrent_Conditional_Signal_Assignment__Target" [color="#3465a4" style=dotted] "Concurrent_Conditional_Signal_Assignment__Chain" [shape=box label="Iir"] "Concurrent_Conditional_Signal_Assignment":Chain -> "Concurrent_Conditional_Signal_Assignment__Chain" [color="#4e9a06" style=bold] "Concurrent_Conditional_Signal_Assignment__Reject_Time_Expression" [shape=box label="Iir"] "Concurrent_Conditional_Signal_Assignment":Reject_Time_Expression -> "Concurrent_Conditional_Signal_Assignment__Reject_Time_Expression" [color="#000000"] "Concurrent_Conditional_Signal_Assignment__Conditional_Waveform_Chain" [shape=box label="Iir"] "Concurrent_Conditional_Signal_Assignment":Conditional_Waveform_Chain -> "Concurrent_Conditional_Signal_Assignment__Conditional_Waveform_Chain" [color="#4e9a06"] "Concurrent_Conditional_Signal_Assignment__Guard" [shape=box label="Iir"] "Concurrent_Conditional_Signal_Assignment":Guard -> "Concurrent_Conditional_Signal_Assignment__Guard" [color="#3465a4" style=dashed] }

Iir_Kind_Concurrent_Selected_Signal_Assignment

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.

Target

Field1

Iir

maybe ref

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Reject_Time_Expression

Field4

Iir

owned

Expression

Field5

Iir

owned

Expression for an various nodes.

Selected_Waveform_Chain

Field7

Iir

chain

Guard

Field8

Iir

ref

If the assignment is guarded, then get_guard must return the declaration of the signal guard, otherwise, null_iir. If the guard signal decl is not known, as a kludge and only to mark this assignment guarded, the guard can be this assignment.

Delay_Mechanism

Flag1

Iir_Delay_Mechanism

owned

Has_Delay_Mechanism

Flag2

Boolean

owned

Layout flag for signal assignment. If True, the delay mechanism is present. This is obviously true for transport or inertial with reject, but the simple ‘inertial’ is optional.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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.

Matching_Flag

Flag5

Boolean

owned

Matching condition for case statement.

Guarded_Target_State

State1

Tri_State_Type

owned

True if the target of the assignment is guarded

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Concurrent_Selected_Signal_Assignment" [style=filled fillcolor="#eeeeec" label="{Concurrent_Selected_Signal_Assignment|{<Parent> Parent|<Target> Target|<Chain> Chain|<Label> Label|<Reject_Time_Expression> Reject_Time_Expression|<Expression> Expression|<Selected_Waveform_Chain> Selected_Waveform_Chain|<Guard> Guard|<Delay_Mechanism> Delay_Mechanism|<Has_Delay_Mechanism> Has_Delay_Mechanism|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag|<Matching_Flag> Matching_Flag|<Guarded_Target_State> Guarded_Target_State|<Is_Ref> Is_Ref}}"] "Concurrent_Selected_Signal_Assignment__Parent" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Parent -> "Concurrent_Selected_Signal_Assignment__Parent" [color="#3465a4" style=dashed] "Concurrent_Selected_Signal_Assignment__Target" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Target -> "Concurrent_Selected_Signal_Assignment__Target" [color="#3465a4" style=dotted] "Concurrent_Selected_Signal_Assignment__Chain" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Chain -> "Concurrent_Selected_Signal_Assignment__Chain" [color="#4e9a06" style=bold] "Concurrent_Selected_Signal_Assignment__Reject_Time_Expression" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Reject_Time_Expression -> "Concurrent_Selected_Signal_Assignment__Reject_Time_Expression" [color="#000000"] "Concurrent_Selected_Signal_Assignment__Expression" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Expression -> "Concurrent_Selected_Signal_Assignment__Expression" [color="#000000"] "Concurrent_Selected_Signal_Assignment__Selected_Waveform_Chain" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Selected_Waveform_Chain -> "Concurrent_Selected_Signal_Assignment__Selected_Waveform_Chain" [color="#4e9a06"] "Concurrent_Selected_Signal_Assignment__Guard" [shape=box label="Iir"] "Concurrent_Selected_Signal_Assignment":Guard -> "Concurrent_Selected_Signal_Assignment__Guard" [color="#3465a4" style=dashed] }

Iir_Kind_Concurrent_Assertion_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.

Assertion_Condition

Field1

Iir

owned

Condition of an assertion.

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Severity_Expression

Field4

Iir

owned

Severity expression of an assertion or report statement.

Report_Expression

Field5

Iir

owned

Report expression of an assertion or report statement.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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] "Concurrent_Assertion_Statement" [style=filled fillcolor="#eeeeec" label="{Concurrent_Assertion_Statement|{<Parent> Parent|<Assertion_Condition> Assertion_Condition|<Chain> Chain|<Label> Label|<Severity_Expression> Severity_Expression|<Report_Expression> Report_Expression|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag}}"] "Concurrent_Assertion_Statement__Parent" [shape=box label="Iir"] "Concurrent_Assertion_Statement":Parent -> "Concurrent_Assertion_Statement__Parent" [color="#3465a4" style=dashed] "Concurrent_Assertion_Statement__Assertion_Condition" [shape=box label="Iir"] "Concurrent_Assertion_Statement":Assertion_Condition -> "Concurrent_Assertion_Statement__Assertion_Condition" [color="#000000"] "Concurrent_Assertion_Statement__Chain" [shape=box label="Iir"] "Concurrent_Assertion_Statement":Chain -> "Concurrent_Assertion_Statement__Chain" [color="#4e9a06" style=bold] "Concurrent_Assertion_Statement__Severity_Expression" [shape=box label="Iir"] "Concurrent_Assertion_Statement":Severity_Expression -> "Concurrent_Assertion_Statement__Severity_Expression" [color="#000000"] "Concurrent_Assertion_Statement__Report_Expression" [shape=box label="Iir"] "Concurrent_Assertion_Statement":Report_Expression -> "Concurrent_Assertion_Statement__Report_Expression" [color="#000000"] }

Iir_Kind_Concurrent_Procedure_Call_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.

Procedure_Call

Field1

Iir

owned

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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.

Suspend_Flag

Flag11

Boolean

owned

Set on wait, procedure call and composite statements when there is a sub-statement that can suspend a procedure or a process. Also set on procedure declaration. Note that the flag is conservative: it must be true if the node contains directly or indirectly a wait statement, but need not to be false otherwise.

Covered_Flag

Flag10

Boolean

owned

Set during elaboration when the statement is executed.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Concurrent_Procedure_Call_Statement" [style=filled fillcolor="#eeeeec" label="{Concurrent_Procedure_Call_Statement|{<Parent> Parent|<Procedure_Call> Procedure_Call|<Chain> Chain|<Label> Label|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag|<Suspend_Flag> Suspend_Flag|<Covered_Flag> Covered_Flag}}"] "Concurrent_Procedure_Call_Statement__Parent" [shape=box label="Iir"] "Concurrent_Procedure_Call_Statement":Parent -> "Concurrent_Procedure_Call_Statement__Parent" [color="#3465a4" style=dashed] "Concurrent_Procedure_Call_Statement__Procedure_Call" [shape=box label="Iir"] "Concurrent_Procedure_Call_Statement":Procedure_Call -> "Concurrent_Procedure_Call_Statement__Procedure_Call" [color="#000000"] "Concurrent_Procedure_Call_Statement__Chain" [shape=box label="Iir"] "Concurrent_Procedure_Call_Statement":Chain -> "Concurrent_Procedure_Call_Statement__Chain" [color="#4e9a06" style=bold] }

Iir_Kind_Concurrent_Break_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.

Condition

Field1

Iir

maybe ref

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

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Sensitivity_List

Field6

Iir_List

of maybe ref

The Is_Ref flag is set for extracted sensitivity lists.

Break_Element

Field4

Iir

chain

Postponed_Flag

Flag3

Boolean

owned

Never set.

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.

Covered_Flag

Flag10

Boolean

owned

Set during elaboration when the statement is executed.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Concurrent_Break_Statement" [style=filled fillcolor="#eeeeec" label="{Concurrent_Break_Statement|{<Parent> Parent|<Condition> Condition|<Chain> Chain|<Label> Label|<Sensitivity_List> Sensitivity_List|<Break_Element> Break_Element|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag|<Is_Ref> Is_Ref|<Covered_Flag> Covered_Flag}}"] "Concurrent_Break_Statement__Parent" [shape=box label="Iir"] "Concurrent_Break_Statement":Parent -> "Concurrent_Break_Statement__Parent" [color="#3465a4" style=dashed] "Concurrent_Break_Statement__Condition" [shape=box label="Iir"] "Concurrent_Break_Statement":Condition -> "Concurrent_Break_Statement__Condition" [color="#3465a4" style=dotted] "Concurrent_Break_Statement__Chain" [shape=box label="Iir"] "Concurrent_Break_Statement":Chain -> "Concurrent_Break_Statement__Chain" [color="#4e9a06" style=bold] "Concurrent_Break_Statement__Sensitivity_List" [shape=box3d label="Iir_List"] "Concurrent_Break_Statement":Sensitivity_List -> "Concurrent_Break_Statement__Sensitivity_List" [color="#3465a4" style=dotted] "Concurrent_Break_Statement__Break_Element" [shape=box label="Iir"] "Concurrent_Break_Statement":Break_Element -> "Concurrent_Break_Statement__Break_Element" [color="#4e9a06"] }

Iir_Kind_Psl_Assert_Directive

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.

Psl_Property

Field1

PSL_Node

owned

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Severity_Expression

Field4

Iir

owned

Severity expression of an assertion or report statement.

Report_Expression

Field5

Iir

owned

Report expression of an assertion or report statement.

PSL_Clock

Field6

PSL_Node

owned

The following fields are set by canon.

PSL_Abort

Field7

PSL_Node

owned

PSL_NFA

Field8

PSL_NFA

owned

PSL_Nbr_States

Field9

Int32

owned

Number of states in the NFA.

PSL_Clock_Sensitivity

Field10

Iir_List

owned

PSL_EOS_Flag

Flag1

Boolean

owned

True if at least one of the NFA edge has the EOS flag.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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] "Psl_Assert_Directive" [style=filled fillcolor="#eeeeec" label="{Psl_Assert_Directive|{<Parent> Parent|<Psl_Property> Psl_Property|<Chain> Chain|<Label> Label|<Severity_Expression> Severity_Expression|<Report_Expression> Report_Expression|<PSL_Clock> PSL_Clock|<PSL_Abort> PSL_Abort|<PSL_NFA> PSL_NFA|<PSL_Nbr_States> PSL_Nbr_States|<PSL_Clock_Sensitivity> PSL_Clock_Sensitivity|<PSL_EOS_Flag> PSL_EOS_Flag|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag}}"] "Psl_Assert_Directive__Parent" [shape=box label="Iir"] "Psl_Assert_Directive":Parent -> "Psl_Assert_Directive__Parent" [color="#3465a4" style=dashed] "Psl_Assert_Directive__Psl_Property" [shape=box label="PSL_Node"] "Psl_Assert_Directive":Psl_Property -> "Psl_Assert_Directive__Psl_Property" [color="#000000"] "Psl_Assert_Directive__Chain" [shape=box label="Iir"] "Psl_Assert_Directive":Chain -> "Psl_Assert_Directive__Chain" [color="#4e9a06" style=bold] "Psl_Assert_Directive__Severity_Expression" [shape=box label="Iir"] "Psl_Assert_Directive":Severity_Expression -> "Psl_Assert_Directive__Severity_Expression" [color="#000000"] "Psl_Assert_Directive__Report_Expression" [shape=box label="Iir"] "Psl_Assert_Directive":Report_Expression -> "Psl_Assert_Directive__Report_Expression" [color="#000000"] "Psl_Assert_Directive__PSL_Clock" [shape=box label="PSL_Node"] "Psl_Assert_Directive":PSL_Clock -> "Psl_Assert_Directive__PSL_Clock" [color="#000000"] "Psl_Assert_Directive__PSL_Abort" [shape=box label="PSL_Node"] "Psl_Assert_Directive":PSL_Abort -> "Psl_Assert_Directive__PSL_Abort" [color="#000000"] "Psl_Assert_Directive__PSL_NFA" [shape=box label="PSL_NFA"] "Psl_Assert_Directive":PSL_NFA -> "Psl_Assert_Directive__PSL_NFA" [color="#000000"] "Psl_Assert_Directive__PSL_Clock_Sensitivity" [shape=box3d label="Iir_List"] "Psl_Assert_Directive":PSL_Clock_Sensitivity -> "Psl_Assert_Directive__PSL_Clock_Sensitivity" [color="#000000"] }

Iir_Kind_Psl_Assume_Directive

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.

Psl_Property

Field1

PSL_Node

owned

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

PSL_Clock

Field6

PSL_Node

owned

The following fields are set by canon.

PSL_Abort

Field7

PSL_Node

owned

PSL_NFA

Field8

PSL_NFA

owned

PSL_Nbr_States

Field9

Int32

owned

Number of states in the NFA.

PSL_Clock_Sensitivity

Field10

Iir_List

owned

PSL_EOS_Flag

Flag1

Boolean

owned

True if at least one of the NFA edge has the EOS flag.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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] "Psl_Assume_Directive" [style=filled fillcolor="#eeeeec" label="{Psl_Assume_Directive|{<Parent> Parent|<Psl_Property> Psl_Property|<Chain> Chain|<Label> Label|<PSL_Clock> PSL_Clock|<PSL_Abort> PSL_Abort|<PSL_NFA> PSL_NFA|<PSL_Nbr_States> PSL_Nbr_States|<PSL_Clock_Sensitivity> PSL_Clock_Sensitivity|<PSL_EOS_Flag> PSL_EOS_Flag|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag}}"] "Psl_Assume_Directive__Parent" [shape=box label="Iir"] "Psl_Assume_Directive":Parent -> "Psl_Assume_Directive__Parent" [color="#3465a4" style=dashed] "Psl_Assume_Directive__Psl_Property" [shape=box label="PSL_Node"] "Psl_Assume_Directive":Psl_Property -> "Psl_Assume_Directive__Psl_Property" [color="#000000"] "Psl_Assume_Directive__Chain" [shape=box label="Iir"] "Psl_Assume_Directive":Chain -> "Psl_Assume_Directive__Chain" [color="#4e9a06" style=bold] "Psl_Assume_Directive__PSL_Clock" [shape=box label="PSL_Node"] "Psl_Assume_Directive":PSL_Clock -> "Psl_Assume_Directive__PSL_Clock" [color="#000000"] "Psl_Assume_Directive__PSL_Abort" [shape=box label="PSL_Node"] "Psl_Assume_Directive":PSL_Abort -> "Psl_Assume_Directive__PSL_Abort" [color="#000000"] "Psl_Assume_Directive__PSL_NFA" [shape=box label="PSL_NFA"] "Psl_Assume_Directive":PSL_NFA -> "Psl_Assume_Directive__PSL_NFA" [color="#000000"] "Psl_Assume_Directive__PSL_Clock_Sensitivity" [shape=box3d label="Iir_List"] "Psl_Assume_Directive":PSL_Clock_Sensitivity -> "Psl_Assume_Directive__PSL_Clock_Sensitivity" [color="#000000"] }

Iir_Kind_Psl_Cover_Directive

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.

Psl_Sequence

Field1

PSL_Node

owned

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Report_Expression

Field5

Iir

owned

Report expression of an assertion or report statement.

PSL_Clock

Field6

PSL_Node

owned

The following fields are set by canon.

PSL_Abort

Field7

PSL_Node

owned

PSL_NFA

Field8

PSL_NFA

owned

PSL_Nbr_States

Field9

Int32

owned

Number of states in the NFA.

PSL_Clock_Sensitivity

Field10

Iir_List

owned

PSL_EOS_Flag

Flag1

Boolean

owned

True if at least one of the NFA edge has the EOS flag.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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] "Psl_Cover_Directive" [style=filled fillcolor="#eeeeec" label="{Psl_Cover_Directive|{<Parent> Parent|<Psl_Sequence> Psl_Sequence|<Chain> Chain|<Label> Label|<Report_Expression> Report_Expression|<PSL_Clock> PSL_Clock|<PSL_Abort> PSL_Abort|<PSL_NFA> PSL_NFA|<PSL_Nbr_States> PSL_Nbr_States|<PSL_Clock_Sensitivity> PSL_Clock_Sensitivity|<PSL_EOS_Flag> PSL_EOS_Flag|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag}}"] "Psl_Cover_Directive__Parent" [shape=box label="Iir"] "Psl_Cover_Directive":Parent -> "Psl_Cover_Directive__Parent" [color="#3465a4" style=dashed] "Psl_Cover_Directive__Psl_Sequence" [shape=box label="PSL_Node"] "Psl_Cover_Directive":Psl_Sequence -> "Psl_Cover_Directive__Psl_Sequence" [color="#000000"] "Psl_Cover_Directive__Chain" [shape=box label="Iir"] "Psl_Cover_Directive":Chain -> "Psl_Cover_Directive__Chain" [color="#4e9a06" style=bold] "Psl_Cover_Directive__Report_Expression" [shape=box label="Iir"] "Psl_Cover_Directive":Report_Expression -> "Psl_Cover_Directive__Report_Expression" [color="#000000"] "Psl_Cover_Directive__PSL_Clock" [shape=box label="PSL_Node"] "Psl_Cover_Directive":PSL_Clock -> "Psl_Cover_Directive__PSL_Clock" [color="#000000"] "Psl_Cover_Directive__PSL_Abort" [shape=box label="PSL_Node"] "Psl_Cover_Directive":PSL_Abort -> "Psl_Cover_Directive__PSL_Abort" [color="#000000"] "Psl_Cover_Directive__PSL_NFA" [shape=box label="PSL_NFA"] "Psl_Cover_Directive":PSL_NFA -> "Psl_Cover_Directive__PSL_NFA" [color="#000000"] "Psl_Cover_Directive__PSL_Clock_Sensitivity" [shape=box3d label="Iir_List"] "Psl_Cover_Directive":PSL_Clock_Sensitivity -> "Psl_Cover_Directive__PSL_Clock_Sensitivity" [color="#000000"] }

Iir_Kind_Psl_Restrict_Directive

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.

Psl_Sequence

Field1

PSL_Node

owned

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

PSL_Clock

Field6

PSL_Node

owned

The following fields are set by canon.

PSL_Abort

Field7

PSL_Node

owned

PSL_NFA

Field8

PSL_NFA

owned

PSL_Nbr_States

Field9

Int32

owned

Number of states in the NFA.

PSL_Clock_Sensitivity

Field10

Iir_List

owned

PSL_EOS_Flag

Flag1

Boolean

owned

True if at least one of the NFA edge has the EOS flag.

Postponed_Flag

Flag3

Boolean

owned

If set, the concurrent statement is postponed.

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] "Psl_Restrict_Directive" [style=filled fillcolor="#eeeeec" label="{Psl_Restrict_Directive|{<Parent> Parent|<Psl_Sequence> Psl_Sequence|<Chain> Chain|<Label> Label|<PSL_Clock> PSL_Clock|<PSL_Abort> PSL_Abort|<PSL_NFA> PSL_NFA|<PSL_Nbr_States> PSL_Nbr_States|<PSL_Clock_Sensitivity> PSL_Clock_Sensitivity|<PSL_EOS_Flag> PSL_EOS_Flag|<Postponed_Flag> Postponed_Flag|<Visible_Flag> Visible_Flag}}"] "Psl_Restrict_Directive__Parent" [shape=box label="Iir"] "Psl_Restrict_Directive":Parent -> "Psl_Restrict_Directive__Parent" [color="#3465a4" style=dashed] "Psl_Restrict_Directive__Psl_Sequence" [shape=box label="PSL_Node"] "Psl_Restrict_Directive":Psl_Sequence -> "Psl_Restrict_Directive__Psl_Sequence" [color="#000000"] "Psl_Restrict_Directive__Chain" [shape=box label="Iir"] "Psl_Restrict_Directive":Chain -> "Psl_Restrict_Directive__Chain" [color="#4e9a06" style=bold] "Psl_Restrict_Directive__PSL_Clock" [shape=box label="PSL_Node"] "Psl_Restrict_Directive":PSL_Clock -> "Psl_Restrict_Directive__PSL_Clock" [color="#000000"] "Psl_Restrict_Directive__PSL_Abort" [shape=box label="PSL_Node"] "Psl_Restrict_Directive":PSL_Abort -> "Psl_Restrict_Directive__PSL_Abort" [color="#000000"] "Psl_Restrict_Directive__PSL_NFA" [shape=box label="PSL_NFA"] "Psl_Restrict_Directive":PSL_NFA -> "Psl_Restrict_Directive__PSL_NFA" [color="#000000"] "Psl_Restrict_Directive__PSL_Clock_Sensitivity" [shape=box3d label="Iir_List"] "Psl_Restrict_Directive":PSL_Clock_Sensitivity -> "Psl_Restrict_Directive__PSL_Clock_Sensitivity" [color="#000000"] }

Iir_Kind_Block_Statement

LRM08 11.2 Block statement

block_statement ::=
  block_label :
    BLOCK [ ( guard_condition ) ] [ IS ]
      block_header
      block_declarative_part
    BEGIN
      block_statement_part
    END BLOCK [ block_label ] ;

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.

Guard_Decl

Field8

Iir

owned

get/set_guard_decl is used for semantic analysis, in order to add a signal declaration.

Block_Header

Field7

Iir

owned

Declaration_Chain

Field1

Iir

chain

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

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.

Concurrent_Statement_Chain

Field4

Iir

chain

Block_Block_Configuration

Field6

Iir

forward ref

Block_Configuration that applies to this block statement.

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] "Block_Statement" [style=filled fillcolor="#eeeeec" label="{Block_Statement|{<Parent> Parent|<Guard_Decl> Guard_Decl|<Block_Header> Block_Header|<Declaration_Chain> Declaration_Chain|<Chain> Chain|<Label> Label|<Attribute_Value_Chain> Attribute_Value_Chain|<Concurrent_Statement_Chain> Concurrent_Statement_Chain|<Block_Block_Configuration> Block_Block_Configuration|<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}}"] "Block_Statement__Parent" [shape=box label="Iir"] "Block_Statement":Parent -> "Block_Statement__Parent" [color="#3465a4" style=dashed] "Block_Statement__Guard_Decl" [shape=box label="Iir"] "Block_Statement":Guard_Decl -> "Block_Statement__Guard_Decl" [color="#000000"] "Block_Statement__Block_Header" [shape=box label="Iir"] "Block_Statement":Block_Header -> "Block_Statement__Block_Header" [color="#000000"] "Block_Statement__Declaration_Chain" [shape=box label="Iir"] "Block_Statement":Declaration_Chain -> "Block_Statement__Declaration_Chain" [color="#4e9a06"] "Block_Statement__Chain" [shape=box label="Iir"] "Block_Statement":Chain -> "Block_Statement__Chain" [color="#4e9a06" style=bold] "Block_Statement__Attribute_Value_Chain" [shape=box label="Iir"] "Block_Statement":Attribute_Value_Chain -> "Block_Statement__Attribute_Value_Chain" [color="#3465a4" style=dashed] "Block_Statement__Concurrent_Statement_Chain" [shape=box label="Iir"] "Block_Statement":Concurrent_Statement_Chain -> "Block_Statement__Concurrent_Statement_Chain" [color="#4e9a06"] "Block_Statement__Block_Block_Configuration" [shape=box label="Iir"] "Block_Statement":Block_Block_Configuration -> "Block_Statement__Block_Block_Configuration" [color="#f57900" style=dashed] }

Iir_Kind_If_Generate_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.

Condition

Field1

Iir

maybe ref

Null_Iir for the else clause.

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Generate_Statement_Body

Field4

Iir

owned

Generate_Else_Clause

Field5

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.

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.

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.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "If_Generate_Statement" [style=filled fillcolor="#eeeeec" label="{If_Generate_Statement|{<Parent> Parent|<Condition> Condition|<Chain> Chain|<Label> Label|<Generate_Statement_Body> Generate_Statement_Body|<Generate_Else_Clause> Generate_Else_Clause|<Visible_Flag> Visible_Flag|<Is_Within_Flag> Is_Within_Flag|<End_Has_Reserved_Id> End_Has_Reserved_Id|<End_Has_Identifier> End_Has_Identifier|<Is_Ref> Is_Ref}}"] "If_Generate_Statement__Parent" [shape=box label="Iir"] "If_Generate_Statement":Parent -> "If_Generate_Statement__Parent" [color="#3465a4" style=dashed] "If_Generate_Statement__Condition" [shape=box label="Iir"] "If_Generate_Statement":Condition -> "If_Generate_Statement__Condition" [color="#3465a4" style=dotted] "If_Generate_Statement__Chain" [shape=box label="Iir"] "If_Generate_Statement":Chain -> "If_Generate_Statement__Chain" [color="#4e9a06" style=bold] "If_Generate_Statement__Generate_Statement_Body" [shape=box label="Iir"] "If_Generate_Statement":Generate_Statement_Body -> "If_Generate_Statement__Generate_Statement_Body" [color="#000000"] "If_Generate_Statement__Generate_Else_Clause" [shape=box label="Iir"] "If_Generate_Statement":Generate_Else_Clause -> "If_Generate_Statement__Generate_Else_Clause" [color="#000000"] }

Iir_Kind_Case_Generate_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] "Case_Generate_Statement" [style=filled fillcolor="#eeeeec" label="{Case_Generate_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}}"] "Case_Generate_Statement__Parent" [shape=box label="Iir"] "Case_Generate_Statement":Parent -> "Case_Generate_Statement__Parent" [color="#3465a4" style=dashed] "Case_Generate_Statement__Case_Statement_Alternative_Chain" [shape=box label="Iir"] "Case_Generate_Statement":Case_Statement_Alternative_Chain -> "Case_Generate_Statement__Case_Statement_Alternative_Chain" [color="#4e9a06"] "Case_Generate_Statement__Chain" [shape=box label="Iir"] "Case_Generate_Statement":Chain -> "Case_Generate_Statement__Chain" [color="#4e9a06" style=bold] "Case_Generate_Statement__Expression" [shape=box label="Iir"] "Case_Generate_Statement":Expression -> "Case_Generate_Statement__Expression" [color="#000000"] }

Iir_Kind_For_Generate_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.

Parameter_Specification

Field1

Iir

owned

The parameters specification is represented by an Iterator_Declaration.

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Generate_Statement_Body

Field4

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.

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] "For_Generate_Statement" [style=filled fillcolor="#eeeeec" label="{For_Generate_Statement|{<Parent> Parent|<Parameter_Specification> Parameter_Specification|<Chain> Chain|<Label> Label|<Generate_Statement_Body> Generate_Statement_Body|<Visible_Flag> Visible_Flag|<Is_Within_Flag> Is_Within_Flag|<End_Has_Reserved_Id> End_Has_Reserved_Id|<End_Has_Identifier> End_Has_Identifier}}"] "For_Generate_Statement__Parent" [shape=box label="Iir"] "For_Generate_Statement":Parent -> "For_Generate_Statement__Parent" [color="#3465a4" style=dashed] "For_Generate_Statement__Parameter_Specification" [shape=box label="Iir"] "For_Generate_Statement":Parameter_Specification -> "For_Generate_Statement__Parameter_Specification" [color="#000000"] "For_Generate_Statement__Chain" [shape=box label="Iir"] "For_Generate_Statement":Chain -> "For_Generate_Statement__Chain" [color="#4e9a06" style=bold] "For_Generate_Statement__Generate_Statement_Body" [shape=box label="Iir"] "For_Generate_Statement":Generate_Statement_Body -> "For_Generate_Statement__Generate_Statement_Body" [color="#000000"] }

Iir_Kind_Component_Instantiation_Statement

LRM08 11.7 Component instantiation statements

component_instantiation_statement ::=
   instantiation_label :
      instantiated_unit
         [ generic_map_aspect ]
         [ port_map_aspect ] ;
instantiated_unit ::=
     [ COMPONENT ] component_name
   | ENTITY entity_name [ ( architecture_identifier ) ]
   | CONFIGURATION configuration_name

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.

Instantiated_Unit

Field1

Iir

owned

Unit instantiated. This is a name, an entity_aspect_entity or an entity_aspect_configuration.

Chain

Field2

Iir

chain next

Label

Field3

Name_Id

owned

Instantiated_Header

Field4

Iir

owned

If the instantiated unit contains generic types or packages, this is the instantiated unit.

Default_Binding_Indication

Field5

Iir

owned

Set/Get the default binding indication of a configuration specification or a component configuration.

Generic_Map_Aspect_Chain

Field8

Iir

chain

Generic map aspect list.

Port_Map_Aspect_Chain

Field9

Iir

chain

Port map aspect list.

Configuration_Specification

Field7

Iir

ref

Configuration: In case of a configuration specification, the node is put into default configuration. In the absence of a specification, the default entity aspect, if any; if none, this field is null_iir.

Component_Configuration

Field6

Iir

forward ref

During Sem and elaboration, the configuration field can be filled by a component configuration declaration. Configuration for this component. FIXME: must be get/set_binding_indication.

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.

Has_Component

Flag5

Boolean

owned

Layout flag: true if ‘component’ reserved identifier is present.

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Component_Instantiation_Statement" [style=filled fillcolor="#eeeeec" label="{Component_Instantiation_Statement|{<Parent> Parent|<Instantiated_Unit> Instantiated_Unit|<Chain> Chain|<Label> Label|<Instantiated_Header> Instantiated_Header|<Default_Binding_Indication> Default_Binding_Indication|<Generic_Map_Aspect_Chain> Generic_Map_Aspect_Chain|<Port_Map_Aspect_Chain> Port_Map_Aspect_Chain|<Configuration_Specification> Configuration_Specification|<Component_Configuration> Component_Configuration|<Visible_Flag> Visible_Flag|<Has_Component> Has_Component}}"] "Component_Instantiation_Statement__Parent" [shape=box label="Iir"] "Component_Instantiation_Statement":Parent -> "Component_Instantiation_Statement__Parent" [color="#3465a4" style=dashed] "Component_Instantiation_Statement__Instantiated_Unit" [shape=box label="Iir"] "Component_Instantiation_Statement":Instantiated_Unit -> "Component_Instantiation_Statement__Instantiated_Unit" [color="#000000"] "Component_Instantiation_Statement__Chain" [shape=box label="Iir"] "Component_Instantiation_Statement":Chain -> "Component_Instantiation_Statement__Chain" [color="#4e9a06" style=bold] "Component_Instantiation_Statement__Instantiated_Header" [shape=box label="Iir"] "Component_Instantiation_Statement":Instantiated_Header -> "Component_Instantiation_Statement__Instantiated_Header" [color="#000000"] "Component_Instantiation_Statement__Default_Binding_Indication" [shape=box label="Iir"] "Component_Instantiation_Statement":Default_Binding_Indication -> "Component_Instantiation_Statement__Default_Binding_Indication" [color="#000000"] "Component_Instantiation_Statement__Generic_Map_Aspect_Chain" [shape=box label="Iir"] "Component_Instantiation_Statement":Generic_Map_Aspect_Chain -> "Component_Instantiation_Statement__Generic_Map_Aspect_Chain" [color="#4e9a06"] "Component_Instantiation_Statement__Port_Map_Aspect_Chain" [shape=box label="Iir"] "Component_Instantiation_Statement":Port_Map_Aspect_Chain -> "Component_Instantiation_Statement__Port_Map_Aspect_Chain" [color="#4e9a06"] "Component_Instantiation_Statement__Configuration_Specification" [shape=box label="Iir"] "Component_Instantiation_Statement":Configuration_Specification -> "Component_Instantiation_Statement__Configuration_Specification" [color="#3465a4" style=dashed] "Component_Instantiation_Statement__Component_Configuration" [shape=box label="Iir"] "Component_Instantiation_Statement":Component_Configuration -> "Component_Instantiation_Statement__Component_Configuration" [color="#f57900" style=dashed] }