📄 c52005d.ada
字号:
-- C52005D.ADA-- Grant of Unlimited Rights---- Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,-- F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained -- unlimited rights in the software and documentation contained herein.-- Unlimited rights are defined in DFAR 252.227-7013(a)(19). By making -- this public release, the Government intends to confer upon all -- recipients unlimited rights equal to those held by the Government. -- These rights include rights to use, duplicate, release or disclose the -- released technical data and computer software in whole or in part, in -- any manner and for any purpose whatsoever, and to have or permit others -- to do so.---- DISCLAIMER---- ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR-- DISCLOSED ARE AS IS. THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED -- WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE-- SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE -- OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A-- PARTICULAR PURPOSE OF SAID MATERIAL.--*-- CHECK THAT THE CONSTRAINT_ERROR EXCEPTION IS RAISED WHEN A DYNAMIC-- EXPRESSION VALUE IS OUTSIDE THE STATIC RANGE OF INTEGER, BOOLEAN,-- CHARACTER, AND ENUMERATION ASSIGNMENT TARGET VARIABLES.-- JRK 7/21/80-- SPS 3/21/83WITH REPORT;PROCEDURE C52005D IS USE REPORT;BEGIN TEST ("C52005D", "CHECK THAT CONSTRAINT_ERROR EXCEPTION IS RAISED " & "ON DYNAMIC OUT OF RANGE INTEGER, BOOLEAN, CHARACTER, " & "AND ENUMERATION ASSIGNMENTS");------------------------- DECLARE I1 : INTEGER RANGE 0..10 := 5; BEGIN I1 := IDENT_INT(11); FAILED ("EXCEPTION NOT RAISED FOR OUT OF RANGE INT ASSNMT"); EXCEPTION WHEN CONSTRAINT_ERROR => IF I1 /= 5 THEN FAILED ("VALUE ALTERED BEFORE INT RANGE EXCEPTION"); END IF; END;------------------------- DECLARE I2 : INTEGER RANGE 0..10 := 5; BEGIN I2 := IDENT_INT(10); EXCEPTION WHEN CONSTRAINT_ERROR => FAILED ("EXCEPTION RAISED ON LEGAL INTEGER ASSIGNMENT"); END;------------------------- DECLARE B1 : BOOLEAN RANGE TRUE..TRUE := TRUE; BEGIN B1 := IDENT_BOOL(FALSE); FAILED ("EXCEPTION NOT RAISED FOR OUT OF RANGE BOOL ASSNMT"); EXCEPTION WHEN CONSTRAINT_ERROR => IF B1 /= TRUE THEN FAILED ("VALUE ALTERED BEFORE BOOLEAN RANGE EXCEPTION"); END IF; END;------------------------- DECLARE B2 : BOOLEAN := TRUE; BEGIN B2 := IDENT_BOOL(FALSE); EXCEPTION WHEN CONSTRAINT_ERROR => FAILED ("EXCEPTION RAISED ON LEGAL BOOLEAN ASSNMNT"); END;------------------------- DECLARE C1 : CHARACTER RANGE 'B'..'Z' := 'M'; BEGIN C1 := IDENT_CHAR('A'); FAILED ("EXCEPTION NOT RAISED FOR OUT OF RANGE CHAR ASSNMNT"); EXCEPTION WHEN CONSTRAINT_ERROR => IF C1 /= 'M' THEN FAILED ("VALUE ALTERED BEFORE CHARACTER RANGE " & "EXCEPTION"); END IF; END;------------------------- DECLARE C2 : CHARACTER RANGE 'B'..'Z' := 'M'; BEGIN C2 := IDENT_CHAR('B'); EXCEPTION WHEN CONSTRAINT_ERROR => FAILED ("EXCEPTION RAISED OF LEGAL CHARACTER ASSNMNT"); END;------------------------- DECLARE TYPE DAY IS (SUN, MON, TUE, WED, THU, FRI, SAT); ALLDAYS : DAY := TUE; WORKDAY : DAY RANGE MON..FRI := TUE; BEGIN IF EQUAL(3,3) THEN ALLDAYS := SUN; END IF; WORKDAY := ALLDAYS; FAILED ("EXCEPTION NOT RAISED FOR OUT OF RANGE ENUM. " & "ASSIGNMENT"); EXCEPTION WHEN CONSTRAINT_ERROR => IF WORKDAY /= TUE THEN FAILED ("VALUE ALTERED BEFORE ENUM. RANGE EXCEPTION"); END IF; END;------------------------- DECLARE TYPE DAY IS (SUN, MON, TUE, WED, THU, FRI, SAT); ALLDAYS : DAY := TUE; WORKDAY : DAY RANGE MON..FRI := TUE; BEGIN IF EQUAL(3,3) THEN ALLDAYS := FRI; END IF; WORKDAY := ALLDAYS; EXCEPTION WHEN CONSTRAINT_ERROR => FAILED ("EXCEPTION RAISED ON LEGAL ENUM. ASSNMNT"); END;------------------------- RESULT;END C52005D;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -