<> <> <> DIRECTORY IO USING [STREAM], MakeDo USING [End, notExistTime, Node, Time], RefTab USING [Ref], Rope USING [ROPE]; MakeDoParsing: CEDAR DEFINITIONS ~ BEGIN Time: TYPE ~ MakeDo.Time; ROPE: TYPE ~ Rope.ROPE; STREAM: TYPE ~ IO.STREAM; End: TYPE ~ MakeDo.End; Node: TYPE ~ MakeDo.Node; ParserClass: TYPE ~ ATOM; ParseData: TYPE ~ RefTab.Ref; ParseEntry: TYPE ~ REF ParseEntryRep; ParseEntryRep: TYPE ~ RECORD [ source: ROPE, stamp: Time ¬ MakeDo.notExistTime, parserClass: ParserClass, parseData: ParseData ]; Parser: TYPE ~ REF ParserRep; ParserRep: TYPE ~ RECORD [ parserClass: ParserClass, parserName: ROPE, parserProc: ParserProc, parserData: REF ]; ParserProc: TYPE ~ PROC [stream: STREAM, parserData: REF] RETURNS [parseData: ParseData]; <> <> <<$Directory => List of file names of modules in the directory clause>> <<$StaticRequests => Ditto for static requests (only for $Config)>> <<$Requests => Modules requested in a $Config>> <<$SourceType => one of>> <<$CedarProg, $CedarMonitor, $CedarDefs, $Config, $C >> ParserClassFail: ERROR; <> SyntaxError: SIGNAL [synMsg: ROPE]; GetParseEntry: PROC [node: Node, class: ParserClass] RETURNS [ParseEntry]; <> <> <<>> AddParser: PROC [parser: Parser, end: End]; <> <<>> GetParser: PROC [class: ParserClass] RETURNS [parser: Parser]; <> <<>> EnumerateParsers: PROC [to: PROC [parser: Parser] RETURNS [stop: BOOL ¬ FALSE]]; <> <<>> ClearCache: PROC; <> <<>> END.