IntConv

Import List

    ConvTypes
 
Type Summary
ConvResults = ConvResults

          One of strAllRight, strOutOfRange, strWrongFormat, or strEmpty.
Procedure Summary
FormatInt(ARRAY OF CHAR): ConvResults

          Returns the format of the string value for conversion to LONGINT.
LengthInt(LONGINT): INTEGER

          Returns the number of characters in the string representation of int.
ScanInt(CHAR, VAR ScanClass, VAR ScanState)

          Represents the start state of a finite state scanner for signed whole numbers--assigns class of inputCh to chClass and a procedure representing the next state to nextState.
ValueInt(ARRAY OF CHAR): LONGINT

          Returns the value corresponding to the signed whole number string value str if str is well-formed.
Constant Summary
strAllRight

          The string format is correct for the corresponding conversion.
strEmpty

          The given string is empty.
strOutOfRange

          The string is well-formed but the value cannot be represented.
strWrongFormat

          The string is in the wrong format for the conversion.

Type Detail

ConvResults

TYPE ConvResults = ConvResults

One of strAllRight, strOutOfRange, strWrongFormat, or strEmpty.

Procedure Detail

FormatInt

PROCEDURE FormatInt(str: ARRAY OF CHAR): ConvResults

Returns the format of the string value for conversion to LONGINT.


LengthInt

PROCEDURE LengthInt(int: LONGINT): INTEGER

Returns the number of characters in the string representation of int. This value corresponds to the capacity of an array `str' which is of the minimum capacity needed to avoid truncation of the result in the call `IntStr.IntToStr(int,str)'.


ScanInt

PROCEDURE ScanInt(inputCh: CHAR; 
                  VAR chClass: ScanClass; 
                  VAR nextState: ScanState)

Represents the start state of a finite state scanner for signed whole numbers--assigns class of inputCh to chClass and a procedure representing the next state to nextState.

The call of `ScanInt(inputCh,chClass,nextState)' shall assign values to chClass and nextState depending upon the value of inputCh as shown in the following table.

Procedure       inputCh         chClass         nextState (a procedure
                                                with behaviour of)
--
----       ------       ------        ------ScanInt         space           padding         ScanInt
                sign            valid           SState
                decimal digit   valid           WState
                other           invalid         ScanInt
SState          decimal digit   valid           WState
                other           invalid         SState
WState          decimal digit   valid           WState
                other           terminator      --

NOTE 1 -- The procedure ScanInt corresponds to the start state of a finite state machine to scan for a character sequence that forms a signed whole number. It may be used to control the actions of a finite state interpreter. As long as the value of chClass is other than Conv.terminator or Conv.invalid, the interpreter should call the procedure whose value is assigned to nextState by the previous call, supplying the next character from the sequence to be scanned. It may be appropriate for the interpreter to ignore characters classified as Conv.invalid, and proceed with the scan. This would be the case, for example, with interactive input, if only valid characters are being echoed in order to give interactive users an immediate indication of badly-formed data. If the character sequence end before one is classified as a terminator, the string-terminator character should be supplied as input to the finite state scanner. If the preceeding character sequence formed a complete number, the string-terminator will be classified as Conv.terminator, otherwise it will be classified as Conv.invalid.


ValueInt

PROCEDURE ValueInt(str: ARRAY OF CHAR): LONGINT

Returns the value corresponding to the signed whole number string value str if str is well-formed. Otherwise, result is undefined.

Constant Detail

strAllRight

CONST strAllRight 

The string format is correct for the corresponding conversion.


strEmpty

CONST strEmpty 

The given string is empty.


strOutOfRange

CONST strOutOfRange 

The string is well-formed but the value cannot be represented.


strWrongFormat

CONST strWrongFormat 

The string is in the wrong format for the conversion.