INTERFACE FPut;

(* "Fmt"-like procedures that write to a stream instead of returning TEXT. *)
(* Last edited on 2001-11-07 10:14:08 by stolfi *)

IMPORT Wr, Fmt;
IMPORT Real AS R, LongReal AS LR;

CONST
  RMaxPrec = R.MaxSignifDigits-1;
  LRMaxPrec = LR.MaxSignifDigits-1;

PROCEDURE EOL(wr: Wr.T);
PROCEDURE Space(wr: Wr.T; count: CARDINAL := 1);

PROCEDURE Colon(wr: Wr.T);
  (*
    Equivalent to Wr.PutText(wr, ": ") *)
          
PROCEDURE Char(wr: Wr.T; x: CHAR);

PROCEDURE Bool(wr: Wr.T; x: BOOLEAN);

PROCEDURE Int(wr: Wr.T; x: INTEGER; pad: CARDINAL := 0);

PROCEDURE Real(
    wr: Wr.T; x: REAL; 
    prec: [1..RMaxPrec] := RMaxPrec; 
    pad: CARDINAL := 0;
    style: Fmt.Style := Fmt.Style.Auto;
  );

PROCEDURE LongReal(
    wr: Wr.T; x: LONGREAL; 
    prec: [1..LRMaxPrec] := LRMaxPrec; 
    pad: CARDINAL := 0;
    style: Fmt.Style := Fmt.Style.Auto;
  );

END FPut.
