Dragoman.mesa
Created by Bertrand Serlet, October 17, 1985 4:13:48 pm PDT
Last Edited by: Serlet, April 26, 1985 11:40:41 pm PST
Pradeep Sindhu October 19, 1985 11:40:23 pm PDT
DIRECTORY
DragomanPrivate,
CacheModels,
Atom, Commander, IO, Rope;
Dragoman:
CEDAR
DEFINITIONS =
BEGIN
ROPE: TYPE = Rope.ROPE;
STREAM: TYPE = IO.STREAM;
Machine: TYPE = DragomanPrivate.Machine;
Handle: TYPE = REF HandleRec; -- a REF to the data for a particular instance of the sample tool; multiple instances can be created.
HandleRec:
TYPE =
RECORD [
-- the data for a particular tool instance
modelCache: BOOL,
m: Machine,
line: ROPE,
workingDir: Atom.PropList,
tsOut: STREAM];
Start: PROC [backingFile: ROPE ← NIL, instr, data: DragomanPrivate.CacheIndex ← 1, traceOps: BOOL ← FALSE, countOps: BOOL ← FALSE, recordXferOut: BOOL ← TRUE, modelCache: BOOL ← TRUE, flushOnCall: BOOL ← FALSE] RETURNS [handle: Handle];
SetInstructionCache: PROC [handle: Handle, number: DragomanPrivate.CacheIndex, cache: CacheModels.Cache];
SetDataCache: PROC [handle: Handle, number: DragomanPrivate.CacheIndex, cache: CacheModels.Cache];
MarkGFI:
PROC [handle: Handle, name1, name2, name3, name4, name5, name6:
ROPE ←
NIL];
MarkGFIs:
PROC [handle: Handle, names:
LIST
OF
ROPE ←
NIL];
Run: PROC [handle: Handle, name: ROPE, recordXferOut: BOOL ← TRUE];
End: PROC [handle: Handle];
END.