-- SaffronAG6Def.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by hederman.pa at August 17, 1987 4:33:13 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef; SaffronAG6Def: CEDAR DEFINITIONS = BEGIN OPEN SaffronTreeDeclsDef, SaffronGenericDef, SaffronATDef; -- TypeExptypeidProd TypeExptypeidProdData: TYPE = REF TypeExptypeidProdDataBody; TypeExptypeidProdDataBody: TYPE = RECORD[ TypeId: TypeIdNode]; TypeExptypeidProdProcs: TypeExpNodeProcs; BuildTypeExptypeidProdNode: PROC[position: INT, length: INT, TypeId: TypeIdNode] RETURNS[TypeExpNode]; TypeExptypeidProdMakeType: MakeTypeProcType; -- TypeExpsubrangeProd TypeExpsubrangeProdData: TYPE = REF TypeExpsubrangeProdDataBody; TypeExpsubrangeProdDataBody: TYPE = RECORD[ Subrange: SubrangeNode]; TypeExpsubrangeProdProcs: TypeExpNodeProcs; BuildTypeExpsubrangeProdNode: PROC[position: INT, length: INT, Subrange: SubrangeNode] RETURNS[TypeExpNode]; TypeExpsubrangeProdMakeType: MakeTypeProcType; -- TypeExpenumProd TypeExpenumProdData: TYPE = REF TypeExpenumProdDataBody; TypeExpenumProdDataBody: TYPE = RECORD[ MachineDependent: MachineDependentNode, ElementList: ElementListNode]; TypeExpenumProdProcs: TypeExpNodeProcs; BuildTypeExpenumProdNode: PROC[position: INT, length: INT, MachineDependent: MachineDependentNode, ElementList: ElementListNode] RETURNS[TypeExpNode]; TypeExpenumProdMakeType: MakeTypeProcType; -- TypeExprecordProd TypeExprecordProdData: TYPE = REF TypeExprecordProdDataBody; TypeExprecordProdDataBody: TYPE = RECORD[ MachineDependent: MachineDependentNode, Monitored: MonitoredNode, RecList: RecListNode]; TypeExprecordProdProcs: TypeExpNodeProcs; BuildTypeExprecordProdNode: PROC[position: INT, length: INT, MachineDependent: MachineDependentNode, Monitored: MonitoredNode, RecList: RecListNode] RETURNS[TypeExpNode]; TypeExprecordProdMakeType: MakeTypeProcType; -- TypeExppointerProd TypeExppointerProdData: TYPE = REF TypeExppointerProdDataBody; TypeExppointerProdDataBody: TYPE = RECORD[ Ordered: OrderedNode, Base: BaseNode, PointerType: PointerTypeNode]; TypeExppointerProdProcs: TypeExpNodeProcs; BuildTypeExppointerProdNode: PROC[position: INT, length: INT, Ordered: OrderedNode, Base: BaseNode, PointerType: PointerTypeNode] RETURNS[TypeExpNode]; TypeExppointerProdMakeType: MakeTypeProcType; -- TypeExpvarProd TypeExpvarProdData: TYPE = REF TypeExpvarProdDataBody; TypeExpvarProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; TypeExpvarProdProcs: TypeExpNodeProcs; BuildTypeExpvarProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExpvarProdMakeType: MakeTypeProcType; -- TypeExprefProd TypeExprefProdData: TYPE = REF TypeExprefProdDataBody; TypeExprefProdDataBody: TYPE = RECORD[ ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode]; TypeExprefProdProcs: TypeExpNodeProcs; BuildTypeExprefProdNode: PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExprefProdMakeType: MakeTypeProcType; -- TypeExprefanyProd TypeExprefanyProdData: TYPE = REF TypeExprefanyProdDataBody; TypeExprefanyProdDataBody: TYPE = RECORD[ ReadOnly: ReadOnlyNode]; TypeExprefanyProdProcs: TypeExpNodeProcs; BuildTypeExprefanyProdNode: PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode] RETURNS[TypeExpNode]; TypeExprefanyProdMakeType: MakeTypeProcType; -- TypeExprefunspecifiedProd TypeExprefunspecifiedProdData: TYPE = REF TypeExprefunspecifiedProdDataBody; TypeExprefunspecifiedProdDataBody: TYPE = RECORD[ ]; TypeExprefunspecifiedProdProcs: TypeExpNodeProcs; BuildTypeExprefunspecifiedProdNode: PROC[position: INT, length: INT] RETURNS[TypeExpNode]; TypeExprefunspecifiedProdMakeType: MakeTypeProcType; -- TypeExplistProd TypeExplistProdData: TYPE = REF TypeExplistProdDataBody; TypeExplistProdDataBody: TYPE = RECORD[ ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode]; TypeExplistProdProcs: TypeExpNodeProcs; BuildTypeExplistProdNode: PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExplistProdMakeType: MakeTypeProcType; -- TypeExparrayProd TypeExparrayProdData: TYPE = REF TypeExparrayProdDataBody; TypeExparrayProdDataBody: TYPE = RECORD[ Packed: PackedNode, OptType: OptTypeNode, TypeExp: TypeExpNode]; TypeExparrayProdProcs: TypeExpNodeProcs; BuildTypeExparrayProdNode: PROC[position: INT, length: INT, Packed: PackedNode, OptType: OptTypeNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExparrayProdMakeType: MakeTypeProcType; -- TypeExpdescriptorProd TypeExpdescriptorProdData: TYPE = REF TypeExpdescriptorProdDataBody; TypeExpdescriptorProdDataBody: TYPE = RECORD[ ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode]; TypeExpdescriptorProdProcs: TypeExpNodeProcs; BuildTypeExpdescriptorProdNode: PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExpdescriptorProdMakeType: MakeTypeProcType; -- TypeExptransferProd TypeExptransferProdData: TYPE = REF TypeExptransferProdDataBody; TypeExptransferProdDataBody: TYPE = RECORD[ Safe: SafeNode, TransferMode: TransferModeNode, Arguments: ArgumentsNode]; TypeExptransferProdProcs: TypeExpNodeProcs; BuildTypeExptransferProdNode: PROC[position: INT, length: INT, Safe: SafeNode, TransferMode: TransferModeNode, Arguments: ArgumentsNode] RETURNS[TypeExpNode]; TypeExptransferProdMakeType: MakeTypeProcType; -- TypeExprelativeProd TypeExprelativeProdData: TYPE = REF TypeExprelativeProdDataBody; TypeExprelativeProdDataBody: TYPE = RECORD[ TypeId: TypeIdNode, TypeExp: TypeExpNode]; TypeExprelativeProdProcs: TypeExpNodeProcs; BuildTypeExprelativeProdNode: PROC[position: INT, length: INT, TypeId: TypeIdNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExprelativeProdMakeType: MakeTypeProcType; -- TypeExpzoneProd TypeExpzoneProdData: TYPE = REF TypeExpzoneProdDataBody; TypeExpzoneProdDataBody: TYPE = RECORD[ Uncounted: UncountedNode]; TypeExpzoneProdProcs: TypeExpNodeProcs; BuildTypeExpzoneProdNode: PROC[position: INT, length: INT, Uncounted: UncountedNode] RETURNS[TypeExpNode]; TypeExpzoneProdMakeType: MakeTypeProcType; -- TypeExplongProd TypeExplongProdData: TYPE = REF TypeExplongProdDataBody; TypeExplongProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode]; TypeExplongProdProcs: TypeExpNodeProcs; BuildTypeExplongProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExplongProdMakeType: MakeTypeProcType; -- TypeExpframeProd TypeExpframeProdData: TYPE = REF TypeExpframeProdDataBody; TypeExpframeProdDataBody: TYPE = RECORD[ Id: IdNode]; TypeExpframeProdProcs: TypeExpNodeProcs; BuildTypeExpframeProdNode: PROC[position: INT, length: INT, Id: IdNode] RETURNS[TypeExpNode]; TypeExpframeProdMakeType: MakeTypeProcType; -- TypeExppaintedProd TypeExppaintedProdData: TYPE = REF TypeExppaintedProdDataBody; TypeExppaintedProdDataBody: TYPE = RECORD[ TypeId: TypeIdNode, TypeExp: TypeExpNode]; TypeExppaintedProdProcs: TypeExpNodeProcs; BuildTypeExppaintedProdNode: PROC[position: INT, length: INT, TypeId: TypeIdNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExppaintedProdMakeType: MakeTypeProcType; -- TypeExptypeapplyProd TypeExptypeapplyProdData: TYPE = REF TypeExptypeapplyProdDataBody; TypeExptypeapplyProdDataBody: TYPE = RECORD[ TypeApply: TypeApplyNode]; TypeExptypeapplyProdProcs: TypeExpNodeProcs; BuildTypeExptypeapplyProdNode: PROC[position: INT, length: INT, TypeApply: TypeApplyNode] RETURNS[TypeExpNode]; TypeExptypeapplyProdMakeType: MakeTypeProcType; -- TypeExpunionProd TypeExpunionProdData: TYPE = REF TypeExpunionProdDataBody; TypeExpunionProdDataBody: TYPE = RECORD[ Tag: TagNode, VariantList: VariantListNode]; TypeExpunionProdProcs: TypeExpNodeProcs; BuildTypeExpunionProdNode: PROC[position: INT, length: INT, Tag: TagNode, VariantList: VariantListNode] RETURNS[TypeExpNode]; TypeExpunionProdMakeType: MakeTypeProcType; -- TypeExpsequenceProd TypeExpsequenceProdData: TYPE = REF TypeExpsequenceProdDataBody; TypeExpsequenceProdDataBody: TYPE = RECORD[ Packed: PackedNode, Tag: TagNode, TypeExp: TypeExpNode]; TypeExpsequenceProdProcs: TypeExpNodeProcs; BuildTypeExpsequenceProdNode: PROC[position: INT, length: INT, Packed: PackedNode, Tag: TagNode, TypeExp: TypeExpNode] RETURNS[TypeExpNode]; TypeExpsequenceProdMakeType: MakeTypeProcType; -- TypeIdidProd TypeIdidProdData: TYPE = REF TypeIdidProdDataBody; TypeIdidProdDataBody: TYPE = RECORD[ Id: IdNode]; TypeIdidProdProcs: TypeIdNodeProcs; BuildTypeIdidProdNode: PROC[position: INT, length: INT, Id: IdNode] RETURNS[TypeIdNode]; TypeIdidProdMakeType: MakeTypeProcType; TypeIdidProdLookupTypeId: LookupTypeIdProcType; -- TypeIdqualifierProd TypeIdqualifierProdData: TYPE = REF TypeIdqualifierProdDataBody; TypeIdqualifierProdDataBody: TYPE = RECORD[ TypeId: TypeIdNode, Id: IdNode]; TypeIdqualifierProdProcs: TypeIdNodeProcs; BuildTypeIdqualifierProdNode: PROC[position: INT, length: INT, TypeId: TypeIdNode, Id: IdNode] RETURNS[TypeIdNode]; TypeIdqualifierProdMakeType: MakeTypeProcType; TypeIdqualifierProdLookupTypeId: LookupTypeIdProcType; -- SubrangenamedProd SubrangenamedProdData: TYPE = REF SubrangenamedProdDataBody; SubrangenamedProdDataBody: TYPE = RECORD[ TypeId: TypeIdNode, Interval: IntervalNode]; SubrangenamedProdProcs: SubrangeNodeProcs; BuildSubrangenamedProdNode: PROC[position: INT, length: INT, TypeId: TypeIdNode, Interval: IntervalNode] RETURNS[SubrangeNode]; SubrangenamedProdMakeType: MakeTypeProcType; -- SubrangeunnamedProd SubrangeunnamedProdData: TYPE = REF SubrangeunnamedProdDataBody; SubrangeunnamedProdDataBody: TYPE = RECORD[ Interval: IntervalNode]; SubrangeunnamedProdProcs: SubrangeNodeProcs; BuildSubrangeunnamedProdNode: PROC[position: INT, length: INT, Interval: IntervalNode] RETURNS[SubrangeNode]; SubrangeunnamedProdMakeType: MakeTypeProcType; -- IntervalccProd IntervalccProdData: TYPE = REF IntervalccProdDataBody; IntervalccProdDataBody: TYPE = RECORD[ Bounds: BoundsNode]; IntervalccProdProcs: IntervalNodeProcs; BuildIntervalccProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode]; IntervalccProdGetBoundsVal: GetBoundsValProcType; -- IntervalcoProd IntervalcoProdData: TYPE = REF IntervalcoProdDataBody; IntervalcoProdDataBody: TYPE = RECORD[ Bounds: BoundsNode]; IntervalcoProdProcs: IntervalNodeProcs; BuildIntervalcoProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode]; IntervalcoProdGetBoundsVal: GetBoundsValProcType; -- IntervalocProd IntervalocProdData: TYPE = REF IntervalocProdDataBody; IntervalocProdDataBody: TYPE = RECORD[ Bounds: BoundsNode]; IntervalocProdProcs: IntervalNodeProcs; BuildIntervalocProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode]; IntervalocProdGetBoundsVal: GetBoundsValProcType; -- IntervalooProd IntervalooProdData: TYPE = REF IntervalooProdDataBody; IntervalooProdDataBody: TYPE = RECORD[ Bounds: BoundsNode]; IntervalooProdProcs: IntervalNodeProcs; BuildIntervalooProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode]; IntervalooProdGetBoundsVal: GetBoundsValProcType; -- BoundsProd BoundsProdData: TYPE = REF BoundsProdDataBody; BoundsProdDataBody: TYPE = RECORD[ Explower: ExpNode, Expupper: ExpNode]; BoundsProdProcs: BoundsNodeProcs; BuildBoundsProdNode: PROC[position: INT, length: INT, Explower: ExpNode, Expupper: ExpNode] RETURNS[BoundsNode]; BoundsProdGetLowerAndUpper: GetLowerAndUpperProcType; -- MachineDependentyesProd MachineDependentyesProdData: TYPE = REF MachineDependentyesProdDataBody; MachineDependentyesProdDataBody: TYPE = RECORD[ ]; MachineDependentyesProdProcs: MachineDependentNodeProcs; BuildMachineDependentyesProdNode: PROC[position: INT, length: INT] RETURNS[MachineDependentNode]; MachineDependentyesProdGetBooleanVal: GetBooleanValProcType; -- MachineDependentnoProd MachineDependentnoProdData: TYPE = REF MachineDependentnoProdDataBody; MachineDependentnoProdDataBody: TYPE = RECORD[ ]; MachineDependentnoProdProcs: MachineDependentNodeProcs; BuildMachineDependentnoProdNode: PROC[position: INT, length: INT] RETURNS[MachineDependentNode]; MachineDependentnoProdGetBooleanVal: GetBooleanValProcType; -- MonitoredyesProd MonitoredyesProdData: TYPE = REF MonitoredyesProdDataBody; MonitoredyesProdDataBody: TYPE = RECORD[ ]; MonitoredyesProdProcs: MonitoredNodeProcs; BuildMonitoredyesProdNode: PROC[position: INT, length: INT] RETURNS[MonitoredNode]; MonitoredyesProdGetBooleanVal: GetBooleanValProcType; -- MonitorednoProd MonitorednoProdData: TYPE = REF MonitorednoProdDataBody; MonitorednoProdDataBody: TYPE = RECORD[ ]; MonitorednoProdProcs: MonitoredNodeProcs; BuildMonitorednoProdNode: PROC[position: INT, length: INT] RETURNS[MonitoredNode]; MonitorednoProdGetBooleanVal: GetBooleanValProcType; -- ElementListemptyProd ElementListemptyProdData: TYPE = REF ElementListemptyProdDataBody; ElementListemptyProdDataBody: TYPE = RECORD[ ]; ElementListemptyProdProcs: ElementListNodeProcs; BuildElementListemptyProdNode: PROC[position: INT, length: INT] RETURNS[ElementListNode]; ElementListemptyProdMakeElementList: MakeElementListProcType; -- ElementListmoreProd ElementListmoreProdData: TYPE = REF ElementListmoreProdDataBody; ElementListmoreProdDataBody: TYPE = RECORD[ ElementList: ElementListNode, Element: ElementNode]; ElementListmoreProdProcs: ElementListNodeProcs; BuildElementListmoreProdNode: PROC[position: INT, length: INT, ElementList: ElementListNode, Element: ElementNode] RETURNS[ElementListNode]; ElementListmoreProdMakeElementList: MakeElementListProcType; -- ElementidProd ElementidProdData: TYPE = REF ElementidProdDataBody; ElementidProdDataBody: TYPE = RECORD[ Id: IdNode]; ElementidProdProcs: ElementNodeProcs; BuildElementidProdNode: PROC[position: INT, length: INT, Id: IdNode] RETURNS[ElementNode]; ElementidProdElementInfo: ElementInfoProcType; -- ElementidwithrepProd ElementidwithrepProdData: TYPE = REF ElementidwithrepProdDataBody; ElementidwithrepProdDataBody: TYPE = RECORD[ Id: IdNode, Exp: ExpNode]; ElementidwithrepProdProcs: ElementNodeProcs; BuildElementidwithrepProdNode: PROC[position: INT, length: INT, Id: IdNode, Exp: ExpNode] RETURNS[ElementNode]; ElementidwithrepProdElementInfo: ElementInfoProcType; -- ElementanonymousrepProd ElementanonymousrepProdData: TYPE = REF ElementanonymousrepProdDataBody; ElementanonymousrepProdDataBody: TYPE = RECORD[ Exp: ExpNode]; ElementanonymousrepProdProcs: ElementNodeProcs; BuildElementanonymousrepProdNode: PROC[position: INT, length: INT, Exp: ExpNode] RETURNS[ElementNode]; ElementanonymousrepProdElementInfo: ElementInfoProcType; -- RecListemptyProd RecListemptyProdData: TYPE = REF RecListemptyProdDataBody; RecListemptyProdDataBody: TYPE = RECORD[ ]; RecListemptyProdProcs: RecListNodeProcs; BuildRecListemptyProdNode: PROC[position: INT, length: INT] RETURNS[RecListNode]; RecListemptyProdMakeFieldList: MakeFieldListProcType; -- RecListpairlistProd RecListpairlistProdData: TYPE = REF RecListpairlistProdDataBody; RecListpairlistProdDataBody: TYPE = RECORD[ PairList: PairListNode]; RecListpairlistProdProcs: RecListNodeProcs; BuildRecListpairlistProdNode: PROC[position: INT, length: INT, PairList: PairListNode] RETURNS[RecListNode]; RecListpairlistProdMakeFieldList: MakeFieldListProcType; -- RecListtypelistProd RecListtypelistProdData: TYPE = REF RecListtypelistProdDataBody; RecListtypelistProdDataBody: TYPE = RECORD[ TypeList: TypeListNode]; RecListtypelistProdProcs: RecListNodeProcs; BuildRecListtypelistProdNode: PROC[position: INT, length: INT, TypeList: TypeListNode] RETURNS[RecListNode]; RecListtypelistProdMakeFieldList: MakeFieldListProcType; -- PairListoneProd PairListoneProdData: TYPE = REF PairListoneProdDataBody; PairListoneProdDataBody: TYPE = RECORD[ PairItem: PairItemNode]; PairListoneProdProcs: PairListNodeProcs; BuildPairListoneProdNode: PROC[position: INT, length: INT, PairItem: PairItemNode] RETURNS[PairListNode]; PairListoneProdAddPairsToFieldList: AddPairsToFieldListProcType; -- PairListmanyProd PairListmanyProdData: TYPE = REF PairListmanyProdDataBody; PairListmanyProdDataBody: TYPE = RECORD[ PairListhead: PairListNode, PairListtail: PairListNode]; PairListmanyProdProcs: PairListNodeProcs; BuildPairListmanyProdNode: PROC[position: INT, length: INT, PairListhead: PairListNode, PairListtail: PairListNode] RETURNS[PairListNode]; PairListmanyProdAddPairsToFieldList: AddPairsToFieldListProcType; -- PairItemProd PairItemProdData: TYPE = REF PairItemProdDataBody; PairItemProdDataBody: TYPE = RECORD[ IdentList: IdentListNode, Access: AccessNode, TypeExp: TypeExpNode, Default: DefaultNode]; PairItemProdProcs: PairItemNodeProcs; BuildPairItemProdNode: PROC[position: INT, length: INT, IdentList: IdentListNode, Access: AccessNode, TypeExp: TypeExpNode, Default: DefaultNode] RETURNS[PairItemNode]; PairItemProdAddPairsToFieldList: AddPairsToFieldListProcType; -- TypeListoneProd TypeListoneProdData: TYPE = REF TypeListoneProdDataBody; TypeListoneProdDataBody: TYPE = RECORD[ TypeItem: TypeItemNode]; TypeListoneProdProcs: TypeListNodeProcs; BuildTypeListoneProdNode: PROC[position: INT, length: INT, TypeItem: TypeItemNode] RETURNS[TypeListNode]; TypeListoneProdAddToFieldList: AddToFieldListProcType; -- TypeListmanyProd TypeListmanyProdData: TYPE = REF TypeListmanyProdDataBody; TypeListmanyProdDataBody: TYPE = RECORD[ TypeListhead: TypeListNode, TypeListtail: TypeListNode]; TypeListmanyProdProcs: TypeListNodeProcs; BuildTypeListmanyProdNode: PROC[position: INT, length: INT, TypeListhead: TypeListNode, TypeListtail: TypeListNode] RETURNS[TypeListNode]; TypeListmanyProdAddToFieldList: AddToFieldListProcType; -- TypeItemProd TypeItemProdData: TYPE = REF TypeItemProdDataBody; TypeItemProdDataBody: TYPE = RECORD[ TypeExp: TypeExpNode, Default: DefaultNode]; TypeItemProdProcs: TypeItemNodeProcs; BuildTypeItemProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode, Default: DefaultNode] RETURNS[TypeItemNode]; TypeItemProdAddToFieldList: AddToFieldListProcType; END..