Terminal Declaration

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_Terminal_Declaration

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

Identifier

Field3

Name_Id

owned

Get/Set the identifier of a declaration. Can also be used instead of get/set_label.

Subnature_Indication

Field5

Iir

owned

Nature

Field1

Iir

ref

Reference_Terminal_Flag

Flag1

Boolean

owned

Set if the terminal is a reference terminal, ie created by a nature declaration (ie a ground).

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.

Use_Flag

Flag6

Boolean

owned

For a declaration: true if the declaration is used somewhere.

Has_Identifier_List

Flag3

Boolean

owned

Layout flag for object declaration. If True, the identifier of this declaration is followed by an identifier (and separated by a comma). This flag is set on all but the last declarations. Eg: on ‘signal A, B, C : Bit’, the flag is set on A and B (but not C).

Name_Staticness

State2

Iir_Staticness

owned

Staticness of a name, according to rules of LRM 6.1

digraph { rankdir="LR" node [shape=record fontname="monospace" fontsize=10] edge [fontname="monospace" fontsize=9] "Terminal_Declaration" [style=filled fillcolor="#eeeeec" label="{Terminal_Declaration|{<Parent> Parent|<Chain> Chain|<Identifier> Identifier|<Subnature_Indication> Subnature_Indication|<Nature> Nature|<Reference_Terminal_Flag> Reference_Terminal_Flag|<Visible_Flag> Visible_Flag|<Use_Flag> Use_Flag|<Has_Identifier_List> Has_Identifier_List|<Name_Staticness> Name_Staticness}}"] "Terminal_Declaration__Parent" [shape=box label="Iir"] "Terminal_Declaration":Parent -> "Terminal_Declaration__Parent" [color="#3465a4" style=dashed] "Terminal_Declaration__Chain" [shape=box label="Iir"] "Terminal_Declaration":Chain -> "Terminal_Declaration__Chain" [color="#4e9a06" style=bold] "Terminal_Declaration__Subnature_Indication" [shape=box label="Iir"] "Terminal_Declaration":Subnature_Indication -> "Terminal_Declaration__Subnature_Indication" [color="#000000"] "Terminal_Declaration__Nature" [shape=box label="Iir"] "Terminal_Declaration":Nature -> "Terminal_Declaration__Nature" [color="#3465a4" style=dashed] }