LupineManagerPrivate.mesa.
Copyright © 1985 by Xerox Corporation. All rights reserved.
Last edited by BZM on March 15, 1982 4:54 PM.
Last Edited by: Birrell, September 8, 1983 3:45 pm
Last Edited by: Swinehart, February 8, 1985 8:59:28 am PST
Bob Hagmann February 12, 1985 12:51:56 pm PST
DIRECTORY
IO USING [PutChar, PutRope, STREAM, Value],
LupineManager
USING [
ErrorCode, ErrorHandlerProc, ErrorType, Language,
Options, ParamPassingMethod, String, StringNIL ],
Rope USING[ ROPE, Length ];
LupineManagerPrivate:
DEFINITIONS
IMPORTS IO, Rope
= BEGIN
Lupine-wide types and constants.
String: TYPE = LupineManager.String;
StringNIL: String = LupineManager.StringNIL;
Options: TYPE = LupineManager.Options;
Language: TYPE = LupineManager.Language;
ParamPassingMethod: TYPE = LupineManager.ParamPassingMethod;
ErrorType: TYPE = LupineManager.ErrorType;
ErrorCode: TYPE = LupineManager.ErrorCode;
ErrorHandlerProc: TYPE = LupineManager.ErrorHandlerProc;
Code file output routines.
OpenCodeFile: PROCEDURE [codeModuleName: String, numberOfOutputFiles: INT ← 1 ];
OutputToAllFiles: PROCEDURE ;
NextOutputFile: PROCEDURE ;
StampCodeFile: PROCEDURE [codeModuleName: String];
CloseCodeFile: PROCEDURE;
formattedStream: PRIVATE IO.STREAM;
WFC:
PROC[c:
CHAR] =
INLINE BEGIN formattedStream.PutChar[c] END;
WF1: PROC[format: Rope.ROPE, v1: IO.Value];
WFS1,
WriteFormattedString:
PUBLIC
PROCEDURE [s01: String] =
INLINE BEGIN formattedStream.PutRope[s01]; END;
WFS,
WriteFormattedStrings:
PROCEDURE [
s01, s02, s03: String←StringNIL ];
WFSL,
WriteFormattedStringsLong:
PROCEDURE [
s01, s02, s03, s04, s05, s06, s07, s08, s09, s10,
s11, s12, s13, s14, s15, s16, s17, s18: String←StringNIL];
WFL,
WriteFormattedLine:
PUBLIC
PROCEDURE [
nest: Nest, s01, s02, s03: String←StringNIL ];
WFL1, WriteFormattedLine1: PUBLIC PROCEDURE [nest: Nest, s01: String];
WFLL,
WriteFormattedLineLong:
PUBLIC
PROCEDURE [
nest: Nest, s01, s02, s03, s04, s05, s06: String←StringNIL ];
Nest: TYPE = INTEGER[0..LAST[INTEGER]];
Indent:
PROCEDURE [nest: Nest]
RETURNS [tabsAndSpaces: String];
Translation-time error handling.
ExplanationProc: TYPE = PROCEDURE [explanation: String];
ReportError: PROCEDURE [type: ErrorType, code: ErrorCode, problemText: String];
GiveExplanation: PROCEDURE [code: ErrorCode, explainer: ExplanationProc];
Abort:
PUBLIC
PROC [code: ErrorCode, problemText: String←StringNIL] =
INLINE {ReportError[abort, code, problemText]};
Error:
PUBLIC
PROC [code: ErrorCode, problemText: String←StringNIL] =
INLINE {ReportError[error, code, problemText]};
Warning:
PUBLIC
PROC [code: ErrorCode, problemText: String←StringNIL] =
INLINE {ReportError[warning, code, problemText]};
Random utilities.
ModuleTypes:
TYPE = {
interface, openedInterface,
control, client, clientBinder, server,
rpcPublic, rpcPrivate,
lupineRuntime };
ModuleName: PROCEDURE [module: ModuleTypes] RETURNS [name: String];
StampTranslationOptions: PROCEDURE [options: Options];
SHORT:
PROCEDURE [long:
LONG
INTEGER]
RETURNS [
INTEGER] =
INLINE {RETURN[ long ]};
IsNull:
PROCEDURE [string: String]
RETURNS [
--yes:--
BOOLEAN] =
INLINE {RETURN[ string.Length[]=0 ]};
END. -- LupineManagerPrivate.
Bob Hagmann February 12, 1985 12:51:57 pm PST
changes to: ModuleTypes