<> <> <> <> <> DIRECTORY SaffronGenericDef USING [idNode], IO USING [STREAM]; CedarBaseType: CEDAR DEFINITIONS ~ { idNode: TYPE ~ SaffronGenericDef.idNode; <> <> TypeGraph: TYPE ~ REF TypeGraphRep; TypeGraphRep: TYPE; PrintTypeGraph: PROC [TypeGraph, IO.STREAM] RETURNS [BOOLEAN]; CreateTypeGraph: PROC [] RETURNS [TypeGraph]; XTypeGraph: PROC [TypeGraph] RETURNS [TypeGraph]; <> AddType: PROC [TypeGraph, TypeNode] RETURNS [TypeGraph, TypeIndex]; < is added to the TypeNode map, and the pair is added to the Size map.>> SetType: PROC [TypeGraph, TypeNode, TypeIndex] RETURNS [TypeGraph]; <> RawFetchType: PROC [TypeGraph, TypeIndex] RETURNS [TypeNode]; <> NewPaint: PROC [TypeGraph] RETURNS [TypeGraph, Paint]; <> <> <> TypeIndex: TYPE ~ REF TypeIndexRep; TypeIndexRep: TYPE; PrintTypeIndex: PROC [TypeIndex, IO.STREAM] RETURNS [BOOLEAN]; UndefinedTypeIndex: PROC [] RETURNS [TypeIndex]; IsUndefinedTypeIndex: PUBLIC PROC [TypeIndex] RETURNS [BOOLEAN]; XTypeIndex: PROC [TypeIndex] RETURNS [TypeIndex]; <> TypeNode: TYPE ~ REF TypeNodeRep; TypeNodeRep: TYPE; PrintTypeNode: PROC [TypeNode, IO.STREAM] RETURNS [BOOLEAN]; GetPaint: PROC [TypeNode] RETURNS [Paint]; GetTypeBounds: PROC [TypeNode] RETURNS [TypeBounds]; BuildSuspendedType: PROC [REF] RETURNS [TypeNode]; IsSuspendedType: PROC [TypeNode] RETURNS [BOOLEAN]; GetTypeDecl: PROC [TypeNode] RETURNS [REF ANY]; <> BuildInaccessibleType: PROC [] RETURNS [TypeNode]; IsInaccessibleType: PROC [TypeNode] RETURNS [BOOLEAN]; <> BuildRecordType: PROC [FieldList] RETURNS [TypeNode]; BuildEnumType: PROC [Paint, EltList] RETURNS [TypeNode]; IsEnumType: PROC [TypeNode] RETURNS [BOOLEAN]; EnumTypeEltList: PROC [TypeNode] RETURNS [EltList]; BuildSubrangeType: PROC [TypeNode, TypeBounds] RETURNS [TypeNode]; BuildRefType: PROC [TypeIndex] RETURNS [TypeNode]; IsRefType: PROC [TypeNode] RETURNS [BOOLEAN]; GetReferentType: PROC [TypeNode] RETURNS [TypeIndex]; <> <> Paint: TYPE ~ RECORD [val: INT, paint: RECORD[] _ NULL]; -- a painted type PaintEqual: PROC [Paint, Paint] RETURNS [BOOLEAN]; BuildUndefinedPaint: PROC RETURNS [Paint]; IsUndefinedPaint: PROC [Paint] RETURNS [BOOLEAN]; <> <> TypeBounds: TYPE ~ REF TypeBoundsRep; TypeBoundsRep: TYPE; BuildUndefinedTypeBounds: PROC RETURNS [TypeBounds]; IsUndefinedTypeBounds: PROC [TypeBounds] RETURNS [BOOLEAN]; BuildTypeBounds: PROC [OrdinalValue, OrdinalValue, BOOLEAN, BOOLEAN] RETURNS [TypeBounds]; <> <> FieldList: TYPE ~ REF FieldListRep; FieldListRep: TYPE; BuildNullFieldList: PROC [] RETURNS [FieldList]; BuildNamedFieldList: PROC [NamedFieldList] RETURNS [FieldList]; BuildUnnamedFieldList: PROC [UnnamedFieldList] RETURNS [FieldList]; <> NamedFieldList: TYPE ~ REF NamedFieldListRep; NamedFieldListRep: TYPE; CreateNamedFieldList: PROC [] RETURNS [NamedFieldList]; AddNamedField: PROC [NamedFieldList, idNode, FieldDescriptor] RETURNS [NamedFieldList, BOOLEAN]; <> UnnamedFieldList: TYPE ~ REF UnnamedFieldListRep; UnnamedFieldListRep: TYPE; CreateUnnamedFieldList: PROC [] RETURNS [UnnamedFieldList]; AddUnnamedField: PROC [UnnamedFieldList, FieldDescriptor] RETURNS [UnnamedFieldList]; <> FieldDescriptor: TYPE ~ REF FieldDescriptorRep; FieldDescriptorRep: TYPE; BuildFieldDescriptor: PROC [TypeIndex] RETURNS [FieldDescriptor]; GetFieldType: PROC [FieldDescriptor] RETURNS [TypeIndex]; <> EltList: TYPE ~ REF EltListRep; EltListRep: TYPE; BuildEmptyEltList: PROC [] RETURNS [EltList]; EltListInsert: PROC [EltList, idNode] RETURNS [EltList, BOOLEAN]; EltListLookup: PROC [EltList, idNode] RETURNS [OrdinalValue]; <> OrdinalValue: TYPE ~ REF OrdinalValueRep; OrdinalValueRep: TYPE; PrintOrdinalValue: PROC [OrdinalValue, IO.STREAM] RETURNS [BOOLEAN]; IsUndefinedOrdinalValue: PROC [OrdinalValue] RETURNS [BOOLEAN]; BuildOrdinalValue: PROC [INT] RETURNS [OrdinalValue]; BuildUndefinedOrdinalValue: PROC [] RETURNS [OrdinalValue]; <> <> Size: TYPE ~ REF SizeRep; SizeRep: TYPE; BuildUnknownSize: PROC [] RETURNS [Size]; IsUnknownSize: PROC [Size] RETURNS [BOOLEAN]; <> BuildInaccessibleSize: PROC [] RETURNS [Size]; IsInaccessibleSize: PROC [Size] RETURNS [BOOLEAN]; <> BuildKnownSize: PROC [INT] RETURNS [Size]; IsKnownSize: PROC [Size] RETURNS [BOOLEAN]; <> }...