MesaAnalyses.mesa
Mike Spreitzer January 22, 1987 9:55:08 pm PST
DIRECTORY Rope, SymTab, TextNode;
MesaAnalyses: CEDAR DEFINITIONS = {
ROPE: TYPE = Rope.ROPE;
MesaAnalysis: TYPE = REF MesaAnalysisPrivate;
MesaAnalysisPrivate: TYPE = RECORD [
moduleName: ROPE,
moduleType: ModuleType,
globalDefs: SymbolTable,
interfaceRecords, interfaceTypes, interfaceElements: SymbolTable,
openedWithoutUsingList: IRList ← NIL,
bodyStart, prefixEnd: INT
];
ModuleType: TYPE = {defs, prog, monitor};
SymbolTable: TYPE = SymTab.Ref; --Domain is ROPEs, case sensitive
PositionRange: TYPE = RECORD [before, after: INT];
Covers chars in [before .. after).
InterfaceType: TYPE = REF InterfaceTypePrivate;
InterfaceTypePrivate: TYPE = RECORD [
namePos: PositionRange,
name, typeClass, fileHint: ROPE,
usingList: SymbolTable--name b $T--NIL
];
IRList: TYPE = LIST OF InterfaceRecord;
InterfaceRecord: TYPE = REF InterfaceRecordPrivate;
InterfaceRecordPrivate: TYPE = RECORD [
namePos: PositionRange,
name: ROPE,
type: InterfaceType
];
InterfaceElement: TYPE = REF InterfaceElementPrivate;
InterfaceElementPrivate: TYPE = RECORD [
name: ROPE,
interface: InterfaceRecord
];
TiogaNode: TYPE = TextNode.Ref;
GetAnalysis: PROC [doc: TiogaNode, docName: ROPE, verbose: BOOL] RETURNS [ma: MesaAnalysis];
If verbose, pacifiers will be printed in the MessageWindow.
}.