DEFINITION MODULE RealConversions; (* Module: string-to-real and real-to-string conversions Author: Ceriel J.H. Jacobs Version: $Id$ *) PROCEDURE StringToReal(str: ARRAY OF CHAR; VAR r: REAL; VAR ok: BOOLEAN); (* Convert string "str" to a real number "r" according to the syntax: ['+'|'-'] digit {digit} ['.' digit {digit}] ['E' ['+'|'-'] digit {digit}] ok := "conversion succeeded" Leading blanks are skipped; Input terminates with a blank or any control character. *) PROCEDURE StringToLongReal(str: ARRAY OF CHAR; VAR r: LONGREAL; VAR ok: BOOLEAN); PROCEDURE RealToString(r: REAL; width, digits: INTEGER; VAR str: ARRAY OF CHAR; VAR ok: BOOLEAN); (* Convert real number "r" to string "str", either in fixed-point or exponent notation. "digits" is the number digits to the right of the decimal point, "width" is the maximum width of the notation. If digits < 0, exponent notation is used, otherwise fixed-point. If fewer than "width" characters are needed, leading blanks are inserted. If the representation does not fit in "width", then ok is set to FALSE. *) PROCEDURE LongRealToString(r: LONGREAL; width, digits: INTEGER; VAR str: ARRAY OF CHAR; VAR ok: BOOLEAN); END RealConversions.