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..