dos_compilers/Logitech Modula-2 v1/NUMBERCO.DEF

106 lines
3.0 KiB
Plaintext
Raw Permalink Normal View History

2024-07-01 00:16:10 +02:00
DEFINITION MODULE NumberConversion;
(*
Conversion between numbers and strings
The routines that convert a string to a number:
- skip leading blanks,
- accept always a '+' sign and for integers
also a '-' sign
- skip blanks between sign and number
Done is TRUE if the conversion is successful
The routines that convert a number to a string:
- if the string is too small the number is truncated
- if the number has less digits than width,leading
blanks are added
*)
EXPORT QUALIFIED MaxBase, BASE,
StringToCard, StringToInt, StringToNum,
CardToString, IntToString, NumToString;
CONST MaxBase = 16;
TYPE BASE = [2..MaxBase];
PROCEDURE StringToCard(
str: ARRAY OF CHAR;
VAR num: CARDINAL;
VAR done: BOOLEAN
);
(*- Convert a string to a CARDINAL number.
in: str string to convert
out: num converted number
done TRUE if successful conversion,
FALSE if number out of range,
or contents of string non numeric.
*)
PROCEDURE StringToInt(
str: ARRAY OF CHAR;
VAR num: INTEGER;
VAR done: BOOLEAN
);
(*- Convert a string to an INTEGER number.
in: str string to convert
out: num converted number
done TRUE if successful conversion,
FALSE if number out of range,
or contents of string non numeric.
*)
PROCEDURE StringToNum(
str: ARRAY OF CHAR;
base: BASE;
VAR num: CARDINAL;
VAR done: BOOLEAN
);
(*- Convert a string to a CARDINAL number.
in: str string to convert
base the base of the number represented in the string
out: num converted number
done TRUE if successful conversion,
FALSE or number out of range,
or contents of string not within base.
*)
PROCEDURE CardToString(
num: CARDINAL;
VAR str: ARRAY OF CHAR;
width: CARDINAL
);
(*- Convert a CARDINAL number to a string.
in: num number to convert
out: str returned string representation of the number
in: width width of the returned string
*)
PROCEDURE IntToString(
num: INTEGER;
VAR str: ARRAY OF CHAR;
width: CARDINAL
);
(*- Convert an INTEGER number to a string.
in: num number to convert
out: str returned string representation of the number
in: width width of the returned string
*)
PROCEDURE NumToString(
num: CARDINAL;
base: BASE;
VAR str: ARRAY OF CHAR;
width: CARDINAL
);
(*- Convert a number to the string representation in the specified base.
in: num number to convert
in: base the base of conversion
out: str returned string representation of the number
in: width width of the returned string
*)
END NumberConversion.