John.Goodenough@SEI.CMU.EDU (03/14/88)
With respect to the recent question about the image of a nongraphic character, AI-00239 addresses this issue. This is a non-binding interpretation, meaning it is recommended, but not enforced, and may be the required position in a future version of the Standard. I quote from the summary of this commentary: If ENUM_IO is an instantiation of ENUMERATION_IO for a character type that contains a non-graphic character, e.g., package ENUM_IO is new ENUMERATION_IO (CHARACTER); then for each non-graphic character (such as ASCII.NUL), ENUM_IO.PUT should output the corresponding sequence of characters used in the type definition (e.g., PUT(ASCII.NUL) should output the string "NUL" if SET has the value UPPER_CASE and WIDTH is less than 4). Furthermore, ENUM_IO.GET should be able to read the sequence of characters output by ENUM_IO.PUT for a non-graphic character, returning in its ITEM parameter the corresponding enumeration value. Similarly, the image of a non-graphic character (i.e., the result returned for the attribute designator IMAGE) should be the sequence of characters used in the type definition of CHARACTER (e.g., CHARACTER'IMAGE(ASCII.NUL) = "NUL"), and 'VALUE should accept such a string as representing the corresponding enumeration value. An implementation conforms to the Standard in this respect if the result produced by 'IMAGE for a non-graphic character is accepted by 'VALUE, and if the result (if any) produced by PUT can be read by GET; GET is also allowed to raise DATA_ERROR when attempting to read any string produced by PUT for a non-graphic character. This interpretation is non-binding, i.e., implementers are encouraged to conform to it but are not required to do so by the validation tests. A future version of the Standard may incorporate this interpretation. John Goodenough Software Engineering Institute Goodenough@sei.cmu.edu