<<>> <> <> <> 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]; <> InterfaceType: TYPE = REF InterfaceTypePrivate; InterfaceTypePrivate: TYPE = RECORD [ namePos: PositionRange, name, typeClass, fileHint: ROPE, usingList: SymbolTable--name ¬ $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]; <> }.