[Top] [Prev] [Next] [Bottom]

CHAPTER 11 FIR_TypeDefinition
Derived Classes

Type definitions generally define a domain of allowable values and a set of operators on these values. Type declarations, subtype declarations, object instances and expressions refer to type definitions. This chapter specifies the properties, predefined public methods and predefined public data used to represent types via the predefined FIR_TypeDefinition class and predefined classes derived from FIR_TypeDefinition (as shown in Table 81 on page 136).

Value domains may be explicitly enumerated (as with enumerated types) and/or described as a range of allowable values (as with integer types). VHDL also provides physical types, whereby textually multipliers may simplify writing physical literals. One or more subtypes may be constructed from a base type through the application of type constraints.

Operator symbols are drawn from a predefined set. The behavior of an operator symbol in the context of parameters of a specific base type and specific return type is determined by the visible function declarations overloading the operator symbol (only VHDL allows operator overloading) and any predefined, implicit function declarations.

Type signatures extend the type concept to denote types associated with each parameter of a subprogram declaration and the subprogram's return type. Signatures are generally used to disambiguate among multiple subprogram declarations having the same declarator but different parameter and return type signatures.

All derivative classes of FIR_TypeDefinition are dynamically and individually allocated.
TABLE 81. Classes derived from FIR_TypeDefinition

Level 3 Derived Classes
(only classes derived from FIR_TypeDefinition)

Level 4 Derived Classes

Level 5 Derived Classes

E

FIR_ScalarTypeDefinition

E

FIR_EnumerationTypeDefinition

E

FIR_EnumerationSubtypeDefinition

E

FIR_IntegerTypeDefinition

E

FIR_IntegerSubtypeDefinition

E

FIR_FloatingTypeDefinition

E

FIR_FloatingSubtypeDefinition

E

FIR_PhysicalTypeDefinition

E

FIR_PhysicalTypeDefinition

E

FIR_RangeTypeDefinition

E

E

FIR_ArrayTypeDefinition

E

FIR_ArraySubtypeDefinition

E

E

FIR_RecordTypeDefinition

E

E

E

FIR_AccessTypeDefinition

E

FIR_AccessSubtypeDefinition

E

E

FIR_FileTypeDefinition

E

E

E

FIR_Signature

E

E

11.1 FIR_TypeDefinition

11.1.1 Derived Class Description

FIR_TypeDefinitions represent predefined methods, subprograms and public data elements common to scalar types, array types, record types, access types, file types and signatures.

11.1.2 Properties
TABLE 82. FIR_TypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A,

IR_Kind enumeration value

None, not directly instantiated

Parent class

FIR

Predefined child classes

FIR_ScalarTypeDefinition,
FIR_ArrayTypeDefinition,
FIR_RecordTypeDefinition,
FIR_AccessTypeDefinition,
FIR_FileTypeDefinition,
FIR_Signature

Application-specific data elements

None, not allowed for this class

Public data elements

None

11.1.3 Predefined Data Elements

struct FIR_TypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
};

 

11.2 FIR_ScalarTypeDefinition

11.2.1 Derived Class Description

FIR_ScalarTypeDefinitions represent predefined methods, subprograms and public data elements common to enumerated type definitions, integer type definitions, floating point type definitions, physical type definitions and range type definitions.

11.2.2 Properties
TABLE 83. FIR_ScalarTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A,

IR_Kind enumeration value

None, not directly instantiated

Parent class

FIR_TypeDefinition

Predefined child classes

FIR_EnumerationTypeDefinition,
FIR_IntegerTypeDefinition,
FIR_FloatingTypeDefinition,
FIR_PhysicalTypeDefinition,
FIR_RangeTypeDefinition

Application-specific data elements

None, not allowed for this class

11.2.3 Predefined Data Elements

struct FIR_ScalarTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
};

 

11.3 FIR_EnumerationTypeDefinition

11.3.1 Derived Class Description

The predefined FIR_EnumerationTypeDefinition represents its value domain by a set of enumeration literals.

11.3.2 Properties
TABLE 84. FIR_EnumerationTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ENUMERATION_TYPE_DEFINITION

Parent class

FIR_ScalarTypeDefinition

Predefined child classes

FIR_EnumerationSubtypeDefinition

Application-specific data elements

Via extension class

11.3.3 Predefined Data Elements

struct FIR_EnumerationTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_EnumerationLiteralList				enumeration_literals;
};

