-- RStatsSupport.Mesa, last edit January 3, 1983 5:32 pm -- exported by RStatsSupportImpl.Mesa and RStatsDFImpl.Mesa DIRECTORY IFSFile: TYPE USING [FileHandle], IO: TYPE USING[Handle], List: TYPE USING[CompareProc], Rope: TYPE USING[ROPE, Text], Stream: TYPE USING[Handle], Subr: TYPE USING[TTYProcs], TypeScript: TYPE USING[TS]; RStatsSupport: DEFINITIONS = { -- each entry is a DF file DFRec: TYPE = RECORD[ host: Rope.Text, directory: Rope.Text, shortname: Rope.Text, -- name of the df file version: CARDINAL, -- may be 0 dep: LIST OF REF DFDep, -- a list of DF files that it depends on refBy: LIST OF REF DFDep, -- a list of DF files that depend on it bcdDep: LIST OF REF BcdDep -- a list of bcds that bcds in this DF depend on ]; -- each entry is a DF file DFDep: TYPE = RECORD[ directory: Rope.Text, -- may be NIL shortname: Rope.Text, createtime: LONG CARDINAL -- may be 0 ]; -- each entry is a file, not a DF file XRef: TYPE = RECORD[ shortname: Rope.Text, -- the file name host: Rope.Text, -- of the file name directory: Rope.Text, -- of the file name version: CARDINAL, -- of the file name createtime: LONG CARDINAL, -- of the file name dfshortname: Rope.Text, -- the Df file it is in dfpath: Rope.Text, -- e.g. [Indigo]Top> for the DF readOnly: BOOL, -- the file is listed as ReadOnly eval: BOOL, -- dependency has been analyzed compiled: BOOL, -- a compile stmt has been emitted bcdChild: LIST OF REF XRef -- list of bcds that this bcd depends on ]; BcdDep: TYPE = RECORD[ dfrec: REF DFRec, -- the DF file that owns the bcd file bcdName: Rope.Text -- the name of the bcd file (including ".bcd") ]; -- in RStatsSupportImpl.Mesa LeafOpenWithCreate: PROC[host, directory, shortname: LONG STRING, version: CARDINAL, createtime: LONG CARDINAL, out: IO.Handle, tty: Subr.TTYProcs] RETURNS[fh: IFSFile.FileHandle]; BreakUp: PROC[line: Rope.ROPE] RETURNS[filename: Rope.Text, create: LONG CARDINAL]; CompareDFRec: List.CompareProc; CompareDFDep: List.CompareProc; CompareXRef: List.CompareProc; CompareBcdDep: List.CompareProc; GetLine: PROC[sh: Stream.Handle, line: LONG STRING, out: IO.Handle] RETURNS[noteof: BOOL]; ComputeFileList: PROC[dfFileName: LONG STRING, fileListName: Rope.Text, typeScript: TypeScript.TS, out: IO.Handle, tty: Subr.TTYProcs]; SubString: PROC[line, match: LONG STRING] RETURNS[is: BOOL]; -- in RStatsDFList.Mesa ProcessDFList: PROC[topDFName: Rope.Text, typeScript: TypeScript.TS, out: IO.Handle, tty: Subr.TTYProcs, dfrec: LIST OF REF DFRec, xrefFileName: Rope.ROPE] RETURNS[nDFFiles: INT]; ProcessBcdAnalysis: PROC[typeScript: TypeScript.TS, out: IO.Handle, tty: Subr.TTYProcs, dfrec: LIST OF REF DFRec, specialFiles: BOOL]; }.