SaffronInsertDescriptorImpl.mesa
Copyright Ó 1987 by Xerox Corporation. All rights reserved.
Generated by BJackson.pa at April 27, 1987 11:24:11 pm PDT
using ThreeCasabaFour [1.1] of April 14, 1987 6:34:07 pm PDT
DIRECTORY
CedarBaseContext,
SaffronAG7Def,
CedarBaseMisc,
ThreeC4Support,
SaffronATDef;
SaffronInsertDescriptorImpl: CEDAR PROGRAM IMPORTS CedarBaseContext, CedarBaseMisc, ThreeC4Support EXPORTS SaffronAG7Def=
BEGIN
OPEN CedarBaseContext, SaffronAG7Def, CedarBaseMisc, ThreeC4Support, SaffronATDef;
IdentidProdInsertDescriptor: PUBLIC PROC[ref: REF ANY, descriptor: Descriptor, localContext: LocalContext] RETURNS[temp0: LocalContext] =
BEGIN
tree: IdentNode← NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData: IdentidProdData ← NARROW[tree.data];
BEGIN
assert: BOOLEAN;
localContext1: LocalContext;
ok: BOOLEAN;
[localContext1, ok] ← InsertContext[localContext, treeData.id, descriptor];
assert ← Assert[ok, "multiply defined identifier", BotchAction.quit];
temp0 ← localContext1;
END;
END
END;
IdentListmanyProdInsertDescriptor: PUBLIC PROC[ref: REF ANY, descriptor: Descriptor, localContext: LocalContext] RETURNS[temp0: LocalContext] =
BEGIN
tree: IdentListNode← NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData: IdentListmanyProdData ← NARROW[tree.data];
BEGIN
localContext2: LocalContext;
localContext1: LocalContext;
localContext1 ← treeData.IdentListhead.procs.InsertDescriptor[treeData.IdentListhead, descriptor, localContext];
localContext2 ← treeData.IdentListtail.procs.InsertDescriptor[treeData.IdentListtail, descriptor, localContext1];
temp0 ← localContext2;
END;
END
END;
IdentListoneProdInsertDescriptor: PUBLIC PROC[ref: REF ANY, descriptor: Descriptor, localContext: LocalContext] RETURNS[temp0: LocalContext] =
BEGIN
tree: IdentListNode← NARROW[ref];
BEGIN
ENABLE ThreeC4Support.GetSourceInfo => RESUME[tree.position, tree.length];
treeData: IdentListoneProdData ← NARROW[tree.data];
temp0 ← treeData.Ident.procs.InsertDescriptor[treeData.Ident, descriptor, localContext];
END
END;
END..