DEFINITION MODULE Conversions; (* Scalar <-> string conversions. Output strings are NUL-terminated. The StrTo* procedures report an ISO-style `ConvResults` status: strAllRight the whole string was a valid literal strOutOfRange valid literal but not representable in the target strWrongFormat the string is not a literal of the target type strEmpty the string was empty The BOOLEAN-returning wrappers are retained for convenience. *) TYPE ConvResults = (strAllRight, strOutOfRange, strWrongFormat, strEmpty); PROCEDURE IntToStr(n : INTEGER; VAR s : ARRAY OF CHAR); PROCEDURE CardToStr(n : CARDINAL; VAR s : ARRAY OF CHAR); PROCEDURE RealToStr(x : REAL; VAR s : ARRAY OF CHAR); PROCEDURE StrToInt(s : ARRAY OF CHAR; VAR n : INTEGER) : ConvResults; PROCEDURE StrToCard(s : ARRAY OF CHAR; VAR n : CARDINAL) : ConvResults; PROCEDURE StrToReal(VAR s : ARRAY OF CHAR; VAR x : REAL) : ConvResults; (* BOOLEAN shortcuts: TRUE iff the status is strAllRight. *) PROCEDURE IntVal(s : ARRAY OF CHAR; VAR n : INTEGER) : BOOLEAN; PROCEDURE CardVal(s : ARRAY OF CHAR; VAR n : CARDINAL) : BOOLEAN; PROCEDURE RealVal(VAR s : ARRAY OF CHAR; VAR x : REAL) : BOOLEAN; END Conversions.