Type And Subtype Definition
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_Access_Type_Definition
LRM08 5.4 Access types
access_type_definition ::= ACCESS subtype_indication
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
The subtype_indication as it appears. Can designate an incomplete_type_definition. |
|
|
|
forward ref |
The resolved designated type. |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
forward ref |
Next access type that also referenced the same incomplete type when defined. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
— |
Iir_Kind_Incomplete_Type_Definition
Type definition for an incomplete type. This is created during the analysis of the incomplete type declaration.
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
forward ref |
Chain of access_type_definition that designated this type. This is simply a forward_ref as the access type is declared after the incomplete type. |
|
|
|
ref |
Set to the incomplete type declaration. |
|
|
|
forward ref |
Set to the complete type definition when completed. |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
Iir_Kind_Interface_Type_Definition
Type definition for an interface type.
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
Set to interface type declaration. |
|
|
|
forward ref |
Set only during analysis of association: type associated with this interface, so that references to this interface can use the actual type. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
Iir_Kind_File_Type_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
The type of values for a type file. |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if this is the std.textio.text file type, which may require special handling. |
|
|
|
owned |
— |
Iir_Kind_Protected_Type_Declaration
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
ref |
The parent of a protected type declaration is the same parent as the type declaration. |
|
|
|
chain |
— |
|
|
|
forward ref |
Body of a protected type declaration. |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
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. |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
Set at end of the package or when the body is analyzed. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
Iir_Kind_Record_Type_Definition
LRM08 5.3.3 Record types / LRM93 3.2.2 Record types
record_type_definition ::=
RECORD
element_declaration
{ element_declaration }
END RECORD [ /record_type/_simple_name ]
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
of maybe ref |
List of elements of a record. For a record_type_definition: Is_Ref is false, as the elements declaration are owned by the type definition. For a record_subtype_definition: Is_Ref is false, as new constrained elements are owned through the Owned_Elements_Chain list. |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
|
|
|
owned |
Always false for record type: elements are owned by this node. |
Iir_Kind_Array_Type_Definition
LRM08 5.3.2 Array types / LRM93 3.2.1
unbounded_array_definition ::=
ARRAY ( index_subtype_definition { , index_subtype_definition } )
OF element_subtype_indication
index_subtype_definition ::= type_mark RANGE <>
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
This is a list of type marks. |
|
|
|
owned |
The subtype_indication as it appears in a array type declaration. |
|
|
|
ref |
Same as the index_subtype_definition_list. |
|
|
|
ref |
— |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
owned |
Always false. |
Iir_Kind_Array_Subtype_Definition
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
owned |
Either a resolution function name, an array_element_resolution or a record_resolution |
|
|
|
owned |
The index_constraint list as it appears in the subtype indication (if present). This is a list of subtype indication. Owned by this node. |
|
|
|
ref |
The type of the index. This is either the index_constraint list or the index subtypes of the type_mark. Not owned by this node. |
|
|
|
owned |
Set when the element is re-constrained. Note that the element subtype may be different from the parent also if it is resolved. This is mostly for ownership. |
|
|
|
owned |
— |
|
|
|
ref |
— |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
owned |
True if the indexes are constrained (either by this definition or by a parent). |
|
|
|
owned |
If True, an array constraint is lexically present (at least for the index). This can be an index constraint or ‘open’. |
|
|
|
owned |
If True, an element constraint is lexically present. It can be ‘open’. |
Iir_Kind_Record_Subtype_Definition
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
chain |
Chain of new elements constraint. Needed only for internal consistency of the tree (ownership). |
|
|
|
of maybe ref |
Chain of either element_declaration or record_element_constraint. |
|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
Either a resolution function name, an array_element_resolution or a record_resolution |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
owned |
— |
|
|
|
owned |
— |
|
|
|
owned |
Always true for record subtype: elements are owned through Owned_Elements_Chain |
Iir_Kind_Access_Subtype_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
forward ref |
— |
|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
— |
|
|
|
owned |
Note: no resolution function for access subtype. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
Iir_Kind_File_Subtype_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if this is the std.textio.text file type, which may require special handling. |
|
|
|
owned |
— |
Iir_Kind_Physical_Subtype_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
— |
|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
Either a resolution function name, an array_element_resolution or a record_resolution |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
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. |
|
|
|
owned |
— |
Iir_Kind_Floating_Subtype_Definition
Format: Medium
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
— |
|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
Either a resolution function name, an array_element_resolution or a record_resolution |
|
|
|
owned |
— |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
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. |
|
|
|
owned |
— |
Iir_Kind_Integer_Subtype_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
— |
|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
Either a resolution function name, an array_element_resolution or a record_resolution |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
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. |
|
|
|
owned |
— |
Iir_Kind_Enumeration_Subtype_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
— |
|
|
|
owned |
The type_mark that appeared in the subtype indication. This is a name. May be null_iir if there is no type mark (as in an iterator). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
ref |
— |
|
|
|
owned |
Either a resolution function name, an array_element_resolution or a record_resolution |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
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. |
|
|
|
owned |
— |
Iir_Kind_Enumeration_Type_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
owned |
Return the list of literals. This list is created when the node is created. |
|
|
|
maybe ref |
Get the range of the type (This is just an ascending range from the first literal to the last declared literal). |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
owned |
True if enumeration type ATYPE has only character literals. |
|
|
|
owned |
True if enumeration type ATYPE is a character type (at least one literal is a character). |
|
|
|
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. |
|
|
|
owned |
— |
|
|
|
owned |
Note: only 8 or 32. |
Iir_Kind_Integer_Type_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
The range_constraint from the type declaration. |
|
|
|
ref |
The type declarator that has created this type. |
|
|
|
owned |
Type staticness is always locally. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
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. |
|
|
|
owned |
Note: only 32 or 64. |
Iir_Kind_Floating_Type_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
The range_constraint from the type declaration. |
|
|
|
ref |
The type declarator that has created this type. |
|
|
|
owned |
Type staticness is always locally. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
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. |
|
|
|
owned |
Note: only 32 or 64. |
Iir_Kind_Physical_Type_Definition
Format: Short
Accessor |
Field |
Type |
Access |
Description |
|---|---|---|---|---|
|
|
maybe ref |
The range_constraint from the type declaration. |
|
|
|
chain |
Chain of physical type units. The first unit is the primary unit. If you really need the primary unit (and not the chain), you’d better to use Get_Primary_Unit. |
|
|
|
ref |
The type declarator which declares the type definition DEF. Can also be a nature declarator for composite nature definition. |
|
|
|
owned |
Get/Set the resolved flag of a subtype definition. A subtype definition may be resolved either because a resolution_indication is present in the subtype_indication, or because all elements type are resolved. |
|
|
|
owned |
Get/Set the signal_type flag of a type/subtype definition. This flags indicates whether the type can be used as a signal type. Access types, file types and composite types whose a sub-element is an access type cannot be used as a signal type. |
|
|
|
owned |
True if ATYPE is used to declare a signal or to handle a signal (such as slice or aliases). |
|
|
|
owned |
— |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the reserved identifier. |
|
|
|
owned |
Layout flag: true if ‘end’ is followed by the identifier. |
|
|
|
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. |
|
|
|
owned |
— |