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;