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