-- file A3.mesa
-- last modified by Satterthwaite, March 24, 1983 1:03 pm
DIRECTORY
Alloc: TYPE USING [Notifier],
Symbols: TYPE USING [Type, CSEIndex, RecordSEIndex, CBTIndex],
Tree: TYPE USING [Link];
A3: DEFINITIONS = {
OPEN Symbols;
-- types
DefaultForm: TYPE = {none, void, nonVoid};
LhsMode: TYPE = {none, uncounted, counted};
LifeTime: TYPE = {global, local, unknown};
-- notifiers
TreeNotify, TypeNotify: Alloc.Notifier;
-- type attributes
AccessMode: PUBLIC PROC [Type] RETURNS [LhsMode];
AssignableType: PROC [type: Type, safe: BOOL] RETURNS [BOOL];
CanonicalType: PROC [Type] RETURNS [CSEIndex];
Default: PROC [Type] RETURNS [DefaultForm];
DefaultInit: PROC [Type] RETURNS [Tree.Link];
IdentifiedType: PROC [Type] RETURNS [BOOL];
IndexType: PROC [Type] RETURNS [BOOL];
MarkedType: PROC [Type] RETURNS [CSEIndex];
NewableType: PROC [Type] RETURNS [BOOL];
NullableType: PROC [Type] RETURNS [BOOL];
OrderedType: PROC [Type] RETURNS [BOOL];
PermanentType: PROC [Type] RETURNS [BOOL];
TargetType: PROC [Type] RETURNS [CSEIndex];
Unwrap: PROC [RecordSEIndex] RETURNS [Type];
VarType: PROC [Type] RETURNS [BOOL];
Voidable: PROC [Type] RETURNS [BOOL];
Wrappings: PROC [Type] RETURNS [NAT];
-- tree attributes
BodyForTree: PROC [Tree.Link] RETURNS [CBTIndex];
LongPath: PROC [Tree.Link] RETURNS [BOOL];
OperandInline: PROC [Tree.Link] RETURNS [BOOL];
OperandInternal: PROC [Tree.Link] RETURNS [BOOL];
OperandLevel: PROC [Tree.Link] RETURNS [LifeTime];
OperandLhs: PROC [Tree.Link] RETURNS [LhsMode];
OperandType: PROC [Tree.Link] RETURNS [CSEIndex];
TypeForTree: PROC [Tree.Link] RETURNS [Type];
VoidItem: PROC [Tree.Link] RETURNS [BOOL];
}.