StackCirioPrivate.mesa
Copyright Ó 1990, 1991, 1992 by Xerox Corporation. All rights reserved.
Sturgis, March 30, 1990 3:11 pm PST
Last tweaked by Mike Spreitzer on July 22, 1992 8:27 pm PDT
Coolidge, July 27, 1990 9:13:45 am PDT
Philip James, March 17, 1992 2:00 pm PST
Laurie Horton, April 9, 1992 2:19 pm PDT
Udagawa, February 12, 1991 6:59 pm PST
DIRECTORY CCTypes, CirioBreakAccess, CirioNubAccess, CirioTargets, CirioTypes, IO, LoadStateAccess, NewAmpersandProcs, NewRMTW, OneCasabaParser, PFSNames, RCTW, Rope, SourceFileOpsExtras, StackCirio, SystemInterface;
StackCirioPrivate: CEDAR DEFINITIONS =
BEGIN OPEN LSA:LoadStateAccess;
Types
ROPE: TYPE ~ Rope.ROPE;
PATH: TYPE ~ PFSNames.PATH;
Language: TYPE ~ StackCirio.Language;
CC: TYPE = CirioTypes.CompilerContext;
Stack: TYPE = REF StackBody;
StackBody: PUBLIC TYPE = MONITORED RECORD[
tsOut: IO.STREAM, -- WARNING: this field is very transient. It is only valid during an interpretation of an expression, and was placed here for the convenience of ampersand routines and (local target wrld) user routines called through the interpreter.
ampersandContext1: CirioTypes.Node,
ampersandContext2: CirioTypes.Node,
cc: CC,
rmtw: NewRMTW.RemoteMimosaTargetWorld,
cedarModules: NewRMTW.CedarModuleSet,
nub: CirioNubAccess.Handle,
target: CirioTargets.Target,
fileSet: SystemInterface.FileSet,
breaks: CirioBreakAccess.CirioBreakSet,
lsh: LSA.LoadStateHandle,
aph: NewAmpersandProcs.Handle,
cParserTable: OneCasabaParser.ParserTable,
dummyNode: CirioTypes.Node, -- WE PROBABLY have to put a real node of some sort here for subsequent call on CreateCompoundNameScope during handling of ampersand line
hotFramePC: CARD,
hotFrameSP: CARD,
hotFrame: BasicFrameInfo,
currentFrame: REF FrameData,
ShowSource: SourceFileOpsExtras.ShowProc,
desiredLang: Language];
FrameData: TYPE = RECORD[
basic: BasicFrameInfo,
basicPCInfo: REF LSA.BasicPCInfo,
ledo: REF LSA.LoadedModuleInfo,
kind: ATOM, -- will be NIL until determined
loadedCedarModule: REF NewRMTW.LoadedModuleInfo,
rawFrameInfo: REF NewRMTW.RawFrameInfo,
cedarFrameNode: REF NewRMTW.FrameNodeInfo,
cFrameNode: REF RCTW.FrameNodeInfo];
BasicFrameInfo: TYPE = REF BasicFrameInfoBody;
BasicFrameInfoBody: TYPE = RECORD[
frameIndex: CARD,
absPC: CARD,
framePointer: CARD,
stackPointer: CARD,
previous: BasicFrameInfo,
next: BasicFrameInfo,
data: REF FrameData -- can be NIL if not yet computed
];
END.