SaffronAG6Impl.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Generated by BJackson.pa at April 27, 1987 10:51:19 pm PDT
using ThreeCasabaFour [1.1] of April 14, 1987 6:34:07 pm PDT
DIRECTORY
SaffronAG6Def,
SaffronGenericDef,
SaffronATDef;
SaffronAG6Impl: CEDAR PROGRAM IMPORTS SaffronAG6Def EXPORTS SaffronAG6Def=
BEGIN
OPEN SaffronAG6Def, SaffronGenericDef, SaffronATDef;
TypeExptypeidProd
TypeExptypeidProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExptypeidProdfoo, TypeExptypeidProdMakeType]];
BuildTypeExptypeidProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExptypeidProdData ←
NEW[TypeExptypeidProdDataBody←[
TypeId]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExptypeidProdProcs, data]]];
END;
TypeExpsubrangeProd
TypeExpsubrangeProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpsubrangeProdfoo, TypeExpsubrangeProdMakeType]];
BuildTypeExpsubrangeProdNode: PUBLIC PROC[position: INT, length: INT, Subrange: SubrangeNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpsubrangeProdData ←
NEW[TypeExpsubrangeProdDataBody←[
Subrange]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpsubrangeProdProcs, data]]];
END;
TypeExpenumProd
TypeExpenumProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpenumProdfoo, TypeExpenumProdMakeType]];
BuildTypeExpenumProdNode: PUBLIC PROC[position: INT, length: INT, MachineDependent: MachineDependentNode, ElementList: ElementListNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpenumProdData ←
NEW[TypeExpenumProdDataBody←[
MachineDependent, ElementList]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpenumProdProcs, data]]];
END;
TypeExprecordProd
TypeExprecordProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExprecordProdfoo, TypeExprecordProdMakeType]];
BuildTypeExprecordProdNode: PUBLIC PROC[position: INT, length: INT, MachineDependent: MachineDependentNode, Monitored: MonitoredNode, RecList: RecListNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExprecordProdData ←
NEW[TypeExprecordProdDataBody←[
MachineDependent, Monitored, RecList]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExprecordProdProcs, data]]];
END;
TypeExppointerProd
TypeExppointerProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExppointerProdfoo, TypeExppointerProdMakeType]];
BuildTypeExppointerProdNode: PUBLIC PROC[position: INT, length: INT, Ordered: OrderedNode, Base: BaseNode, PointerType: PointerTypeNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExppointerProdData ←
NEW[TypeExppointerProdDataBody←[
Ordered, Base, PointerType]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExppointerProdProcs, data]]];
END;
TypeExpvarProd
TypeExpvarProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpvarProdfoo, TypeExpvarProdMakeType]];
BuildTypeExpvarProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpvarProdData ←
NEW[TypeExpvarProdDataBody←[
TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpvarProdProcs, data]]];
END;
TypeExprefProd
TypeExprefProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExprefProdfoo, TypeExprefProdMakeType]];
BuildTypeExprefProdNode: PUBLIC PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExprefProdData ←
NEW[TypeExprefProdDataBody←[
ReadOnly, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExprefProdProcs, data]]];
END;
TypeExprefanyProd
TypeExprefanyProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExprefanyProdfoo, TypeExprefanyProdMakeType]];
BuildTypeExprefanyProdNode: PUBLIC PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExprefanyProdData ←
NEW[TypeExprefanyProdDataBody←[
ReadOnly]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExprefanyProdProcs, data]]];
END;
TypeExprefunspecifiedProd
TypeExprefunspecifiedProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExprefunspecifiedProdfoo, TypeExprefunspecifiedProdMakeType]];
BuildTypeExprefunspecifiedProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[TypeExpNode] =
BEGIN
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExprefunspecifiedProdProcs, NIL]]];
END;
TypeExplistProd
TypeExplistProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExplistProdfoo, TypeExplistProdMakeType]];
BuildTypeExplistProdNode: PUBLIC PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExplistProdData ←
NEW[TypeExplistProdDataBody←[
ReadOnly, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExplistProdProcs, data]]];
END;
TypeExparrayProd
TypeExparrayProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExparrayProdfoo, TypeExparrayProdMakeType]];
BuildTypeExparrayProdNode: PUBLIC PROC[position: INT, length: INT, Packed: PackedNode, OptType: OptTypeNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExparrayProdData ←
NEW[TypeExparrayProdDataBody←[
Packed, OptType, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExparrayProdProcs, data]]];
END;
TypeExpdescriptorProd
TypeExpdescriptorProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpdescriptorProdfoo, TypeExpdescriptorProdMakeType]];
BuildTypeExpdescriptorProdNode: PUBLIC PROC[position: INT, length: INT, ReadOnly: ReadOnlyNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpdescriptorProdData ←
NEW[TypeExpdescriptorProdDataBody←[
ReadOnly, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpdescriptorProdProcs, data]]];
END;
TypeExptransferProd
TypeExptransferProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExptransferProdfoo, TypeExptransferProdMakeType]];
BuildTypeExptransferProdNode: PUBLIC PROC[position: INT, length: INT, Safe: SafeNode, TransferMode: TransferModeNode, Arguments: ArgumentsNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExptransferProdData ←
NEW[TypeExptransferProdDataBody←[
Safe, TransferMode, Arguments]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExptransferProdProcs, data]]];
END;
TypeExprelativeProd
TypeExprelativeProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExprelativeProdfoo, TypeExprelativeProdMakeType]];
BuildTypeExprelativeProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExprelativeProdData ←
NEW[TypeExprelativeProdDataBody←[
TypeId, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExprelativeProdProcs, data]]];
END;
TypeExpzoneProd
TypeExpzoneProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpzoneProdfoo, TypeExpzoneProdMakeType]];
BuildTypeExpzoneProdNode: PUBLIC PROC[position: INT, length: INT, Uncounted: UncountedNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpzoneProdData ←
NEW[TypeExpzoneProdDataBody←[
Uncounted]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpzoneProdProcs, data]]];
END;
TypeExplongProd
TypeExplongProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExplongProdfoo, TypeExplongProdMakeType]];
BuildTypeExplongProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExplongProdData ←
NEW[TypeExplongProdDataBody←[
TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExplongProdProcs, data]]];
END;
TypeExpframeProd
TypeExpframeProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpframeProdfoo, TypeExpframeProdMakeType]];
BuildTypeExpframeProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpframeProdData ←
NEW[TypeExpframeProdDataBody←[
id]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpframeProdProcs, data]]];
END;
TypeExppaintedProd
TypeExppaintedProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExppaintedProdfoo, TypeExppaintedProdMakeType]];
BuildTypeExppaintedProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExppaintedProdData ←
NEW[TypeExppaintedProdDataBody←[
TypeId, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExppaintedProdProcs, data]]];
END;
TypeExptypeapplyProd
TypeExptypeapplyProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExptypeapplyProdfoo, TypeExptypeapplyProdMakeType]];
BuildTypeExptypeapplyProdNode: PUBLIC PROC[position: INT, length: INT, TypeApply: TypeApplyNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExptypeapplyProdData ←
NEW[TypeExptypeapplyProdDataBody←[
TypeApply]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExptypeapplyProdProcs, data]]];
END;
TypeExpunionProd
TypeExpunionProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpunionProdfoo, TypeExpunionProdMakeType]];
BuildTypeExpunionProdNode: PUBLIC PROC[position: INT, length: INT, Tag: TagNode, VariantList: VariantListNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpunionProdData ←
NEW[TypeExpunionProdDataBody←[
Tag, VariantList]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpunionProdProcs, data]]];
END;
TypeExpsequenceProd
TypeExpsequenceProdProcs: PUBLIC TypeExpNodeProcs ←
NEW[TypeExpNodeProcsBody ← [TypeExpsequenceProdfoo, TypeExpsequenceProdMakeType]];
BuildTypeExpsequenceProdNode: PUBLIC PROC[position: INT, length: INT, Packed: PackedNode, Tag: TagNode, TypeExp: TypeExpNode]
RETURNS[TypeExpNode] =
BEGIN
data: TypeExpsequenceProdData ←
NEW[TypeExpsequenceProdDataBody←[
Packed, Tag, TypeExp]];
RETURN[NEW[TypeExpNodeBody←[position, length, TypeExpsequenceProdProcs, data]]];
END;
TypeIdidProd
TypeIdidProdProcs: PUBLIC TypeIdNodeProcs ←
NEW[TypeIdNodeProcsBody ← [TypeIdidProdfoo, TypeIdidProdMakeType]];
BuildTypeIdidProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode]
RETURNS[TypeIdNode] =
BEGIN
data: TypeIdidProdData ←
NEW[TypeIdidProdDataBody←[
id]];
RETURN[NEW[TypeIdNodeBody←[position, length, TypeIdidProdProcs, data]]];
END;
TypeIdqualifierProd
TypeIdqualifierProdProcs: PUBLIC TypeIdNodeProcs ←
NEW[TypeIdNodeProcsBody ← [TypeIdqualifierProdfoo, TypeIdqualifierProdMakeType]];
BuildTypeIdqualifierProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode, id: idNode]
RETURNS[TypeIdNode] =
BEGIN
data: TypeIdqualifierProdData ←
NEW[TypeIdqualifierProdDataBody←[
TypeId, id]];
RETURN[NEW[TypeIdNodeBody←[position, length, TypeIdqualifierProdProcs, data]]];
END;
SubrangenamedProd
SubrangenamedProdProcs: PUBLIC SubrangeNodeProcs ←
NEW[SubrangeNodeProcsBody ← [SubrangenamedProdfoo, SubrangenamedProdMakeType]];
BuildSubrangenamedProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode, Interval: IntervalNode]
RETURNS[SubrangeNode] =
BEGIN
data: SubrangenamedProdData ←
NEW[SubrangenamedProdDataBody←[
TypeId, Interval]];
RETURN[NEW[SubrangeNodeBody←[position, length, SubrangenamedProdProcs, data]]];
END;
SubrangeunnamedProd
SubrangeunnamedProdProcs: PUBLIC SubrangeNodeProcs ←
NEW[SubrangeNodeProcsBody ← [SubrangeunnamedProdfoo, SubrangeunnamedProdMakeType]];
BuildSubrangeunnamedProdNode: PUBLIC PROC[position: INT, length: INT, Interval: IntervalNode]
RETURNS[SubrangeNode] =
BEGIN
data: SubrangeunnamedProdData ←
NEW[SubrangeunnamedProdDataBody←[
Interval]];
RETURN[NEW[SubrangeNodeBody←[position, length, SubrangeunnamedProdProcs, data]]];
END;
IntervalccProd
IntervalccProdProcs: PUBLIC IntervalNodeProcs ←
NEW[IntervalNodeProcsBody ← [IntervalccProdfoo, IntervalccProdMakeTypeInterval]];
BuildIntervalccProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode] =
BEGIN
data: IntervalccProdData ←
NEW[IntervalccProdDataBody←[
Bounds]];
RETURN[NEW[IntervalNodeBody←[position, length, IntervalccProdProcs, data]]];
END;
IntervalcoProd
IntervalcoProdProcs: PUBLIC IntervalNodeProcs ←
NEW[IntervalNodeProcsBody ← [IntervalcoProdfoo, IntervalcoProdMakeTypeInterval]];
BuildIntervalcoProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode] =
BEGIN
data: IntervalcoProdData ←
NEW[IntervalcoProdDataBody←[
Bounds]];
RETURN[NEW[IntervalNodeBody←[position, length, IntervalcoProdProcs, data]]];
END;
IntervalocProd
IntervalocProdProcs: PUBLIC IntervalNodeProcs ←
NEW[IntervalNodeProcsBody ← [IntervalocProdfoo, IntervalocProdMakeTypeInterval]];
BuildIntervalocProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode] =
BEGIN
data: IntervalocProdData ←
NEW[IntervalocProdDataBody←[
Bounds]];
RETURN[NEW[IntervalNodeBody←[position, length, IntervalocProdProcs, data]]];
END;
IntervalooProd
IntervalooProdProcs: PUBLIC IntervalNodeProcs ←
NEW[IntervalNodeProcsBody ← [IntervalooProdfoo, IntervalooProdMakeTypeInterval]];
BuildIntervalooProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode]
RETURNS[IntervalNode] =
BEGIN
data: IntervalooProdData ←
NEW[IntervalooProdDataBody←[
Bounds]];
RETURN[NEW[IntervalNodeBody←[position, length, IntervalooProdProcs, data]]];
END;
BoundsProd
BoundsProdProcs: PUBLIC BoundsNodeProcs ←
NEW[BoundsNodeProcsBody ← [BoundsProdfoo, BoundsProdMakeTypeBounds]];
BuildBoundsProdNode: PUBLIC PROC[position: INT, length: INT, Boundlower: BoundNode, Boundupper: BoundNode]
RETURNS[BoundsNode] =
BEGIN
data: BoundsProdData ←
NEW[BoundsProdDataBody←[
Boundlower, Boundupper]];
RETURN[NEW[BoundsNodeBody←[position, length, BoundsProdProcs, data]]];
END;
BoundProd
BoundProdProcs: PUBLIC BoundNodeProcs ←
NEW[BoundNodeProcsBody ← [BoundProdfoo, BoundProdMakeTypeBound]];
BuildBoundProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode]
RETURNS[BoundNode] =
BEGIN
data: BoundProdData ←
NEW[BoundProdDataBody←[
Exp]];
RETURN[NEW[BoundNodeBody←[position, length, BoundProdProcs, data]]];
END;
MachineDependentyesProd
MachineDependentyesProdProcs: PUBLIC MachineDependentNodeProcs ←
NEW[MachineDependentNodeProcsBody ← [MachineDependentyesProdfoo]];
BuildMachineDependentyesProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[MachineDependentNode] =
BEGIN
RETURN[NEW[MachineDependentNodeBody←[position, length, MachineDependentyesProdProcs, NIL]]];
END;
MachineDependentnoProd
MachineDependentnoProdProcs: PUBLIC MachineDependentNodeProcs ←
NEW[MachineDependentNodeProcsBody ← [MachineDependentnoProdfoo]];
BuildMachineDependentnoProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[MachineDependentNode] =
BEGIN
RETURN[NEW[MachineDependentNodeBody←[position, length, MachineDependentnoProdProcs, NIL]]];
END;
MonitoredyesProd
MonitoredyesProdProcs: PUBLIC MonitoredNodeProcs ←
NEW[MonitoredNodeProcsBody ← [MonitoredyesProdfoo]];
BuildMonitoredyesProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[MonitoredNode] =
BEGIN
RETURN[NEW[MonitoredNodeBody←[position, length, MonitoredyesProdProcs, NIL]]];
END;
MonitorednoProd
MonitorednoProdProcs: PUBLIC MonitoredNodeProcs ←
NEW[MonitoredNodeProcsBody ← [MonitorednoProdfoo]];
BuildMonitorednoProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[MonitoredNode] =
BEGIN
RETURN[NEW[MonitoredNodeBody←[position, length, MonitorednoProdProcs, NIL]]];
END;
ElementListemptyProd
ElementListemptyProdProcs: PUBLIC ElementListNodeProcs ←
NEW[ElementListNodeProcsBody ← [ElementListemptyProdfoo, ElementListemptyProdMakeEltList]];
BuildElementListemptyProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[ElementListNode] =
BEGIN
RETURN[NEW[ElementListNodeBody←[position, length, ElementListemptyProdProcs, NIL]]];
END;
ElementListmoreProd
ElementListmoreProdProcs: PUBLIC ElementListNodeProcs ←
NEW[ElementListNodeProcsBody ← [ElementListmoreProdfoo, ElementListmoreProdMakeEltList]];
BuildElementListmoreProdNode: PUBLIC PROC[position: INT, length: INT, ElementList: ElementListNode, Element: ElementNode]
RETURNS[ElementListNode] =
BEGIN
data: ElementListmoreProdData ←
NEW[ElementListmoreProdDataBody←[
ElementList, Element]];
RETURN[NEW[ElementListNodeBody←[position, length, ElementListmoreProdProcs, data]]];
END;
ElementidProd
ElementidProdProcs: PUBLIC ElementNodeProcs ←
NEW[ElementNodeProcsBody ← [ElementidProdfoo, ElementidProdInsertElement]];
BuildElementidProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode]
RETURNS[ElementNode] =
BEGIN
data: ElementidProdData ←
NEW[ElementidProdDataBody←[
id]];
RETURN[NEW[ElementNodeBody←[position, length, ElementidProdProcs, data]]];
END;
ElementidwithrepProd
ElementidwithrepProdProcs: PUBLIC ElementNodeProcs ←
NEW[ElementNodeProcsBody ← [ElementidwithrepProdfoo, ElementidwithrepProdInsertElement]];
BuildElementidwithrepProdNode: PUBLIC PROC[position: INT, length: INT, id: idNode, Exp: ExpNode]
RETURNS[ElementNode] =
BEGIN
data: ElementidwithrepProdData ←
NEW[ElementidwithrepProdDataBody←[
id, Exp]];
RETURN[NEW[ElementNodeBody←[position, length, ElementidwithrepProdProcs, data]]];
END;
ElementanonymousrepProd
ElementanonymousrepProdProcs: PUBLIC ElementNodeProcs ←
NEW[ElementNodeProcsBody ← [ElementanonymousrepProdfoo, ElementanonymousrepProdInsertElement]];
BuildElementanonymousrepProdNode: PUBLIC PROC[position: INT, length: INT, Exp: ExpNode]
RETURNS[ElementNode] =
BEGIN
data: ElementanonymousrepProdData ←
NEW[ElementanonymousrepProdDataBody←[
Exp]];
RETURN[NEW[ElementNodeBody←[position, length, ElementanonymousrepProdProcs, data]]];
END;
RecListemptyProd
RecListemptyProdProcs: PUBLIC RecListNodeProcs ←
NEW[RecListNodeProcsBody ← [RecListemptyProdfoo, RecListemptyProdMakeFieldList]];
BuildRecListemptyProdNode: PUBLIC PROC[position: INT, length: INT]
RETURNS[RecListNode] =
BEGIN
RETURN[NEW[RecListNodeBody←[position, length, RecListemptyProdProcs, NIL]]];
END;
RecListpairlistProd
RecListpairlistProdProcs: PUBLIC RecListNodeProcs ←
NEW[RecListNodeProcsBody ← [RecListpairlistProdfoo, RecListpairlistProdMakeFieldList]];
BuildRecListpairlistProdNode: PUBLIC PROC[position: INT, length: INT, PairList: PairListNode]
RETURNS[RecListNode] =
BEGIN
data: RecListpairlistProdData ←
NEW[RecListpairlistProdDataBody←[
PairList]];
RETURN[NEW[RecListNodeBody←[position, length, RecListpairlistProdProcs, data]]];
END;
RecListtypelistProd
RecListtypelistProdProcs: PUBLIC RecListNodeProcs ←
NEW[RecListNodeProcsBody ← [RecListtypelistProdfoo, RecListtypelistProdMakeFieldList]];
BuildRecListtypelistProdNode: PUBLIC PROC[position: INT, length: INT, TypeList: TypeListNode]
RETURNS[RecListNode] =
BEGIN
data: RecListtypelistProdData ←
NEW[RecListtypelistProdDataBody←[
TypeList]];
RETURN[NEW[RecListNodeBody←[position, length, RecListtypelistProdProcs, data]]];
END;
PairListoneProd
PairListoneProdProcs: PUBLIC PairListNodeProcs ←
NEW[PairListNodeProcsBody ← [PairListoneProdfoo, PairListoneProdMakeNamedFieldList]];
BuildPairListoneProdNode: PUBLIC PROC[position: INT, length: INT, PairItem: PairItemNode]
RETURNS[PairListNode] =
BEGIN
data: PairListoneProdData ←
NEW[PairListoneProdDataBody←[
PairItem]];
RETURN[NEW[PairListNodeBody←[position, length, PairListoneProdProcs, data]]];
END;
PairListmanyProd
PairListmanyProdProcs: PUBLIC PairListNodeProcs ←
NEW[PairListNodeProcsBody ← [PairListmanyProdfoo, PairListmanyProdMakeNamedFieldList]];
BuildPairListmanyProdNode: PUBLIC PROC[position: INT, length: INT, PairListhead: PairListNode, PairListtail: PairListNode]
RETURNS[PairListNode] =
BEGIN
data: PairListmanyProdData ←
NEW[PairListmanyProdDataBody←[
PairListhead, PairListtail]];
RETURN[NEW[PairListNodeBody←[position, length, PairListmanyProdProcs, data]]];
END;
PairItemProd
PairItemProdProcs: PUBLIC PairItemNodeProcs ←
NEW[PairItemNodeProcsBody ← [PairItemProdfoo, PairItemProdMakeNamedFieldList]];
BuildPairItemProdNode: PUBLIC PROC[position: INT, length: INT, IdentList: IdentListNode, Access: AccessNode, TypeExp: TypeExpNode, Default: DefaultNode]
RETURNS[PairItemNode] =
BEGIN
data: PairItemProdData ←
NEW[PairItemProdDataBody←[
IdentList, Access, TypeExp, Default]];
RETURN[NEW[PairItemNodeBody←[position, length, PairItemProdProcs, data]]];
END;
TypeListoneProd
TypeListoneProdProcs: PUBLIC TypeListNodeProcs ←
NEW[TypeListNodeProcsBody ← [TypeListoneProdfoo, TypeListoneProdMakeUnnamedFieldList]];
BuildTypeListoneProdNode: PUBLIC PROC[position: INT, length: INT, TypeItem: TypeItemNode]
RETURNS[TypeListNode] =
BEGIN
data: TypeListoneProdData ←
NEW[TypeListoneProdDataBody←[
TypeItem]];
RETURN[NEW[TypeListNodeBody←[position, length, TypeListoneProdProcs, data]]];
END;
TypeListmanyProd
TypeListmanyProdProcs: PUBLIC TypeListNodeProcs ←
NEW[TypeListNodeProcsBody ← [TypeListmanyProdfoo, TypeListmanyProdMakeUnnamedFieldList]];
BuildTypeListmanyProdNode: PUBLIC PROC[position: INT, length: INT, TypeListhead: TypeListNode, TypeListtail: TypeListNode]
RETURNS[TypeListNode] =
BEGIN
data: TypeListmanyProdData ←
NEW[TypeListmanyProdDataBody←[
TypeListhead, TypeListtail]];
RETURN[NEW[TypeListNodeBody←[position, length, TypeListmanyProdProcs, data]]];
END;
TypeItemProd
TypeItemProdProcs: PUBLIC TypeItemNodeProcs ←
NEW[TypeItemNodeProcsBody ← [TypeItemProdfoo, TypeItemProdMakeUnnamedFieldList]];
BuildTypeItemProdNode: PUBLIC PROC[position: INT, length: INT, TypeExp: TypeExpNode, Default: DefaultNode]
RETURNS[TypeItemNode] =
BEGIN
data: TypeItemProdData ←
NEW[TypeItemProdDataBody←[
TypeExp, Default]];
RETURN[NEW[TypeItemNodeBody←[position, length, TypeItemProdProcs, data]]];
END;
END..