Nonoverloadable 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.
Iir_Kind_Type_Declaration
LRM08 6.3 Type declarations
type_declaration ::=
full_type_declaration
| incomplete_type_declaration
full_type_declaration ::=
TYPE identifier IS type_definition ;
type_definition ::=
scalar_type_definition
| composite_type_definition
| access_type_definition
| file_type_definition
| protected_type_definition
LRM08 5.4.2 Incomplete type declarations
incomplete_type_declaration ::=
TYPE identifier ;
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
Definition of the type. Note: the type definition can be a real type (unconstrained array, enumeration, file, record, access) or a subtype (integer, floating point). The parser set this field to null_iir for an incomplete type declaration. This field is set to an incomplete_type_definition node when analyzed. |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
ref |
Set if the type declaration completes an incomplete type declaration |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
Iir_Kind_Anonymous_Type_Declaration
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
Used for informative purpose only. |
|
|
|
forward ref |
The subtype definition associated with the type declaration (if any). |
|
|
|
ref |
Set if the type declaration completes an incomplete type declaration |
Iir_Kind_Subtype_Declaration
LRM08 6.3 Subtype declarations
subtype_declaration ::=
SUBTYPE identifier IS subtype_indication ;
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
maybe ref |
For integer and real types, the subtype_indication of the implicitly declared subtype for the type is the subtype definition. |
|
|
|
ref |
— |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
|
|
|
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. |
Iir_Kind_Nature_Declaration
AMS-LRM17 6.11 Nature and subnature declarations
nature_declaration ::=
NATURE identifier IS nature_definition ;
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
— |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
Iir_Kind_Subnature_Declaration
AMS-LRM17 6.11 Nature and subnature declarations
subnature_declaration ::=
SUBNATURE identifier IS subnature_indication ;
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
owned |
— |
|
|
|
ref |
— |
|
|
|
chain next |
— |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
Iir_Kind_Package_Header
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
chain |
— |
|
|
|
chain |
Generic map aspect list. |
Iir_Kind_Unit_Declaration
LRM08 5.2.4 Physical types
primary_unit_declaration ::= identifier ;
secondary_unit_declaration ::= identifier = physical_literal ;
physical_literal ::= [ abstract_literal ] /unit/_name
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
The parent of a physical unit is the same parent as the type declaration. |
|
|
|
ref |
— |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
owned |
The Physical_Literal is the expression that defines the value of a unit. It is evaluated during analysis and thus expressed as a multiple of the primary unit. That’s true even for the primary unit whose value is thus 1. |
|
|
|
owned |
Expression staticness, defined by rules of LRM 7.4 |
|
|
|
owned |
Staticness of a name, according to rules of LRM 6.1 |
|
|
|
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. |
|
|
|
owned |
Used for time literals, to compute minimal resolution. |
Iir_Kind_Library_Declaration
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
chain |
Design files in the library. |
|
|
|
chain next |
— |
|
|
|
owned |
This node is used to contain all a library. Only internally used. Name (identifier) of the library. |
|
|
|
owned |
Most recent date in this library. |
|
|
|
owned |
System directory where the library is stored. |
|
|
|
owned |
Used to compute dependencies. |
|
|
|
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. |
|
|
|
owned |
Set on vendor libraries to turn off warnings on unbounded instantiation. The vendor libraries are those providing components/entities for hard-macros. |
Iir_Kind_Component_Declaration
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
chain |
— |
|
|
|
chain |
— |
|
|
|
owned |
— |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
|
|
|
owned |
Layout flag: true if ‘is’ is present. |
|
|
|
owned |
Should always be true |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
Iir_Kind_Attribute_Declaration
LRM08 6.7 Attribute declarations
attribute_declaration ::=
ATTRIBUTE identifier : type_mark ;
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
ref |
— |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
owned |
The type_mark that appeared in qualified expressions or type conversions. |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
Iir_Kind_Group_Template_Declaration
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
chain |
List of entity class entry. To handle `<>’, the last element of the list can be an entity_class of kind tok_box. |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
Iir_Kind_Group_Declaration
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
The declaration containing this type declaration. |
|
|
|
owned |
List of constituents. |
|
|
|
chain next |
— |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
owned |
— |
|
|
|
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. |
|
|
|
owned |
For a declaration: true if the declaration is used somewhere. |
Iir_Kind_Element_Declaration
LRM08 5.3.3 Record types
element_declaration ::=
identifier_list : element_subtype_definition ;
identifier_list ::= identifier { , identifier }
element_subtype_definition ::= subtype_indication
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
maybe ref |
The subtype indication of a declaration. If several declarations share the same subtype_indication like in: variable a, b : integer := 5; then only the first declaration is the owner of the subtype_indication. |
|
|
|
owned |
Return the position of the element in the record, starting from 0 for the first record element, increasing by one for each successive element. |
|
|
|
ref |
The type can be deduced from the subtype indication, but this field is present for uniformity (and speed). |
|
|
|
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). |
|
|
|
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. |
|
|
|
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. |
Iir_Kind_Nature_Element_Declaration
AMS-LRM17 5.8.3.3 Record natures
nature_element_declaration ::=
identifier_list : element_subnature_definition ;
element_subnature_definition ::= subnature_indication
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Get/Set the statement in which TARGET appears. This is used to check if next/exit is in a loop. |
|
|
|
owned |
Get/Set the identifier of a declaration. Can also be used instead of get/set_label. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
ref |
— |
|
|
|
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). |
|
|
|
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. |