DEFINITION MODULE SWholeIO;

(* Input and output of whole numbers in text form over default channels.
   The read result is of the type IOConsts.ReadResults.
*)

(* The text form of a signed whole number is
     ["+"|"-"], decimal digit, {decimal digit} *)

PROCEDURE ReadInt (VAR int : INTEGER);
(* Skips leading space and removes any remaining characters
   that form part of a signed whole number.
   A corresponding value is assigned to the parameter int.
   The read result is set to the value allRight, outOfRange, wrongFormat,
   endOfLine, or endOfInput. *)

PROCEDURE WriteInt (int   : INTEGER;
                    width : CARDINAL);
(* Writes the value of the parameter int in text form in a field of the
   given minimum width. *)

(* The text form of an unsigned whole number is
     decimal digit, {decimal digit} *)

PROCEDURE ReadCard (VAR card : CARDINAL);
(* Skips leading space and removes any remaining characters
   that form part of an unsigned whole number.
   A corresponding value is assigned to the parameter card.
   The read result is set to the value allRight, outOfRange, wrongFormat,
   endOfLine, or endOfInput. *)

PROCEDURE WriteCard (card  : CARDINAL;
                     width : CARDINAL);
(* Writes the value of the parameter card in text form in a field of the
   given minimum width. *)

END SWholeIO.