MimP3S.mesa
Copyright Ó 1985, 1986, 1987, 1991 by Xerox Corporation. All rights reserved.
Satterthwaite, April 4, 1986 9:25:18 am PST
Russ Atkinson (RRA) January 29, 1988 12:34:00 pm PST
DIRECTORY
MimP3 USING [Attr, NPUse, Safety],
Symbols USING [BTIndex, ContextLevel, CTXIndex, RecordSEIndex, Type],
Tree USING [Index, Link];
MimP3S: DEFINITIONS = {
OPEN Symbols;
shared state variables for pass 3
BodyData: TYPE = RECORD [ -- shared communication record
level: Symbols.ContextLevel, -- current level
bodyNode: Tree.Index,  -- current body
argCtx: Symbols.CTXIndex, -- ctx for inputRecord
inputRecord: RecordSEIndex, -- input record for current body
returnRecord: RecordSEIndex, -- return record for current body
entry: BOOL,  -- set for entry procedures
lockHeld: BOOL,  -- set for entry or internal procedures
noXfers: BOOL,  -- set by embedded xfer (except return)
reachable: BOOL,
labelList: Tree.Link,  -- list of accessible labels
loopDepth: CARDINAL,  -- depth of loop nesting
catchDepth: CARDINAL,  -- depth of catch phrase nesting
unwindEnabled: BOOL,  -- set iff in scope of unwind
resumeFlag: BOOL,  -- set iff a resume is legal
resumeRecord: RecordSEIndex]; -- for current catch phrase
ImplicitInfo: TYPE = RECORD [ -- info about subtree used as an expr
type: Type,
tree: Tree.Link,
attr: MimP3.Attr];
SelfInfo: TYPE = RECORD [ -- info about x in x.op[args] => op[x, args]
tree: Tree.Link,
type: Type,
attr: MimP3.Attr,
np: MimP3.NPUse];
exported by Pass3S
safety: MimP3.Safety;
currentBody: VAR BodyData;
currentScope: READONLY BTIndex;
exported by Pass3Xa
implicitRecord: VAR RecordSEIndex; -- type of extraction record
markCatch: VAR BOOL;  -- reset in Stmt, set in CatchPhrase
continued: VAR BOOL;
self: VAR SelfInfo;
exported by Pass3Xb
implicit: VAR ImplicitInfo; -- implied interpretation of Tree.Null
}.