-- -*- Mode: Ada; fonts: CPTFONT,HL12I,CPTFONTB -*-
-- 1image0.1ada0   1rob0  1840-1040-118
0-- 1based0 1on0 1test0.1ada0  1rob0  1840-1010-112
0--
-- 1try0 1to0 1convert0 1a0 1string0 1character0 1to0 1an0 1integer

2with0 TEXT_IO; 2use0 TEXT_IO;
2package0 INT_IO 2is0 2new0 INTEGER_IO(INTEGER);
2with0 INT_IO; 2use0 INT_IO;
2with0 TEXT_IO; 2use0 TEXT_IO;
2procedure0 TEST 2is

0 INPUT_STRING : STRING (1..5) := "a6cde";
 INDEX : INTEGER :=1;
 QVAL  : INTEGER :=2;
2begin

0  2begin
0   QVAL := INTEGER'(INPUT_STRING(INDEX));
   PUT ("error - constraint_error not raised");
  2exception
0   2when0 CONSTRAINT_ERROR => 
    PUT ("Constraint error raised 'a' isn't an integer");
    NEW_LINE;
  2end0;
 
  QVAL := INTEGER'(INPUT_STRING(INDEX));
  PUT ("Six is ");  PUT (QVAL); NEW_LINE;

  2begin
0   QVAL := INTEGER'VALUE(CHARACTER'IMAGE(INPUT_STRING(INDEX)));
   PUT ("error - constraint_error not raised");
  2exception
0   2when0 CONSTRAINT_ERROR => 
    PUT ("Constraint error raised - the string a isn't a number");
    NEW_LINE;
  2end0;
  QVAL := INTEGER'VALUE(CHARACTER'IMAGE(INPUT_STRING(2)));
  PUT ("Six is ");
  PUT (QVAL); NEW_LINE;

  QVAL := CHARACTER'POS(INPUT_STRING(INDEX)); 
  PUT ("pos of a is ");
  PUT (QVAL); NEW_LINE;

-- 1should0 1raise0 1constraint0 1error
0 QVAL := INTEGER'VALUE(STRING(INPUT_STRING(INDEX)));
 PUT ("error -- constraint_error not raised");
2exception
0 2when0 CONSTRAINT_ERROR => 
    PUT ("Constraint error raised");
2end0 TEST;

