DIRECTORY Commander USING[CommandProc, Register], IO USING[CharClass, Close, EndOfStream, GetTokenRope, IDProc, RIS, STREAM], FS USING[StreamOpen], OneCasabaParser USING[GetReportStream], KipperCentralDef USING[ParseOneStream], KipperCodeGen USING[BuildFilesFromContext, PrintTypeNodeContext], KipperMain1Def USING[ModuleBodyNode, TypeContextNode], Rope USING[Cat, ROPE]; KipperDriver: CEDAR MONITOR IMPORTS Commander, FS, IO, KipperCentralDef, KipperCodeGen, OneCasabaParser, Rope = BEGIN OPEN Commander, IO, Rope; debugFlags: CARDINAL _ 0; printContext: BOOLEAN _ FALSE; TestKipper: CommandProc = BEGIN commandLineStream: STREAM _ RIS[cmd.commandLine]; errorFlag: BOOLEAN _ FALSE; rootName: ROPE; sourceStream: STREAM; root: KipperMain1Def.ModuleBodyNode; context: KipperMain1Def.TypeContextNode; rootName _ GetTokenRope[commandLineStream, IDProc ! EndOfStream => {rootName _ NIL; CONTINUE}].token; Close[commandLineStream]; sourceStream _ FS.StreamOpen[Rope.Cat[rootName, ".Kipper"]]; root _ NARROW[KipperCentralDef.ParseOneStream[sourceStream, debugFlags, cmd.out ! OneCasabaParser.GetReportStream => {errorFlag _ TRUE; RESUME[cmd.out]}]]; Close[sourceStream]; IF errorFlag THEN RETURN; context _ root.procs.FormContext[root]; IF printContext THEN KipperCodeGen.PrintTypeNodeContext[context, cmd.out]; KipperCodeGen.BuildFilesFromContext[context, cmd.out]; END; Register["///Commands/Kipper", TestKipper]; END.. „KipperDriver.mesa Copied from Tran5Driver on October 21, 1985 10:54:50 am PDT Sturgis, May 20, 1986 2:53:54 pm PDT main code Ê©˜Jšœ™J™;Jšœ$™$J˜šÏk ˜ Jšœ œ˜'Jšœœ6œœ˜KJšœœ ˜J˜'Jšœ'˜'JšœA˜AJšœ6˜6Jšœœœ˜—J˜J˜šœœ˜Jšœ œœ;˜T—˜Jšœœ œ˜J˜J˜J˜J˜J˜J˜J˜J˜šœ˜Jš˜Jšœœœ˜1J˜Jšœ œ˜Jšœœ˜Jšœ$˜$Jšœ(˜(J˜˜1Jšœœœ ˜3—J˜J˜Jšœœ+˜