arithmetic/src/basictypes/integer/IntegerFmtLex.ig


GENERIC INTERFACE IntegerFmtLex(I);
Arithmetic for Modula-3, see doc for details

IMPORT Rd, Wr, Thread;
IMPORT Fmt AS F;
IMPORT Lex AS L;
IMPORT FloatMode;
FROM FmtLexSupport IMPORT Precedence;

TYPE T = I.T;

TYPE FmtStyle = RECORD base: F.Base := 10;  END;

<* INLINE *>
PROCEDURE Fmt (x: T; READONLY style := FmtStyle{}; ): TEXT;

PROCEDURE FmtArray (READONLY a        : ARRAY OF T;
                             style                   := FmtStyle{};
                             cellwidth: CARDINAL     := 4;
                             linewidth: CARDINAL     := 60;         ): TEXT
  RAISES {Thread.Alerted, Wr.Failure};

TYPE TexStyle = RECORD base: F.Base := 10;  END;

PROCEDURE Tex
  (x: T; READONLY style := TexStyle{}; within := Precedence.Sum; ): TEXT;

TYPE LexStyle = RECORD base: F.Base := 10;  END;

PROCEDURE Lex (rd: Rd.T; READONLY style := LexStyle{}; ): T
  RAISES {L.Error, FloatMode.Trap, Rd.Failure, Thread.Alerted};

END IntegerFmtLex.

interface FloatMode is in: