| (* Library module defined by the International Standard |
| Information technology - programming languages |
| BS ISO/IEC 10514-1:1996E Part 1: Modula-2, Base Language. |
| |
| Copyright ISO/IEC (International Organization for Standardization |
| and International Electrotechnical Commission) 1996-2021. |
| |
| It may be freely copied for the purpose of implementation (see page |
| 707 of the Information technology - Programming languages Part 1: |
| Modula-2, Base Language. BS ISO/IEC 10514-1:1996). *) |
| |
| DEFINITION MODULE RealConv; |
| |
| (* Low-level REAL/string conversions *) |
| |
| IMPORT |
| ConvTypes; |
| |
| TYPE |
| (* strAllRight, strOutOfRange, strWrongFormat, strEmpty *) |
| ConvResults = ConvTypes.ConvResults; |
| |
| PROCEDURE ScanReal (inputCh: CHAR; VAR chClass: ConvTypes.ScanClass; |
| VAR nextState: ConvTypes.ScanState); |
| (* Represents the start state of a finite state scanner for real |
| numbers - assigns class of inputCh to chClass and a procedure |
| representing the next state to nextState. |
| *) |
| |
| PROCEDURE FormatReal (str: ARRAY OF CHAR): ConvResults; |
| (* Returns the format of the string value for conversion to REAL. *) |
| |
| PROCEDURE ValueReal (str: ARRAY OF CHAR): REAL; |
| (* Returns the value corresponding to the real number string value |
| str if str is well-formed; otherwise raises the RealConv |
| exception. |
| *) |
| |
| PROCEDURE LengthFloatReal (real: REAL; sigFigs: CARDINAL): CARDINAL; |
| (* Returns the number of characters in the floating-point string |
| representation of real with sigFigs significant figures. |
| *) |
| |
| PROCEDURE LengthEngReal (real: REAL; sigFigs: CARDINAL): CARDINAL; |
| (* Returns the number of characters in the floating-point engineering |
| string representation of real with sigFigs significant figures. |
| *) |
| |
| PROCEDURE LengthFixedReal (real: REAL; place: INTEGER): CARDINAL; |
| (* Returns the number of characters in the fixed-point string |
| representation of real rounded to the given place relative to the |
| decimal point. |
| *) |
| |
| PROCEDURE IsRConvException (): BOOLEAN; |
| (* Returns TRUE if the current coroutine is in the exceptional |
| execution state because of the raising of an exception in a |
| routine from this module; otherwise returns FALSE. |
| *) |
| |
| END RealConv. |