file CompilerOps.Mesa
last modified by Satterthwaite, June 7, 1983 10:08 am
last modified by Russ Atkinson, 28-Aug-81 12:26:43
Last Edited by: Maxwell, August 2, 1983 9:01 am
DIRECTORY
FS: TYPE USING [OpenFile],
FileSegment: TYPE USING [Span],
FileParms: TYPE USING [ActualId, Ops],
IO: TYPE USING [STREAM],
Rope: TYPE USING [ROPE],
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: IO.STREAM,
fileParms: FileParms.Ops,
switches: LetterSwitches,
pattern: FileParms.ActualId,
objectName: Rope.ROPE,
objectFile: FS.OpenFile,
debugPass: CARDINALCARDINAL.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 [IO.STREAM],
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 [s: IO.STREAM];
operations
Start: PROC [scratchZone: UNCOUNTED ZONE];
DoTransaction: PROC [REF Transaction];  -- really a VAR
Stop: PROC;
Punt: ERROR;
}.