MimosaInterface.mesa
Copyright Ó 1988, 1991 by Xerox Corporation. All rights reserved.
Russ Atkinson (RRA) March 24, 1988 3:55:27 pm PST
DIRECTORY IO USING [STREAM], Rope USING [ROPE];
MimosaInterface: CEDAR DEFINITIONS
= BEGIN
DoCompile: PUBLIC PROC [in: IO.STREAM, out: IO.STREAM, clientData: REF]
RETURNS [result: REF ¬ NIL, msg: Rope.ROPE ¬ NIL];
Performs a Mimosa compilation.
The stream in gives the command input.
The stream out receives interactive output.
The clientData is an ATOM, with the following being supported:
$MimosaServer => run as a server (no FileViewerOps usage)
$MimosaDebug => run assuming a debugger (force D switch to be true)
$MimosaOnly => no code generation (force M switch to be true)
$MimosaDebugOnly => debug, no code generation (force D & M switches to be true)
$Mimosa: normal compilation requested
other case reserved for extensions
The result will be one of the following:
NIL: if no files were compiled
$Definition: if just definitions files were compiled successfully
$Implementation: if just implementations files were compiled successfully
$Mixed: if definitions and implementations files were compiled successfully
$Failure: if an error or warning was detected for any compilation
The msg will give some information if result = $Failure. Some of the standard messages are:
"A": compilation aborted by user action
"F": errors detected in the compilation
"W": warnings detected in the compilation
"S": success
Other messages will indicate problems with file access or other problems that need lengthy explanations.
END.