-- PPUtil.Mesa
-- Russ Atkinson, August 6, 1982 11:10 am
DIRECTORY
PPOps USING [TableId],
PPTree USING [Link],
PrintTV USING [NullPutClosure, PutClosure],
Rope USING [ROPE];
PPUtil: CEDAR DEFINITIONS = BEGIN OPEN Tree: PPTree, PrintTV, Rope;
-- binary table management
TableId: TYPE = PPOps.TableId;
AcquireTable: UNSAFE PROC [PPOps.TableId] RETURNS [LONG POINTER];
ReleaseTable: PROC [PPOps.TableId];
-- compiler passes
PassIndex: TYPE = {utilities, pass1, pass2, pass3, pass3p, pass4, pass5, debug};
PrefillSymbols: PROC;
P1Unit: PROC RETURNS [BOOL];
-- debugging
PrintTree: SAFE PROC [t: Tree.Link, put: PutClosure ← NullPutClosure];
-- printing
PrettyPrint: SAFE PROC
[root: Tree.Link, put: PutClosure ← NullPutClosure];
-- utility output
SetOutput: PROC
[put: PutClosure ← NullPutClosure] RETURNS [success: BOOL];
-- sets output procedure for output
-- waits if already set, of course
ShowCR: PROC [];
ShowDecimal: PROC [x: INT];
ShowOctal: PROC [x: INT];
ShowRope: PROC [r: ROPE ← NIL];
ShowChar: PROC [CHAR];
ShowCharB: PROC [CHAR] RETURNS [BOOL];
-- swapping control
MakeSwappable: PROC [module: PROGRAM, pass: PassIndex];
Pass1: PROGRAM;
END.