--------------------------------------------------------------------------
INTERFACE--------------------------------------------------------------------------SMsg ; IMPORT Wr;
PROCEDURE Error(msg : TEXT); (* write `msg' tagged as error to `errorWr' *)--------------------------------------------------------------------------
PROCEDURE Fatal(msg : TEXT; exitCode : INTEGER := 1); (* write `msg' tagged as fatal error to `fatalWr' and terminate the program *)--------------------------------------------------------------------------
PROCEDURE Warning(msg : TEXT); (* write `msg' tagged as warning to `warningWr' *)--------------------------------------------------------------------------
PROCEDURE Debug(msg : TEXT); (* write `msg' tagged as debug to `debugWr' *)--------------------------------------------------------------------------
PROCEDURE Error2(proc, msg : TEXT); (* write `proc: msg' tagged as error to `errorWr' *)--------------------------------------------------------------------------
PROCEDURE Fatal2(proc, msg : TEXT; exitCode : INTEGER := 1); (* write `proc: msg' tagged as fatal error to `fatalWr' and terminate the program *)--------------------------------------------------------------------------
PROCEDURE Warning2(proc, msg : TEXT); (* write `proc: msg' tagged as warning to `warningWr' *)--------------------------------------------------------------------------
PROCEDURE Debug2(proc, msg : TEXT); (* write `proc: msg' tagged as debug to `debugWr' *)--------------------------------------------------------------------------
PROCEDURE V(msg : TEXT; unconditionalNewLine := TRUE); (* write `msg' to `vWr' if vFlag set *)--------------------------------------------------------------------------
PROCEDURE V2(proc, msg : TEXT; unconditionalNewLine := TRUE); (* write `proc: msg' to `vWr' if vFlag set *)--------------------------------------------------------------------------
PROCEDURE T(msg : TEXT; unconditionalNewLine := TRUE); (* write `msg' to `tWr' if tFlag set *)--------------------------------------------------------------------------
PROCEDURE T2(proc, msg : TEXT; unconditionalNewLine := TRUE); (* write `proc: msg' to `tWr' if tFlag set *)--------------------------------------------------------------------------
PROCEDURE D(msg : TEXT; unconditionalNewLine := TRUE); (* write `msg' to `dWr' if dFlag set *)--------------------------------------------------------------------------
PROCEDURE D2(proc, msg : TEXT; unconditionalNewLine := TRUE); (* write `proc: msg' to `dWr' if dFlag set *)--------------------------------------------------------------------------
VAR errorWr : Wr.T; fatalWr : Wr.T; warningWr : Wr.T; debugWr : Wr.T; vWr : Wr.T; tWr : Wr.T; dWr : Wr.T; vFlag : BOOLEAN; tFlag : BOOLEAN; dFlag : BOOLEAN; beepFlag : BOOLEAN; END SMsg.