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