LocalPrincOpsTargetWorld.Mesa
Copyright Ó 1992 by Xerox Corporation. All rights reserved.
Sturgis, March 24, 1989 11:55:56 am PST
Last changed by Theimer on August 23, 1989 1:06:39 pm PDT
Started: November 5, 1988 3:31:42 pm PST
Sturgis: November 5, 1988 3:51:22 pm PST
DIRECTORY
AMEvents USING[BreakID],
AMModel USING[Section, Source],
AMTypes USING[Type, TV],
CirioTypes USING[CompilerContext, Type, Node],
Frames USING[StackOfFrames, TargetWorld],
RefTab USING[Ref],
Rope USING[ROPE];
LocalPrincOpsTargetWorld: CEDAR DEFINITIONS =
BEGIN
CC: TYPE = CirioTypes.CompilerContext;
Remark: There is only one accessable local princ ops target world, the one in which your code is running when it calls these procedures.
PrincOpsTWData: TYPE = REF PrincOpsTWDataBody;
PrincOpsTWDataBody: TYPE = MONITORED RECORD[
typeHashTable: RefTab.Ref,
zeroLengthRecordType: CirioTypes.Type,
breakSet: LocalTWBreakSet,
cc: CC];
LocalTWBreakSet: TYPE = REF LocalTWBreakSetBody;
LocalTWBreakSetBody: TYPE = RECORD[
nextCounter: CARD,
first: LocalTWBreakRcd,
last: LocalTWBreakRcd];
LocalTWBreakRcd: TYPE = REF LocalTWBreakRcdBody;
LocalTWBreakRcdBody: TYPE = RECORD[
brkIndex: CARD,
codePos: REF CodePositionInfo,
id: AMEvents.BreakID,
next: LocalTWBreakRcd];
CodePositionInfo: TYPE = RECORD[
twData: PrincOpsTWData,
section: AMModel.Section,
atExit: BOOLEAN,
amsource: AMModel.Source,
fileName: Rope.ROPE,
index: INT,
sourcePosNode: CirioTypes.Node,
codePosNode: CirioTypes.Node];
LocalTW: TYPE = RECORD[potw: PrincOpsTWData, tw: Frames.TargetWorld];
GetLocalTW: PROC[cc: CC] RETURNS[LocalTW];
CreateStack: PROC[frameTV: AMTypes.TV, potw: PrincOpsTWData] RETURNS[Frames.StackOfFrames];
CreateNodeFromRefAny: PROC[ra: REF ANY, potw: PrincOpsTWData] RETURNS[CirioTypes.Node];
Of course, this is only applicable to the local world
CreateBreakInfoFromBreakEvent: PROC[id: AMEvents.BreakID, clientData: REF, potw: PrincOpsTWData] RETURNS[CirioTypes.Node];
CreateTypeFromAMType: PROC[amType: AMTypes.Type, potw: PrincOpsTWData] RETURNS[CirioTypes.Type];
GetZeroLengthRecordType: PROC[potw: PrincOpsTWData] RETURNS[CirioTypes.Type];
CreatePrincOpsIndirectNode: PROC[tv: AMTypes.TV, targetType: CirioTypes.Type, potw: PrincOpsTWData] RETURNS[CirioTypes.Node];
END..