cc3017b.ada

来自「linux下编程用 编译软件」· ADA 代码 · 共 471 行 · 第 1/2 页

ADA
471
字号
-- CC3017B.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 AN INSTANCE OF A GENERIC PROCEDURE MUST DECLARE A-- PROCEDURE AND THAT AN INSTANCE OF A GENERIC FUNCTION MUST-- DECLARE A FUNCTION. CHECK THAT CONSTRAINT_ERROR IS NOT RAISED-- IF THE DEFAULT VALUE FOR A FORMAL PARAMETER DOES NOT SATISFY-- THE CONSTRAINTS OF THE SUBTYPE_INDICATION WHEN THE     -- DECLARATION IS ELABORATED, ONLY WHEN THE DEFAULT IS USED.   --   SUBTESTS ARE:--        (A) ARRAY PARAMETERS CONSTRAINED WITH NONSTATIC BOUNDS AND--            INITIALIZED WITH A STATIC AGGREGATE.--        (B) A SCALAR PARAMETER WITH NON-STATIC RANGE CONSTRAINTS--            INITIALIZED WITH A STATIC VALUE.--        (C) A RECORD PARAMETER WHOSE COMPONENTS HAVE NON-STATIC--            CONSTRAINTS INITIALIZED WITH A STATIC AGGREGATE.--        (D) AN ARRAY PARAMETER CONSTRAINED WITH STATIC BOUNDS ON SUB---            SCRIPTS AND NON-STATIC BOUNDS ON COMPONENTS, INITIALIZED--            WITH A STATIC AGGREGATE.--        (E) A RECORD PARAMETER WITH A NON-STATIC CONSTRAINT--            INITIALIZED WITH A STATIC AGGREGATE.-- EDWARD V. BERARD, 7 AUGUST 1990WITH REPORT;PROCEDURE CC3017B ISBEGIN     REPORT.TEST ("CC3017B", "CHECK THAT AN INSTANCE OF A GENERIC " &                  "PROCEDURE MUST DECLARE A PROCEDURE AND THAT AN " &                  "INSTANCE OF A GENERIC FUNCTION MUST DECLARE A " &                  "FUNCTION. CHECK THAT CONSTRAINT_ERROR IS NOT " &                  "RAISED IF AN INITIALIZATION VALUE DOES NOT SATISFY " &                  "CONSTRAINTS ON A FORMAL PARAMETER");     --------------------------------------------------     NONSTAT_ARRAY_PARMS:          DECLARE     --        (A) ARRAY PARAMETERS CONSTRAINED WITH NONSTATIC BOUNDS AND--            INITIALIZED WITH A STATIC AGGREGATE.          TYPE NUMBER IS RANGE 1 .. 100 ;                    GENERIC                      TYPE INTEGER_TYPE IS RANGE <> ;            LOWER : IN INTEGER_TYPE ;            UPPER : IN INTEGER_TYPE ;                    PROCEDURE PA (FIRST  : IN INTEGER_TYPE ;                        SECOND : IN INTEGER_TYPE) ;          PROCEDURE PA (FIRST  : IN INTEGER_TYPE ;                        SECOND : IN INTEGER_TYPE) IS                                       TYPE A1 IS ARRAY (INTEGER_TYPE RANGE LOWER .. FIRST,                                 INTEGER_TYPE RANGE LOWER .. SECOND)                                         OF INTEGER_TYPE;               PROCEDURE PA1 (A : A1 := ((LOWER,UPPER),(UPPER,UPPER)))                    IS               BEGIN                    REPORT.FAILED ("BODY OF PA1 EXECUTED");               EXCEPTION                    WHEN OTHERS =>                         REPORT.FAILED ("EXCEPTION RAISED IN PA1");               END PA1;          BEGIN  -- PA               PA1;          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    NULL;               WHEN OTHERS =>                    REPORT.FAILED ("WRONG EXCEPTION RAISED - PA1");          END PA;                    PROCEDURE NEW_PA IS NEW PA (INTEGER_TYPE => NUMBER,                                      LOWER        => 1,                                      UPPER        => 50) ;     BEGIN   -- NONSTAT_ARRAY_PARMS               NEW_PA (FIRST  => NUMBER (25),                  SECOND => NUMBER (75));               EXCEPTION          WHEN OTHERS =>               REPORT.FAILED ("EXCEPTION RAISED IN CALL TO NEW_PA");                    END NONSTAT_ARRAY_PARMS ;             --------------------------------------------------     SCALAR_NON_STATIC:          DECLARE     --        (B) A SCALAR PARAMETER WITH NON-STATIC RANGE CONSTRAINTS--            INITIALIZED WITH A STATIC VALUE.          TYPE NUMBER IS RANGE 1 .. 100 ;                    GENERIC                      TYPE INTEGER_TYPE IS RANGE <> ;            STATIC_VALUE : IN INTEGER_TYPE ;                    PROCEDURE PB (LOWER  : IN INTEGER_TYPE ;                        UPPER  : IN INTEGER_TYPE) ;          PROCEDURE PB (LOWER  : IN INTEGER_TYPE ;                        UPPER  : IN INTEGER_TYPE) IS               SUBTYPE INT IS INTEGER_TYPE RANGE LOWER .. UPPER ;               PROCEDURE PB1 (I : INT := STATIC_VALUE) IS               BEGIN  -- PB1                    REPORT.FAILED ("BODY OF PB1 EXECUTED");               EXCEPTION                    WHEN OTHERS =>                         REPORT.FAILED ("EXCEPTION RAISED IN PB1");               END PB1;          BEGIN  -- PB               PB1;          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    NULL;               WHEN OTHERS =>                    REPORT.FAILED ("WRONG EXCEPTION RAISED - PB1");          END PB;          PROCEDURE NEW_PB IS NEW PB (INTEGER_TYPE => NUMBER,                                      STATIC_VALUE => 20) ;     BEGIN   -- SCALAR_NON_STATIC                    NEW_PB (LOWER  => NUMBER (25),                  UPPER  => NUMBER (75));     EXCEPTION          WHEN OTHERS =>               REPORT.FAILED ("EXCEPTION RAISED IN CALL TO NEW_PB");     END SCALAR_NON_STATIC ;      --------------------------------------------------     REC_NON_STAT_COMPS:          DECLARE     --        (C) A RECORD PARAMETER WHOSE COMPONENTS HAVE NON-STATIC--            CONSTRAINTS INITIALIZED WITH A STATIC AGGREGATE.          TYPE NUMBER IS RANGE 1 .. 100 ;                    GENERIC                      TYPE INTEGER_TYPE IS RANGE <> ;            F_STATIC_VALUE : IN INTEGER_TYPE ;            S_STATIC_VALUE : IN INTEGER_TYPE ;            T_STATIC_VALUE : IN INTEGER_TYPE ;            L_STATIC_VALUE : IN INTEGER_TYPE ;                    PROCEDURE PC (LOWER  : IN INTEGER_TYPE ;                        UPPER  : IN INTEGER_TYPE) ;          PROCEDURE PC (LOWER  : IN INTEGER_TYPE ;                        UPPER  : IN INTEGER_TYPE) IS                                       SUBTYPE SUBINTEGER_TYPE IS INTEGER_TYPE                       RANGE LOWER .. UPPER ;               TYPE AR1 IS ARRAY (INTEGER RANGE 1..3) OF                      SUBINTEGER_TYPE ;               TYPE REC IS                    RECORD                         FIRST  : SUBINTEGER_TYPE ;                         SECOND : AR1 ;                    END RECORD;               PROCEDURE PC1 (R : REC := (F_STATIC_VALUE,                                         (S_STATIC_VALUE,                                          T_STATIC_VALUE,                                          L_STATIC_VALUE))) IS               BEGIN  -- PC1                    REPORT.FAILED ("BODY OF PC1 EXECUTED");               EXCEPTION                    WHEN OTHERS =>                         REPORT.FAILED ("EXCEPTION RAISED IN PC1");               END PC1;          BEGIN  -- PC               PC1;          EXCEPTION               WHEN CONSTRAINT_ERROR =>                    NULL;               WHEN OTHERS =>                    REPORT.FAILED ("WRONG EXCEPTION RAISED - PC1");          END PC;                   PROCEDURE NEW_PC IS NEW PC (INTEGER_TYPE => NUMBER,                                      F_STATIC_VALUE => 15,                                      S_STATIC_VALUE => 19,                                      T_STATIC_VALUE => 85,                                      L_STATIC_VALUE => 99) ;     BEGIN   -- REC_NON_STAT_COMPS          NEW_PC (LOWER => 20,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?