arithmetic/src/basictypes/float/FloatFmtLex.ig


GENERIC INTERFACE FloatFmtLex(R);
Arithmetic for Modula-3, see doc for details
 Abstract: Generic interface for formatting and parsing of float
   numbers 

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

TYPE T = R.T;

TYPE
  FmtStyle = RECORD
               style             := F.Style.Auto;
               prec   : CARDINAL := R.MaxSignifDigits - 3;
               literal           := FALSE;
             END;

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

TYPE
  TexStyle = RECORD
               style           := F.Style.Auto;
               prec : CARDINAL := R.MaxSignifDigits - 3;
             END;

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

TYPE LexStyle = RECORD END;

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

END FloatFmtLex.

interface FloatMode is in: