[ivy]<Satterthwaite>Mimosa>CompilerOps.mesa!1

CompilerOps.Mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Satterthwaite, June 7, 1983 10:08 am
Russ Atkinson, 28-Aug-81 12:26:43
Maxwell, August 2, 1983 9:01 am
Paul Rovner, October 17, 1983 11:25 am
Russ Atkinson (RRA) March 6, 1985 10:10:11 pm PST
DIRECTORY
FS USING [OpenFile],
FileSegment USING [Span],
FileParms USING [ActualId, Ops],
IO USING [STREAM],
Rope USING [ROPE],
TimeStamp 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: 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 [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;
DoTransaction: PROC [REF Transaction];-- really a VAR
Stop: PROC;
Punt: ERROR;
}.