-- file SakuraUtil.Mesa -- last modified by Satterthwaite, October 7, 1980 10:57 AM -- last edit by Russ Atkinson, 29-May-81 15:07:23 -- last edit by Suzuki, 27-Jul-81 13:50:29 DIRECTORY SakuraOps: TYPE USING [TableId], IOStream: TYPE USING [Handle], SakuraTree: TYPE USING [Link, Map, Scan], Rope: TYPE USING [Ref]; SakuraUtil: DEFINITIONS = BEGIN OPEN Tree: SakuraTree; -- binary table management TableId: TYPE = SakuraOps.TableId; AcquireTable: PROC [SakuraOps.TableId] RETURNS [LONG POINTER]; ReleaseTable: PROC [SakuraOps.TableId]; -- compiler passes PassIndex: TYPE = {utilities, pass1, pass2, pass3, pass3p, pass4, pass5, debug}; PrefillSymbols: PROC; P1Unit: PROC RETURNS [BOOLEAN]; P2Unit: Tree.Map; P3Unit: Tree.Map; P3Postlude: PROC [expand: BOOLEAN]; P4Unit: Tree.Scan; P5module: PROC; -- object output StartObjectFile: PROC [IOStream.Handle]; EndObjectFile: PROC [update: BOOLEAN]; TableOut: PROC; NextFilePage: PROC RETURNS [CARDINAL]; StartBCD: PROC; ReadBCDOffset: PROC RETURNS [CARDINAL]; ReadBCDIndex: PROC RETURNS [LONG CARDINAL]; AppendBCDWord: PROC [word: UNSPECIFIED]; AppendBCDWords: PROC [addr: POINTER, n: CARDINAL]; AppendBCDString: PROC [s: STRING]; UpdateBCDWords: PROC [offset: CARDINAL, addr: POINTER, n: CARDINAL]; EndBCD: PROC; -- debugging PrintTree: PROC [Tree.Link]; PrintBodies: PROC; PrintSymbols: PROC; -- printing PutDecimal: PROC [st: IOStream.Handle, x: LONG INTEGER]; PutRope: PROC [st: IOStream.Handle, r: Rope.Ref]; PrettyPrint: PROC [Tree.Link]; -- swapping control MakeSwappable: PROC [module: PROGRAM, pass: PassIndex]; Pass1, Pass2, Pass3, Pass3P, Pass4, Code: PROGRAM; END.