DIRECTORY ThreeC4CentralDef USING[], IO, ThreeC4CSyntax1Def, ThreeC4BaseDecl1Def, OneCasabaParser, FS, ThreeC4Support, ThreeC4CSyntax2Def; ThreeC4CentralImpl: CEDAR PROGRAM IMPORTS IO, ThreeC4CSyntax1Def, ThreeC4BaseDecl1Def, OneCasabaParser, FS, ThreeC4Support, ThreeC4CSyntax2Def EXPORTS ThreeC4CentralDef= BEGIN OPEN IO, ThreeC4CSyntax1Def, ThreeC4BaseDecl1Def, OneCasabaParser, FS, ThreeC4Support, ThreeC4CSyntax2Def; ParseTable: OneCasabaParser.ParserTable _ NIL; ParseOneStream: PUBLIC PROC[from: IO.STREAM, debugFlags: CARDINAL, debuggingTextTo: IO.STREAM] RETURNS[REF ANY] = BEGIN RETURN[ThreeC4Support.ParseOneStream[from, ParseTable, SetUpLinks, 100, debugFlags, debuggingTextTo]] END; SetUpLinks: PROC[prodLinkArray: SeeProdLinkArray, tknLinkArray: TokenLinkArray] = BEGIN ThreeC4CSyntax1LinkProc[prodLinkArray, tknLinkArray]; ThreeC4CSyntax2LinkProc[prodLinkArray, tknLinkArray]; ThreeC4BaseDecl1LinkProc[prodLinkArray, tknLinkArray]; END; -- obtain parser table BEGIN tableStream: IO.STREAM _ FS.StreamOpen["ThreeC4Central.kipperedParseTables"]; ParseTable _ OneCasabaParser.BuildParserTableFromKipperedStream[tableStream]; IO.Close[tableStream]; END; END..