<> <> <> <> <> <> <> <<>> DIRECTORY FS USING [OpenFile], FileSegment USING [Span], FileParms USING [ActualId, Ops], IO USING [STREAM], Rope USING [ROPE], TimeStamp USING [Stamp]; CompilerOps: DEFINITIONS = { <> LetterSwitches: TYPE = PACKED ARRAY CHAR['a..'z] OF BOOL; Transaction: TYPE = RECORD [ <> op: {compile, replace} _ $compile, <> source: FileParms.ActualId, sourceStream: IO.STREAM, fileParms: FileParms.Ops, switches: LetterSwitches, pattern: FileParms.ActualId, objectName: Rope.ROPE, objectFile: FS.OpenFile, debugPass: CARDINAL_CARDINAL.LAST, <> objectVersion: TimeStamp.Stamp, interface: BOOL, matched: BOOL, sourceTokens: CARDINAL, nErrors, nWarnings: CARDINAL, objectBytes, objectFrameSize, linkCount: CARDINAL, bcdPages, codePages, symbolPages: FileSegment.Span, <> getStream: PROC [StreamId] RETURNS [IO.STREAM], startPass: PROC [CARDINAL] RETURNS [goOn: BOOL]]; StreamId: TYPE = MACHINE DEPENDENT {source, object, log, (255)}; <> DefaultSwitches: PROC RETURNS [LetterSwitches]; CompilerVersion: PROC RETURNS [TimeStamp.Stamp]; AppendHerald: PROC [s: IO.STREAM]; <> Start: PROC; DoTransaction: PROC [REF Transaction]; -- really a VAR Stop: PROC; Punt: ERROR; }.