-- MCrossRefDefs.mesa -- wsh&kap 16-Mar-80 13:13 -- pdr July 1, 1982 5:45 pm DIRECTORY Rope USING[ROPE], IO USING[Handle]; MCrossRefDefs: DEFINITIONS = BEGIN TokenType: TYPE = {reserved, identifier, none}; TokenHandle: TYPE = REF Token; Token: TYPE = RECORD[next: TokenHandle ← NIL, -- for sorting name: ATOM ← NIL, type: TokenType ← none, fileNHead: fileNHandle ← NIL, fileNTail: fileNHandle ← NIL ]; fileNHandle: TYPE = REF fileN; fileN: TYPE = RECORD[next: fileNHandle ← NIL, name: ATOM ← NIL, xrefHead: XRefHandle ← NIL, xrefTail: XRefHandle ← NIL ]; LineNumberRange: TYPE = [0..77777B]; Coord: TYPE = MACHINE DEPENDENT RECORD [ defn: BOOLEAN, ln: LineNumberRange ]; XRefHandle: TYPE = REF XRef; XRef: TYPE = RECORD[next: XRefHandle ← NIL, nRefs: CARDINAL ← 0, coords: ARRAY [1..maxNRefs] OF Coord ← ALL[[defn: FALSE, ln: 0]] ]; ------------------------------------------------------------ -- constants maxNRefs: CARDINAL = 5; Gacha8linesPerPage: CARDINAL = 74; Gacha8charsPerLine: CARDINAL = 88; tabPosition: CARDINAL; -- procedures SetMCrossOutputStream: PROCEDURE[fileName: Rope.ROPE]; DestroyMCrossOutputStream: PROCEDURE; OutputLine: PROCEDURE [s: Rope.ROPE]; OutputString: PROCEDURE [s: Rope.ROPE]; OutputChar: PROCEDURE [ch: CHARACTER]; OutputRefCoord: PROCEDURE [coord: Coord]; PrintXREF: PROCEDURE[tsStream: IO.Handle]; END.