-- file CompilerUtil.Mesa -- last modified by Satterthwaite, 25-Feb-82 15:15:18 DIRECTORY Alloc: TYPE USING [Handle], CompilerOps: TYPE USING [StreamId], FileStream: TYPE USING [FileByteIndex], Stream: TYPE USING [Handle], Strings: TYPE USING [String], Tree: TYPE USING [Link, Map, Scan]; CompilerUtil: DEFINITIONS = { -- stream management StreamId: TYPE = CompilerOps.StreamId; AcquireStream: PROC [StreamId] RETURNS [Stream.Handle]; ReleaseStream: PROC [StreamId]; -- binary table management TableId: TYPE = MACHINE DEPENDENT {parse, error, debug, (255)}; AcquireTable: PROC [TableId] RETURNS [LONG POINTER]; ReleaseTable: PROC [TableId]; -- scratch zone management AcquireZone: PROC RETURNS [UNCOUNTED ZONE]; ReleaseZone: PROC [UNCOUNTED ZONE] = INLINE {}; -- 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 Address: TYPE = LONG POINTER; StartObjectFile: PROC [Stream.Handle, UNCOUNTED ZONE]; EndObjectFile: PROC [update: BOOLEAN]; TableOut: PROC [Alloc.Handle]; RTTableOut: PROC [Alloc.Handle]; NextFilePage: PROC RETURNS [CARDINAL]; StartBCD: PROC; ReadBCDOffset: PROC RETURNS [CARDINAL]; ReadBCDIndex: PROC RETURNS [FileStream.FileByteIndex]; AppendBCDWord: PROC [word: UNSPECIFIED]; AppendBCDWords: PROC [addr: Address, n: CARDINAL]; AppendBCDString: PROC [s: Strings.String]; FillBCDPage: PROC; UpdateBCDWords: PROC [offset: CARDINAL, addr: Address, n: CARDINAL]; EndBCD: PROC; -- debugging PrintTree: PROC [table: Alloc.Handle, root: Tree.Link]; PrintBodies: PROC [table: Alloc.Handle]; PrintSymbols: PROC [table: Alloc.Handle, definitions: BOOLEAN]; }.