11.4 FIR_EnumerationSubtypeDefinition

11.4.1 Derived Class Description

The predefined FIR_EnumerationSubtypeDefinition class represent a subset of the literals represented by an FIR_EnumerationTypeDefinition base type.

11.4.2 Properties
TABLE 85. FIR_EnumerationSubtypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ENUMERATION_SUBTYPE_DEFINITION

Parent class

FIR_EnumerationTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.4.3 Predefined Data Elements

struct FIR_EnumerationSubtypeTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_EnumerationLiteralList				 enumeration_literals;
};

11.5 FIR_IntegerTypeDefinition

11.5.1 Derived Class Description

The predefined FIR_IntegerTypeDefinition class represents a range of integer point values.

11.5.2 Properties
TABLE 86. FIR_IntegerTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_INTEGER_TYPE_DEFINITION

Parent class

FIR_ScalarTypeDefinition

Predefined child classes

FIR_IntegerSubtypeDefinition

Application-specific data elements

Via extension classes

11.5.3 Predefined Data Elements

struct FIR_IntegerTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		left;
	FIR_Ref		right;
	FIR_Ref		direction;
};

11.6 FIR_IntegerSubtypeDefinition

11.6.1 Derived Class Description

The predefined FIR_IntegerSubtypeDefinition class represents a subset of an existing integer base type definition.

11.6.2 Properties
TABLE 87. FIR_IntegerSubtypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_INTEGER_SUBTYPE_DEFINITION

Parent class

FIR_IntegerTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.6.3 Predefined Data Elements

struct FIR_IntegerSubtypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		left;
	FIR_Ref		right;
	FIR_Ref		direction;
};

11.7 FIR_FloatingTypeDefinition

11.7.1 Derived Class Description

The predefined FIR_FloatingTypeDefinition class represents a range of floating point values.

11.7.2 Properties
TABLE 88. FIR_FloatingTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_FLOATING_TYPE_DEFINITION

Parent class

FIR_ScalarTypeDefinition

Predefined child classes

FIR_FloatingSubtypeDefinition

Application-specific data elements

Via extension classes

11.7.3 Predefined Data Elements

struct FIR_FloatingTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		left;
	FIR_Ref		right;
	FIR_Ref		direction;
};

11.8 FIR_FloatingSubtypeDefinition

11.8.1 Derived Class Description

The predefined FIR_FloatingSubtypeDefinition class represents a subset of an existing floating base type definition.

11.8.2 Properties
TABLE 89. FIR_FloatingSubtypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_FLOATING_SUBTYPE_DEFINITION

Parent class

FIR_FloatingTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.8.3 Predefined Data Elements

struct FIR_FloatingSubtypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		left;
	FIR_Ref		right;
	FIR_Ref		direction;
};

11.9 FIR_PhysicalTypeDefinition

11.9.1 Derived Class Description

The predefined FIR_PhysicalTypeDefinition class represents a VHDL physical type, including limits, a primary unit and zero or more secondary units.

11.9.2 Properties
TABLE 90. FIR_PhysicalTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_PHYSICAL_TYPE_DEFINITION

Parent class

FIR_ScalarTypeDefinition

Predefined child classes

FIR_PhysicalSubtypeDefinition

Application-specific data elements

Via extension classes

11.9.3 Predefined Data Elements

struct FIR_PhysicalTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_UnitList		unit_declarations;
};

11.10 FIR_PhysicalSubtypeDefinition

11.10.1 Derived Class Description

The predefined FIR_PhysicalSubtypeDefinition class represents a subtype of an existing physical type. The subtype range must be a subset of the base type's range.

11.10.2 Properties
TABLE 91. FIR_PhysicalSubtypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_PHYSICAL_SUBTYPE_DEFINITION

Parent class

FIR_PhysicalTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.10.3 Predefined Data Elements

struct FIR_PhysicalTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_UnitList		unit_declarations;
};

11.11 FIR_RangeTypeDefinition

11.11.1 Derived Class Description

The predefined FIR_RangeTypeDefinition class represents discrete ranges which are not proper HDL types or subtypes.

11.11.2 Properties
TABLE 92. FIR_RangeTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A, Verilog

IR_Kind enumeration value

IR_RANGE_TYPE_DEFINITION

Parent class

FIR_ScalarTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.11.3 Predefined Data Elements

struct FIR_RangeTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		left;
	FIR_Ref		right;
	FIR_Ref		direction;
};

