-- 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]<Cedar>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];
}.