-- SaffronAddNamesToFieldListImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 6:29:58 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG7aDef, SaffronAG7bDef, SaffronGenericDef, ThreeC4Support, SaffronBaseDef, SaffronATDef; SaffronAddNamesToFieldListImpl: CEDAR PROGRAM IMPORTS ThreeC4Support, SaffronBaseDef, SaffronATDef EXPORTS SaffronAG7aDef, SaffronAG7bDef= BEGIN OPEN SaffronAG7aDef, SaffronAG7bDef, SaffronGenericDef, ThreeC4Support, SaffronBaseDef, SaffronATDef; IdentListmanyProdAddNamesToSequence: PUBLIC PROC[ref: REF ANY, nameSequence: NameSequenceNode] RETURNS[temp0: NameSequenceNode] = BEGIN tree: IdentListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentListmanyProdData _ NARROW[tree.data]; BEGIN nameSequence1: NameSequenceNode; nameSequence1 _ treeData.IdentListtail.procs.AddNamesToSequence[treeData.IdentListtail, nameSequence]; temp0 _ treeData.IdentListhead.procs.AddNamesToSequence[treeData.IdentListhead, nameSequence1]; END; END END; IdentListmanyProdMakeNameSequence: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: NameSequenceNode] = BEGIN tree: IdentListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentListmanyProdData _ NARROW[tree.data]; BEGIN nameSequence1: NameSequenceNode; nameSequence: NameSequenceNode; nameSequence _ EmptyNameSequence[]; nameSequence1 _ treeData.IdentListtail.procs.AddNamesToSequence[treeData.IdentListtail, nameSequence]; temp0 _ treeData.IdentListhead.procs.AddNamesToSequence[treeData.IdentListhead, nameSequence1]; END; END END; IdentListmanyProdAddNamesToFieldList: PUBLIC PROC[ref: REF ANY, accessVal: AccessValNode, tgn: TypeGraphNodeNode, defaultExp: DefaultExpNode, fieldList: FieldListNode] RETURNS[temp0: FieldListNode] = BEGIN tree: IdentListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentListmanyProdData _ NARROW[tree.data]; BEGIN fieldList1: FieldListNode; fieldList1 _ treeData.IdentListhead.procs.AddNamesToFieldList[treeData.IdentListhead, accessVal, tgn, defaultExp, fieldList]; temp0 _ treeData.IdentListtail.procs.AddNamesToFieldList[treeData.IdentListtail, accessVal, tgn, defaultExp, fieldList1]; END; END END; IdentListoneProdAddNamesToSequence: PUBLIC PROC[ref: REF ANY, nameSequence: NameSequenceNode] RETURNS[temp0: NameSequenceNode] = BEGIN tree: IdentListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentListoneProdData _ NARROW[tree.data]; temp0 _ treeData.Ident.procs.AddNamesToSequence[treeData.Ident, nameSequence]; END END; IdentListoneProdMakeNameSequence: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: NameSequenceNode] = BEGIN tree: IdentListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentListoneProdData _ NARROW[tree.data]; BEGIN nameSequence: NameSequenceNode; nameSequence _ EmptyNameSequence[]; temp0 _ treeData.Ident.procs.AddNamesToSequence[treeData.Ident, nameSequence]; END; END END; IdentListoneProdAddNamesToFieldList: PUBLIC PROC[ref: REF ANY, accessVal: AccessValNode, tgn: TypeGraphNodeNode, defaultExp: DefaultExpNode, fieldList: FieldListNode] RETURNS[temp0: FieldListNode] = BEGIN tree: IdentListNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentListoneProdData _ NARROW[tree.data]; temp0 _ treeData.Ident.procs.AddNamesToFieldList[treeData.Ident, accessVal, tgn, defaultExp, fieldList]; END END; IdentidProdAddNamesToSequence: PUBLIC PROC[ref: REF ANY, nameSequence: NameSequenceNode] RETURNS[temp0: NameSequenceNode] = BEGIN tree: IdentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentidProdData _ NARROW[tree.data]; temp0 _ InsertNameOnNameSequence[treeData.Id, nameSequence]; END END; IdentidProdGetIdentInfo: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: IdNode, temp1: PositionValNode] = BEGIN tree: IdentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentidProdData _ NARROW[tree.data]; temp1 _ NullPosition[]; temp0 _ treeData.Id; END END; IdentidProdAddNamesToFieldList: PUBLIC PROC[ref: REF ANY, accessVal: AccessValNode, tgn: TypeGraphNodeNode, defaultExp: DefaultExpNode, fieldList: FieldListNode] RETURNS[temp0: FieldListNode] = BEGIN tree: IdentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentidProdData _ NARROW[tree.data]; BEGIN field: FieldNode; field _ CreateNamedField[treeData.Id, NullPosition[], accessVal, tgn, defaultExp]; temp0 _ AppendFieldToFieldList[fieldList, field]; END; END END; IdentidpositionProdAddNamesToSequence: PUBLIC PROC[ref: REF ANY, nameSequence: NameSequenceNode] RETURNS[temp0: NameSequenceNode] = BEGIN tree: IdentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentidpositionProdData _ NARROW[tree.data]; BEGIN x: BOOLEAN; x _ Error["Is Position field valid in a ModuleName list"]; temp0 _ InsertNameOnNameSequence[treeData.Id, nameSequence]; END; END END; IdentidpositionProdGetIdentInfo: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: IdNode, temp1: PositionValNode] = BEGIN tree: IdentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentidpositionProdData _ NARROW[tree.data]; temp1 _ treeData.Position.procs.GetPositionVal[treeData.Position]; temp0 _ treeData.Id; END END; IdentidpositionProdAddNamesToFieldList: PUBLIC PROC[ref: REF ANY, accessVal: AccessValNode, tgn: TypeGraphNodeNode, defaultExp: DefaultExpNode, fieldList: FieldListNode] RETURNS[temp0: FieldListNode] = BEGIN tree: IdentNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: IdentidpositionProdData _ NARROW[tree.data]; BEGIN field: FieldNode; field _ CreateNamedField[treeData.Id, treeData.Position.procs.GetPositionVal[treeData.Position], accessVal, tgn, defaultExp]; temp0 _ AppendFieldToFieldList[fieldList, field]; END; END END; PositionProdGetPositionVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: PositionValNode] = BEGIN tree: PositionNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: PositionProdData _ NARROW[tree.data]; BEGIN boundsVal: BoundsValNode; boundsVal _ treeData.OptBits.procs.GetBoundsVal[treeData.OptBits]; temp0 _ PositionValFun[MakeUnparsedValue[treeData.Exp], boundsVal]; END; END END; OptBitsabsentProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: OptBitsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; temp0 _ NullBounds[]; END END; OptBitspresentProdGetBoundsVal: PUBLIC PROC[ref: REF ANY] RETURNS[temp0: BoundsValNode] = BEGIN tree: OptBitsNode_ NARROW[ref]; BEGIN ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length]; treeData: OptBitspresentProdData _ NARROW[tree.data]; temp1: ValueNode; temp2: ValueNode; [temp1, temp2] _ treeData.Bounds.procs.GetLowerAndUpper[treeData.Bounds]; temp0 _ BoundsValFun["[", temp1, temp2, "]"]; END END; END..