11.12 FIR_ArrayTypeDefinition

11.12.1 Derived Class Description

The predefined FIR_ArrayTypeDefinition class represents base types containing zero or more instances of the same elemental subtype.

11.12.2 Properties
TABLE 93. FIR_ArrayTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ARRAY_TYPE_DEFINITION

Parent class

FIR_TypeDefinition

Predefined child classes

FIR_ArraySubtypeDefinition

Application-specific data elements

Via extension classes

11.12.3 Predefined Data Elements

struct FIR_ArrayTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		domain_type;    /* FIR_ScalarTypeDefinition */
	FIR_Ref		element_type; /* FIR_TypeDefinition */
};

11.13 FIR_ArraySubtypeDefinition

11.13.1 Derived Class Description

The predefined FIR_ArraySubtypeDefinition class represents the subtype of a pre-existing array type definition. This subtype has an array domain which is a subset of the base type's domain.

11.13.2 Properties
TABLE 94. FIR_ArraySubtypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ARRAY_SUBTYPE_DEFINITION

Parent class

FIR_ArrayTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.13.3 Predefined Data Elements

struct FIR_ArrayTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		domain_type;
	FIR_Ref		element_type;
};

11.14 FIR_RecordTypeDefinition

11.14.1 Derived Class Description

The predefined FIR_RecordTypeDefinition class represents a record type having zero or more element declarations.

11.14.2 Properties
TABLE 95. FIR_RecordTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_RECORD_TYPE_DEFINITION

Parent class

FIR_TypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.14.3 Predefined Data Elements

struct FIR_RecordTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_ElementDeclarationList				 element_declarations;
};

11.15 FIR_AccessTypeDefinition

11.15.1 Derived Class Description

The predefined FIR_AccessTypeDefinition class represents a type definition denoting a dynamically allocated object of designated type.

11.15.2 Properties
TABLE 96. FIR_AccessTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ACCESS_TYPE_DEFINITION

Parent class

FIR_TypeDefinition

Predefined child classes

FIR_AccessSubtypeDefinition

Application-specific data elements

Via extension classes

11.15.3 Predefined Data Elements

struct FIR_AccessTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		constraint;
	FIR_Ref		designated_type;
};

11.16 FIR_AccessSubtypeDefinition

11.16.1 Derived Class Description

The predefined FIR_AccessSubtypeDefinition class represents a subtype of an access type definition.

11.16.2 Properties
TABLE 97. FIR_AccessSubtypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_ACCESS_SUBTYPE_DEFINITION

Parent class

FIR_AccessTypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.16.3 Predefined Data Elements

struct FIR_AccessSubtypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		base_type;
	FIR_Ref		constraint;
	FIR_Ref		designated_type;
};

11.17 FIR_FileTypeDefinition

11.17.1 Derived Class Description

The predefined FIR_FileTypeDefinition represents the type associated with zero or more file declarations.

11.17.2 Properties
TABLE 98. FIR_FileTypeDefinition Properties

Applicable language(s)

VHDL-87, VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_FILE_TYPE_DEFINITION

Parent class

FIR_TypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.17.3 Predefined Data Elements

struct FIR_FileTypeDefinition {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier;
	FIR_Ref		base_type;
	FIR_Ref		element;
/* 	FIR_Ref		modes; ==== removed until I understand RNN*/
};

11.18 FIR_Signature

11.18.1 Derived Class Description

The predefined FIR_Signature class represents the parameter type signature and optional return type which may be associated with one or more subprograms. Note that the signature does not directly imply interface declarators or a subprogram declarator.

11.18.2 Properties
TABLE 99. FIR_Signature Properties

Applicable language(s)

VHDL-93, VHDL-98*,VHDL-A

IR_Kind enumeration value

IR_SIGNATURE

Parent class

FIR_TypeDefinition

Predefined child classes

None

Application-specific data elements

Via extension classes

11.18.3 Predefined Data Elements

struct FIR_Signature {
	IR_Kind		kind;
	FIR_Source		source_locator;
	FIR_Ref		identifier; /* only here as inherited */
	FIR_Ref		return_type;
	FIR_DesignatorList				argument_type_list
};



[Top] [Prev] [Next] [Bottom]

aire@vhdl.org
Copyright © 1995, 1996 FTL Systems Inc. All rights reserved except as noted in the document copyright statement.