1-- A55B12A.ADA 2 3-- Grant of Unlimited Rights 4-- 5-- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687, 6-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained 7-- unlimited rights in the software and documentation contained herein. 8-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making 9-- this public release, the Government intends to confer upon all 10-- recipients unlimited rights equal to those held by the Government. 11-- These rights include rights to use, duplicate, release or disclose the 12-- released technical data and computer software in whole or in part, in 13-- any manner and for any purpose whatsoever, and to have or permit others 14-- to do so. 15-- 16-- DISCLAIMER 17-- 18-- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR 19-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED 20-- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE 21-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE 22-- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A 23-- PARTICULAR PURPOSE OF SAID MATERIAL. 24--* 25-- CHECK THAT THE SUBTYPE OF A LOOP PARAMETER IN A LOOP OF THE FORM 26-- 27-- FOR I IN ST RANGE L..R LOOP 28-- 29-- IS CORRECTLY DETERMINED SO THAT WHEN THE LOOP PARAMETER IS USED 30-- IN A CASE STATEMENT AN 'OTHERS' ALTERNATIVE IS NOT REQUIRED IF 31-- THE CHOICES COVER THE APPROPRIATE RANGE OF SUBTYPE VALUES. 32 33-- CASE A : 34-- L AND R ARE BOTH STATIC EXPRESSIONS, AND ST IS A STATIC 35-- SUBTYPE COVERING A RANGE GREATER THAN L..R . 36 37 38-- RM 02/02/80 39-- JRK 03/02/83 40 41WITH REPORT ; 42PROCEDURE A55B12A IS 43 44 USE REPORT ; 45 46BEGIN 47 48 TEST("A55B12A" , "CHECK THAT THE SUBTYPE OF A LOOP PARAMETER" & 49 " IN A LOOP OF THE FORM 'FOR I IN ST RANGE" & 50 " L..R LOOP' IS CORRECTLY DETERMINED (A)" ); 51 52 DECLARE 53 54 SUBTYPE STAT IS INTEGER RANGE 1..10 ; 55 TYPE NEW_STAT IS NEW INTEGER RANGE 1..10 ; 56 57 TYPE ENUMERATION IS ( A,B,C,D,E,F,G,H,K,L,M,N ); 58 SUBTYPE STAT_E IS ENUMERATION RANGE A..L ; 59 SUBTYPE STAT_B IS BOOLEAN RANGE FALSE..TRUE ; 60 SUBTYPE STAT_C IS CHARACTER RANGE 'A'..'L' ; 61 62 BEGIN 63 64 FOR I IN STAT RANGE 1..5 LOOP 65 66 CASE I IS 67 WHEN 1 | 3 | 5 => NULL ; 68 WHEN 2 | 4 => NULL ; 69 END CASE; 70 71 END LOOP; 72 73 FOR I IN NEW_STAT RANGE 1..5 LOOP 74 75 CASE I IS 76 WHEN 1 | 3 | 5 => NULL ; 77 WHEN 2 | 4 => NULL ; 78 END CASE; 79 80 END LOOP; 81 82 FOR I IN INTEGER RANGE 1..5 LOOP 83 84 CASE I IS 85 WHEN 1 | 3 | 5 => NULL ; 86 WHEN 2 | 4 => NULL ; 87 END CASE; 88 89 END LOOP; 90 91 92 FOR I IN REVERSE STAT RANGE 1..5 LOOP 93 94 CASE I IS 95 WHEN 1 | 3 | 5 => NULL ; 96 WHEN 2 | 4 => NULL ; 97 END CASE; 98 99 END LOOP; 100 101 102 FOR I IN STAT_E RANGE A..E LOOP 103 104 CASE I IS 105 WHEN C..E => NULL ; 106 WHEN A..B => NULL ; 107 END CASE; 108 109 END LOOP; 110 111 112 FOR I IN STAT_B RANGE TRUE..TRUE LOOP 113 114 CASE I IS 115 WHEN TRUE => NULL ; 116 END CASE; 117 118 END LOOP; 119 120 121 FOR I IN STAT_C RANGE 'A'..'E' LOOP 122 123 CASE I IS 124 WHEN 'A'..'C' => NULL ; 125 WHEN 'D'..'E' => NULL ; 126 END CASE; 127 128 END LOOP; 129 130 131 FOR I IN STAT_C RANGE 'E'..'B' LOOP 132 133 CASE I IS 134 WHEN 'D'..'C' => NULL ; 135 WHEN 'E'..'B' => NULL ; 136 WHEN 'F'..'A' => NULL ; 137 WHEN 'M'..'A' => NULL ; 138 END CASE; 139 140 END LOOP; 141 142 143 END ; 144 145 RESULT ; 146 147END A55B12A ; 148