MODULE StdLog; (* for Dev *) IMPORT Console, Strings, TextModels, TextMappers; VAR text-, buf-: TextModels.Model; out: TextMappers.Formatter; textR: TextModels.Reader; PROCEDURE Flush; VAR c: CHAR; BEGIN text.Append(buf); textR.SetPos(0); textR.ReadChar(c); WHILE ~textR.eot DO IF c = 0DX THEN c := 0AX END; Console.WriteChar(c); textR.ReadChar(c) END; text.Delete(0, text.Length()) END Flush; PROCEDURE Char* (c: CHAR); BEGIN out.WriteChar(c); Flush END Char; PROCEDURE Int* (i: LONGINT); BEGIN out.WriteChar(" "); out.WriteInt(i); Flush END Int; PROCEDURE Real* (x: REAL); BEGIN out.WriteChar(" "); out.WriteReal(x); Flush END Real; PROCEDURE String* (IN str: ARRAY OF CHAR); BEGIN out.WriteString(str); Flush END String; PROCEDURE Bool* (x: BOOLEAN); BEGIN out.WriteChar(" "); out.WriteBool(x); Flush END Bool; PROCEDURE Set* (x: SET); BEGIN out.WriteChar(" "); out.WriteSet(x); Flush END Set; PROCEDURE IntForm* (x: LONGINT; base, minWidth: INTEGER; fillCh: CHAR; showBase: BOOLEAN); BEGIN out.WriteIntForm(x, base, minWidth, fillCh, showBase); Flush END IntForm; PROCEDURE RealForm* (x: REAL; precision, minW, expW: INTEGER; fillCh: CHAR); BEGIN out.WriteRealForm(x, precision, minW, expW, fillCh); Flush END RealForm; PROCEDURE Tab*; BEGIN out.WriteTab; Flush END Tab; PROCEDURE Ln*; BEGIN out.WriteLn; Flush; (* TextViews.ShowRange(text, text.Length(), text.Length(), TextViews.any) *) END Ln; PROCEDURE Para*; BEGIN out.WritePara; Flush; (* TextViews.ShowRange(text, text.Length(), text.Length(), TextViews.any) *) END Para; (* PROCEDURE View* (v: Views.View); BEGIN out.WriteView(v); Flush END View; PROCEDURE ViewForm* (v: Views.View; w, h: INTEGER); BEGIN out.WriteViewForm(v, w, h); Flush END ViewForm; *) PROCEDURE ParamMsg* (IN msg, p0, p1, p2: ARRAY OF CHAR); BEGIN out.WriteParamMsg(msg, p0, p1, p2); Flush END ParamMsg; PROCEDURE Msg* (IN msg: ARRAY OF CHAR); BEGIN out.WriteMsg(msg); Flush END Msg; PROCEDURE Open*; BEGIN END Open; PROCEDURE Clear*; BEGIN text.Delete(0, text.Length()); buf.Delete(0, buf.Length()); END Clear; PROCEDURE Init; BEGIN text := TextModels.dir.New(); textR := text.NewReader(NIL); buf := TextModels.CloneOf(text); out.ConnectTo(buf) END Init; BEGIN Init END StdLog.