-- file CompilerOps.Mesa -- last modified by Satterthwaite, June 7, 1983 10:08 am -- last modified by Russ Atkinson, 28-Aug-81 12:26:43 DIRECTORY File: TYPE USING [Capability], FileSegment: TYPE USING [Span], FileParms: TYPE USING [ActualId, Ops], Stream: TYPE USING [Handle], Strings: TYPE USING [String], TimeStamp: TYPE USING [Stamp]; CompilerOps: DEFINITIONS = { -- transaction definitions LetterSwitches: TYPE = PACKED ARRAY CHAR['a..'z] OF BOOL; Transaction: TYPE = RECORD [ -- action op: {compile, replace} _ $compile, -- input source: FileParms.ActualId, sourceStream: Stream.Handle, fileParms: FileParms.Ops, switches: LetterSwitches, pattern: FileParms.ActualId, objectName: Strings.String, objectFile: File.Capability, debugPass: CARDINAL_CARDINAL.LAST, -- output objectVersion: TimeStamp.Stamp, interface: BOOL, matched: BOOL, sourceTokens: CARDINAL, nErrors, nWarnings: CARDINAL, objectBytes, objectFrameSize, linkCount: CARDINAL, bcdPages, codePages, symbolPages: FileSegment.Span, -- interaction getStream: PROC [StreamId] RETURNS [Stream.Handle], startPass: PROC [CARDINAL] RETURNS [goOn: BOOL]]; StreamId: TYPE = MACHINE DEPENDENT {source, object, log, (255)}; -- inquiries DefaultSwitches: PROC RETURNS [LetterSwitches]; CompilerVersion: PROC RETURNS [TimeStamp.Stamp]; AppendHerald: PROC [Strings.String]; -- operations Start: PROC [scratchZone: UNCOUNTED ZONE]; DoTransaction: PROC [POINTER TO Transaction]; -- really a VAR Stop: PROC; Punt: ERROR; }.