WITH REPORT; USE REPORT;
PROCEDURE C87B15A IS
FUNCTION "+" (X, Y : INTEGER) RETURN INTEGER
RENAMES STANDARD."*";
TYPE BOX IS ARRAY (0 .. 1, 3 .. 6, 5 .. 11) OF BOOLEAN;
B1 : BOX;
BEGIN
TEST ("C87B15A","ARRAY ATTRIBUTES: FIRST (N), LAST (N), RANGE " &
"(N) AND LENGTH (N) TAKE UNIVERSAL_INTEGER OPERANDS");
IF BOX'FIRST (1 + 0) /= 0 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 1");
END IF;
IF B1'FIRST (1 + 1) /= 3 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 2");
END IF;
IF B1'FIRST (2 + 1) /= 5 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 3");
END IF;
IF BOX'LAST (0 + 1) /= 1 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 4");
END IF;
IF B1'LAST (1 + 1) /= 6 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 5");
END IF;
IF B1'LAST (1 + 2) /= 11 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 6");
END IF;
IF BOX'LENGTH (0 + 1) /= 2 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 7");
END IF;
IF B1'LENGTH (1 + 1) /= 4 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 8");
END IF;
IF B1'LENGTH (2 + 1) /= 7 THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 9");
END IF;
IF 1 NOT IN BOX'RANGE (0 + 1) THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 10");
END IF;
IF 4 NOT IN B1'RANGE (1 + 1) THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 11");
END IF;
IF 9 NOT IN B1'RANGE (2 + 1) THEN
FAILED ("ARRAY ATTRIBUTE OPERAND MUST BE OF TYPE " &
"UNIVERSAL_INTEGER - 12");
END IF;
RESULT;
END C87B15A;