|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Class Summary | |
|---|---|
| AggregateType | An aggregate type contains a list of fields (either field declarations or routine declarations). |
| AllocArrayType | This class represents array types with bounds that are determined at run time. |
| ArrayType | The abstract class for all array types. |
| AtomicType | This class represents types directly supported by (most) hardware (e.g., integers, reals, and pointers). |
| BooleanType | This class represents the boolean type. |
| Bound | A Bound class represents a range of allowed integer values. |
| CharacterType | This class represents the character type for languages other than C. |
| ComplexType | This class represents the complex type with a real and an imaginary part. |
| CompositeType | This is the abstract class for types that are composed of multiple instances of other types such as arrays and structures. |
| EnumerationType | This class represents a C style enumeration type. |
| FixedArrayType | This class represents array types with fixed bounds. |
| FloatType | This class repsents floating point types such as C's float and double types. |
| FortranCharType | The FortranCharType class represents the Fortran CHARACTER type. |
| IncompleteType | An IncompleteType is used to represent a type before the complete type is known. |
| IntegerType | The IntegerType class represents a primitive integer type. |
| NumericType | This is the base class for all numeric types. |
| PointerType | The PointerType represents the type address of some other type. |
| ProcedureType | A ProcedureType represents the type of a procedure. |
| Raise | A raise represents an exception that |
| RaiseWithObject | Un-used. |
| RaiseWithType | Un-used. |
| RealType | This is the base class for all scaled types such a C's float and double types. |
| RecordType | A class representing a record or structure type. |
| RefType | A RefType node is used to represent an exisiting type when attributes must be set on a new equivalent type. |
| SignedIntegerType | The SignedIntegerType class represents a primitive signed integer type. |
| Type | This class is the root class for type nodes. |
| TypeTable | This class maps from an integer value to a Type. |
| UnionType | A class representing a C union type. |
| UnsignedIntegerType | The UnsignedIntegerType class represents a primitive unsigned integer type. |
| VoidType | This class represents the void type in C and is used to represent the absence of a type. |
| Enum Summary | |
|---|---|
| RefAttr | This enum specifies the attributes of a reference type - const, aligned, etc. |
Provides for describing the types of expressions and variables.
The Type class is the base class for all types.
Most types in Scale are unique - that is, there is only one instance of a 32-bit signed integer type. Because they are unique, the == operator may be used to compare them.
Two types are not unique: RefType and
IncompleteType. These two types contain
links to the actual type.
The RefType allows names and attributes to be attached to a type.
For example, a structure name or the
const attribute. The IncompleteType is used for forward referencing as in a structure that has
a field of type pointer-to its own type.
All classes that that require type information such as
expressions
and declarations support two methods:
typedef int int32; const int32 x;getCoreType() applied to the variable x would return the type instance for an int.
It is very important to use the correct method. For example, for
typedef int int32a; const int32a x; typedef int int32b; const int32b y;the types returned by getType for x and y would not be identical. However, the types returned by getCoreType would be identical.
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||