SaffronAG6Def.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Generated by BJackson.pa at April 27, 1987 10:51:20 pm PDT
using ThreeCasabaFour [1.1] of April 14, 1987 6:34:07 pm PDT
DIRECTORY
SaffronTreeBucketDef,
SaffronTreeDeclsDef,
SaffronGenericDef,
SaffronATDef;
SaffronAG6Def: CEDAR DEFINITIONS =
BEGIN
OPEN SaffronTreeBucketDef, 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];
TypeExptypeidProdfoo: fooProcType;
TypeExptypeidProdMakeType: MakeTypeProcType;
TypeExpsubrangeProd
TypeExpsubrangeProdData: TYPE = REF TypeExpsubrangeProdDataBody;
TypeExpsubrangeProdDataBody: TYPE = RECORD[
Subrange: SubrangeNode];
TypeExpsubrangeProdProcs: TypeExpNodeProcs;
BuildTypeExpsubrangeProdNode: PROC[position: INT, length: INT, Subrange: SubrangeNode]
RETURNS[TypeExpNode];
TypeExpsubrangeProdfoo: fooProcType;
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];
TypeExpenumProdfoo: fooProcType;
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];
TypeExprecordProdfoo: fooProcType;
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];
TypeExppointerProdfoo: fooProcType;
TypeExppointerProdMakeType: MakeTypeProcType;
TypeExpvarProd
TypeExpvarProdData: TYPE = REF TypeExpvarProdDataBody;
TypeExpvarProdDataBody: TYPE = RECORD[
TypeExp: TypeExpNode];
TypeExpvarProdProcs: TypeExpNodeProcs;
BuildTypeExpvarProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode]
RETURNS[TypeExpNode];
TypeExpvarProdfoo: fooProcType;
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];
TypeExprefProdfoo: fooProcType;
TypeExprefProdMakeType: MakeTypeProcType;
TypeExprefanyProd
TypeExprefanyProdData: TYPE = REF TypeExprefanyProdDataBody;
TypeExprefanyProdDataBody: TYPE = RECORD[
ReadOnly: ReadOnlyNode];
TypeExprefanyProdProcs: TypeExpNodeProcs;
BuildTypeExprefanyProdNode: PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode]
RETURNS[TypeExpNode];
TypeExprefanyProdfoo: fooProcType;
TypeExprefanyProdMakeType: MakeTypeProcType;
TypeExprefunspecifiedProd
TypeExprefunspecifiedProdData: TYPE = REF TypeExprefunspecifiedProdDataBody;
TypeExprefunspecifiedProdDataBody: TYPE = RECORD[
];
TypeExprefunspecifiedProdProcs: TypeExpNodeProcs;
BuildTypeExprefunspecifiedProdNode: PROC[position: INT, length: INT]
RETURNS[TypeExpNode];
TypeExprefunspecifiedProdfoo: fooProcType;
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];
TypeExplistProdfoo: fooProcType;
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];
TypeExparrayProdfoo: fooProcType;
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];
TypeExpdescriptorProdfoo: fooProcType;
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];
TypeExptransferProdfoo: fooProcType;
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];
TypeExprelativeProdfoo: fooProcType;
TypeExprelativeProdMakeType: MakeTypeProcType;
TypeExpzoneProd
TypeExpzoneProdData: TYPE = REF TypeExpzoneProdDataBody;
TypeExpzoneProdDataBody: TYPE = RECORD[
Uncounted: UncountedNode];
TypeExpzoneProdProcs: TypeExpNodeProcs;
BuildTypeExpzoneProdNode: PROC[position: INT, length: INT, Uncounted: UncountedNode]
RETURNS[TypeExpNode];
TypeExpzoneProdfoo: fooProcType;
TypeExpzoneProdMakeType: MakeTypeProcType;
TypeExplongProd
TypeExplongProdData: TYPE = REF TypeExplongProdDataBody;
TypeExplongProdDataBody: TYPE = RECORD[
TypeExp: TypeExpNode];
TypeExplongProdProcs: TypeExpNodeProcs;
BuildTypeExplongProdNode: PROC[position: INT, length: INT, TypeExp: TypeExpNode]
RETURNS[TypeExpNode];
TypeExplongProdfoo: fooProcType;
TypeExplongProdMakeType: MakeTypeProcType;
TypeExpframeProd
TypeExpframeProdData: TYPE = REF TypeExpframeProdDataBody;
TypeExpframeProdDataBody: TYPE = RECORD[
id: idNode];
TypeExpframeProdProcs: TypeExpNodeProcs;
BuildTypeExpframeProdNode: PROC[position: INT, length: INT, id: idNode]
RETURNS[TypeExpNode];
TypeExpframeProdfoo: fooProcType;
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];
TypeExppaintedProdfoo: fooProcType;
TypeExppaintedProdMakeType: MakeTypeProcType;
TypeExptypeapplyProd
TypeExptypeapplyProdData: TYPE = REF TypeExptypeapplyProdDataBody;
TypeExptypeapplyProdDataBody: TYPE = RECORD[
TypeApply: TypeApplyNode];
TypeExptypeapplyProdProcs: TypeExpNodeProcs;
BuildTypeExptypeapplyProdNode: PROC[position: INT, length: INT, TypeApply: TypeApplyNode]
RETURNS[TypeExpNode];
TypeExptypeapplyProdfoo: fooProcType;
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];
TypeExpunionProdfoo: fooProcType;
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];
TypeExpsequenceProdfoo: fooProcType;
TypeExpsequenceProdMakeType: MakeTypeProcType;
TypeIdidProd
TypeIdidProdData: TYPE = REF TypeIdidProdDataBody;
TypeIdidProdDataBody: TYPE = RECORD[
id: idNode];
TypeIdidProdProcs: TypeIdNodeProcs;
BuildTypeIdidProdNode: PROC[position: INT, length: INT, id: idNode]
RETURNS[TypeIdNode];
TypeIdidProdfoo: fooProcType;
TypeIdidProdMakeType: MakeTypeProcType;
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];
TypeIdqualifierProdfoo: fooProcType;
TypeIdqualifierProdMakeType: MakeTypeProcType;
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];
SubrangenamedProdfoo: fooProcType;
SubrangenamedProdMakeType: MakeTypeProcType;
SubrangeunnamedProd
SubrangeunnamedProdData: TYPE = REF SubrangeunnamedProdDataBody;
SubrangeunnamedProdDataBody: TYPE = RECORD[
Interval: IntervalNode];
SubrangeunnamedProdProcs: SubrangeNodeProcs;
BuildSubrangeunnamedProdNode: PROC[position: INT, length: INT, Interval: IntervalNode]
RETURNS[SubrangeNode];
SubrangeunnamedProdfoo: fooProcType;
SubrangeunnamedProdMakeType: MakeTypeProcType;
IntervalccProd
IntervalccProdData: TYPE = REF IntervalccProdDataBody;
IntervalccProdDataBody: TYPE = RECORD[
Bounds: BoundsNode];
IntervalccProdProcs: IntervalNodeProcs;
BuildIntervalccProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode];
IntervalccProdfoo: fooProcType;
IntervalccProdMakeTypeInterval: MakeTypeIntervalProcType;
IntervalcoProd
IntervalcoProdData: TYPE = REF IntervalcoProdDataBody;
IntervalcoProdDataBody: TYPE = RECORD[
Bounds: BoundsNode];
IntervalcoProdProcs: IntervalNodeProcs;
BuildIntervalcoProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode];
IntervalcoProdfoo: fooProcType;
IntervalcoProdMakeTypeInterval: MakeTypeIntervalProcType;
IntervalocProd
IntervalocProdData: TYPE = REF IntervalocProdDataBody;
IntervalocProdDataBody: TYPE = RECORD[
Bounds: BoundsNode];
IntervalocProdProcs: IntervalNodeProcs;
BuildIntervalocProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode];
IntervalocProdfoo: fooProcType;
IntervalocProdMakeTypeInterval: MakeTypeIntervalProcType;
IntervalooProd
IntervalooProdData: TYPE = REF IntervalooProdDataBody;
IntervalooProdDataBody: TYPE = RECORD[
Bounds: BoundsNode];
IntervalooProdProcs: IntervalNodeProcs;
BuildIntervalooProdNode: PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode];
IntervalooProdfoo: fooProcType;
IntervalooProdMakeTypeInterval: MakeTypeIntervalProcType;
BoundsProd
BoundsProdData: TYPE = REF BoundsProdDataBody;
BoundsProdDataBody: TYPE = RECORD[
Boundlower: BoundNode, Boundupper: BoundNode];
BoundsProdProcs: BoundsNodeProcs;
BuildBoundsProdNode: PROC[position: INT, length: INT, Boundlower: BoundNode, Boundupper: BoundNode]
RETURNS[BoundsNode];
BoundsProdfoo: fooProcType;
BoundsProdMakeTypeBounds: MakeTypeBoundsProcType;
BoundProd
BoundProdData: TYPE = REF BoundProdDataBody;
BoundProdDataBody: TYPE = RECORD[
Exp: ExpNode];
BoundProdProcs: BoundNodeProcs;
BuildBoundProdNode: PROC[position: INT, length: INT, Exp: ExpNode]
RETURNS[BoundNode];
BoundProdfoo: fooProcType;
BoundProdMakeTypeBound: MakeTypeBoundProcType;
MachineDependentyesProd
MachineDependentyesProdData: TYPE = REF MachineDependentyesProdDataBody;
MachineDependentyesProdDataBody: TYPE = RECORD[
];
MachineDependentyesProdProcs: MachineDependentNodeProcs;
BuildMachineDependentyesProdNode: PROC[position: INT, length: INT]
RETURNS[MachineDependentNode];
MachineDependentyesProdfoo: fooProcType;
MachineDependentnoProd
MachineDependentnoProdData: TYPE = REF MachineDependentnoProdDataBody;
MachineDependentnoProdDataBody: TYPE = RECORD[
];
MachineDependentnoProdProcs: MachineDependentNodeProcs;
BuildMachineDependentnoProdNode: PROC[position: INT, length: INT]
RETURNS[MachineDependentNode];
MachineDependentnoProdfoo: fooProcType;
MonitoredyesProd
MonitoredyesProdData: TYPE = REF MonitoredyesProdDataBody;
MonitoredyesProdDataBody: TYPE = RECORD[
];
MonitoredyesProdProcs: MonitoredNodeProcs;
BuildMonitoredyesProdNode: PROC[position: INT, length: INT]
RETURNS[MonitoredNode];
MonitoredyesProdfoo: fooProcType;
MonitorednoProd
MonitorednoProdData: TYPE = REF MonitorednoProdDataBody;
MonitorednoProdDataBody: TYPE = RECORD[
];
MonitorednoProdProcs: MonitoredNodeProcs;
BuildMonitorednoProdNode: PROC[position: INT, length: INT]
RETURNS[MonitoredNode];
MonitorednoProdfoo: fooProcType;
ElementListemptyProd
ElementListemptyProdData: TYPE = REF ElementListemptyProdDataBody;
ElementListemptyProdDataBody: TYPE = RECORD[
];
ElementListemptyProdProcs: ElementListNodeProcs;
BuildElementListemptyProdNode: PROC[position: INT, length: INT]
RETURNS[ElementListNode];
ElementListemptyProdfoo: fooProcType;
ElementListemptyProdMakeEltList: MakeEltListProcType;
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];
ElementListmoreProdfoo: fooProcType;
ElementListmoreProdMakeEltList: MakeEltListProcType;
ElementidProd
ElementidProdData: TYPE = REF ElementidProdDataBody;
ElementidProdDataBody: TYPE = RECORD[
id: idNode];
ElementidProdProcs: ElementNodeProcs;
BuildElementidProdNode: PROC[position: INT, length: INT, id: idNode]
RETURNS[ElementNode];
ElementidProdfoo: fooProcType;
ElementidProdInsertElement: InsertElementProcType;
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];
ElementidwithrepProdfoo: fooProcType;
ElementidwithrepProdInsertElement: InsertElementProcType;
ElementanonymousrepProd
ElementanonymousrepProdData: TYPE = REF ElementanonymousrepProdDataBody;
ElementanonymousrepProdDataBody: TYPE = RECORD[
Exp: ExpNode];
ElementanonymousrepProdProcs: ElementNodeProcs;
BuildElementanonymousrepProdNode: PROC[position: INT, length: INT, Exp: ExpNode]
RETURNS[ElementNode];
ElementanonymousrepProdfoo: fooProcType;
ElementanonymousrepProdInsertElement: InsertElementProcType;
RecListemptyProd
RecListemptyProdData: TYPE = REF RecListemptyProdDataBody;
RecListemptyProdDataBody: TYPE = RECORD[
];
RecListemptyProdProcs: RecListNodeProcs;
BuildRecListemptyProdNode: PROC[position: INT, length: INT]
RETURNS[RecListNode];
RecListemptyProdfoo: fooProcType;
RecListemptyProdMakeFieldList: MakeFieldListProcType;
RecListpairlistProd
RecListpairlistProdData: TYPE = REF RecListpairlistProdDataBody;
RecListpairlistProdDataBody: TYPE = RECORD[
PairList: PairListNode];
RecListpairlistProdProcs: RecListNodeProcs;
BuildRecListpairlistProdNode: PROC[position: INT, length: INT, PairList: PairListNode]
RETURNS[RecListNode];
RecListpairlistProdfoo: fooProcType;
RecListpairlistProdMakeFieldList: MakeFieldListProcType;
RecListtypelistProd
RecListtypelistProdData: TYPE = REF RecListtypelistProdDataBody;
RecListtypelistProdDataBody: TYPE = RECORD[
TypeList: TypeListNode];
RecListtypelistProdProcs: RecListNodeProcs;
BuildRecListtypelistProdNode: PROC[position: INT, length: INT, TypeList: TypeListNode]
RETURNS[RecListNode];
RecListtypelistProdfoo: fooProcType;
RecListtypelistProdMakeFieldList: MakeFieldListProcType;
PairListoneProd
PairListoneProdData: TYPE = REF PairListoneProdDataBody;
PairListoneProdDataBody: TYPE = RECORD[
PairItem: PairItemNode];
PairListoneProdProcs: PairListNodeProcs;
BuildPairListoneProdNode: PROC[position: INT, length: INT, PairItem: PairItemNode]
RETURNS[PairListNode];
PairListoneProdfoo: fooProcType;
PairListoneProdMakeNamedFieldList: MakeNamedFieldListProcType;
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];
PairListmanyProdfoo: fooProcType;
PairListmanyProdMakeNamedFieldList: MakeNamedFieldListProcType;
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];
PairItemProdfoo: fooProcType;
PairItemProdMakeNamedFieldList: MakeNamedFieldListProcType;
TypeListoneProd
TypeListoneProdData: TYPE = REF TypeListoneProdDataBody;
TypeListoneProdDataBody: TYPE = RECORD[
TypeItem: TypeItemNode];
TypeListoneProdProcs: TypeListNodeProcs;
BuildTypeListoneProdNode: PROC[position: INT, length: INT, TypeItem: TypeItemNode]
RETURNS[TypeListNode];
TypeListoneProdfoo: fooProcType;
TypeListoneProdMakeUnnamedFieldList: MakeUnnamedFieldListProcType;
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];
TypeListmanyProdfoo: fooProcType;
TypeListmanyProdMakeUnnamedFieldList: MakeUnnamedFieldListProcType;
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];
TypeItemProdfoo: fooProcType;
TypeItemProdMakeUnnamedFieldList: MakeUnnamedFieldListProcType;
END..