WITH REPORT; USE REPORT;
WITH TEXT_IO; USE TEXT_IO;
PROCEDURE CE3704D IS
INCOMPLETE : EXCEPTION;
BEGIN
TEST ("CE3704D", "CHECK THAT INTEGER_IO GET READS AT MOST " &
"WIDTH CHARACTERS OR UP TO THE NEXT " &
"TERMINATOR; INCLUDING LEADING BLANKS AND " &
"HORIZONTAL TABULATION CHARACTERS, WHEN WIDTH " &
"IS NONZERO");
DECLARE
FT : FILE_TYPE;
X : INTEGER;
PACKAGE IIO IS NEW INTEGER_IO (INTEGER);
USE IIO;
BEGIN
BEGIN
CREATE (FT, OUT_FILE, LEGAL_FILE_NAME);
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("USE_ERROR RAISED; TEXT CREATE " &
"WITH OUT_FILE MODE");
RAISE INCOMPLETE;
WHEN NAME_ERROR =>
NOT_APPLICABLE ("NAME_ERROR RAISED; TEXT CREATE " &
"WITH OUT_FILE MODE");
RAISE INCOMPLETE;
END;
PUT (FT, " 123");
NEW_LINE (FT);
PUT (FT, "-5678");
NEW_LINE (FT);
PUT (FT, " ");
NEW_PAGE (FT);
PUT (FT, ASCII.HT & "9");
NEW_PAGE (FT);
CLOSE (FT);
BEGIN
OPEN (FT, IN_FILE, LEGAL_FILE_NAME);
EXCEPTION
WHEN USE_ERROR =>
NOT_APPLICABLE ("USE_ERROR RAISED; TEXT OPEN " &
"WITH IN_FILE MODE");
RAISE INCOMPLETE;
END;
GET (FT, X, 5);
IF X /= IDENT_INT (123) THEN
FAILED ("WIDTH CHARACTERS NOT READ - 1");
ELSE
BEGIN
GET (FT, X, 2);
FAILED ("DATA_ERROR NOT RAISED - 1");
EXCEPTION
WHEN DATA_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED -1");
END;
SKIP_LINE (FT);
GET (FT, X, 6);
IF X /= IDENT_INT (-5678) THEN
FAILED ("GET WITH WIDTH " &
"INCORRECT - 2");
ELSE
BEGIN
GET (FT, X, 2);
FAILED ("DATA_ERROR NOT RAISED - 2");
EXCEPTION
WHEN DATA_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED - 2");
END;
SKIP_LINE(FT);
BEGIN
GET (FT, X, 2);
FAILED ("DATA_ERROR NOT RAISED - 3");
EXCEPTION
WHEN DATA_ERROR =>
NULL;
WHEN OTHERS =>
FAILED ("WRONG EXCEPTION RAISED - 3");
END;
SKIP_LINE(FT);
GET (FT, X, 2);
IF X /= IDENT_INT (9) THEN
FAILED ("GET WITH WIDTH " &
"INCORRECT - 3");
END IF;
END IF;
END IF;
BEGIN
DELETE (FT);
EXCEPTION
WHEN USE_ERROR =>
NULL;
END;
EXCEPTION
WHEN INCOMPLETE =>
NULL;
END;
RESULT;
END CE3704D;