SaffronMakeNamedFieldListImpl.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Generated by BJackson.pa at April 27, 1987 11:24:12 pm PDT
using ThreeCasabaFour [1.1] of April 14, 1987 6:34:07 pm PDT
DIRECTORY
CedarBaseContext,
SaffronAG6Def,
ThreeC4Support,
SaffronATDef,
CedarBaseType;
SaffronMakeNamedFieldListImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, CedarBaseType EXPORTS SaffronAG6Def=
BEGIN
OPEN CedarBaseContext, SaffronAG6Def, ThreeC4Support, SaffronATDef, CedarBaseType;
PairItemProdMakeNamedFieldList: PUBLIC PROC[ref: REF ANY, namedFieldList: NamedFieldList, localContext: LocalContext, ribContext: RibContext, typeGraph: TypeGraph] RETURNS[temp0: NamedFieldList, temp1: LocalContext, temp2: TypeGraph] =
BEGIN
tree: PairItemNode← NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData: PairItemProdData ← NARROW[tree.data];
BEGIN
namedFieldList1: NamedFieldList;
typeIndex: TypeIndex;
localContext1: LocalContext;
typeGraph1: TypeGraph;
[typeIndex, localContext1, typeGraph1] ← treeData.TypeExp.procs.MakeType[treeData.TypeExp, localContext, ribContext, typeGraph, UndefinedTypeIndex[]];
namedFieldList1 ← treeData.IdentList.procs.AddToNamedFieldList[treeData.IdentList, typeIndex, namedFieldList];
temp2 ← typeGraph1;
temp1 ← localContext1;
temp0 ← namedFieldList1;
END;
END
END;
PairListmanyProdMakeNamedFieldList: PUBLIC PROC[ref: REF ANY, namedFieldList: NamedFieldList, localContext: LocalContext, ribContext: RibContext, typeGraph: TypeGraph] RETURNS[temp0: NamedFieldList, temp1: LocalContext, temp2: TypeGraph] =
BEGIN
tree: PairListNode← NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData: PairListmanyProdData ← NARROW[tree.data];
BEGIN
namedFieldList2: NamedFieldList;
localContext2: LocalContext;
typeGraph2: TypeGraph;
namedFieldList1: NamedFieldList;
localContext1: LocalContext;
typeGraph1: TypeGraph;
[namedFieldList1, localContext1, typeGraph1] ← treeData.PairListhead.procs.MakeNamedFieldList[treeData.PairListhead, namedFieldList, localContext, ribContext, typeGraph];
[namedFieldList2, localContext2, typeGraph2] ← treeData.PairListtail.procs.MakeNamedFieldList[treeData.PairListtail, namedFieldList1, localContext1, ribContext, typeGraph1];
temp2 ← typeGraph2;
temp1 ← localContext2;
temp0 ← namedFieldList2;
END;
END
END;
PairListoneProdMakeNamedFieldList: PUBLIC PROC[ref: REF ANY, namedFieldList: NamedFieldList, localContext: LocalContext, ribContext: RibContext, typeGraph: TypeGraph] RETURNS[temp0: NamedFieldList, temp1: LocalContext, temp2: TypeGraph] =
BEGIN
tree: PairListNode← NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData: PairListoneProdData ← NARROW[tree.data];
[temp0, temp1, temp2] ← treeData.PairItem.procs.MakeNamedFieldList[treeData.PairItem, namedFieldList, localContext, ribContext, typeGraph];
END
END;
END..