cc1311a.ada

来自「用于进行gcc测试」· ADA 代码 · 共 481 行 · 第 1/2 页

ADA
481
字号
-- CC1311A.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 DEFAULT EXPRESSIONS OF THE PARAMETERS OF A FORMAL--     SUBPROGRAM ARE USED INSTEAD OF THE DEFAULTS (IF ANY) OF THE--     ACTUAL SUBPROGRAM PARAMETER.-- HISTORY:--     RJW 06/05/86  CREATED ORIGINAL TEST.--     VCL 08/18/87  CHANGED A COUPLE OF STATIC DEFAULT EXPRESSIONS FOR--                   FORMAL SUBPROGRAM PARAMETERS TO DYNAMIC --                   EXPRESSIONS VIA THE USE OF THE IDENTITY FUNCTION.--     EDWARD V. BERARD 08/13/90  --                   ADDED CHECKS FOR MULTI-DIMENSIONAL ARRAYS.WITH REPORT ;PROCEDURE CC1311A IS     TYPE NUMBERS IS (ZERO, ONE ,TWO);     SHORT_START : CONSTANT := -100 ;     SHORT_END   : CONSTANT := 100 ;     TYPE SHORT_RANGE IS RANGE SHORT_START .. SHORT_END ;         SUBTYPE REALLY_SHORT IS SHORT_RANGE RANGE -9 .. 0 ;         TYPE MONTH_TYPE IS (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG,                         SEP, OCT, NOV, DEC) ;                             SUBTYPE FIRST_HALF IS MONTH_TYPE RANGE JAN .. JUN ;         TYPE DAY_TYPE IS RANGE 1 .. 31 ;     TYPE YEAR_TYPE IS RANGE 1904 .. 2050 ;     TYPE DATE IS RECORD          MONTH : MONTH_TYPE ;          DAY   : DAY_TYPE ;          YEAR  : YEAR_TYPE ;     END RECORD ;         TODAY         : DATE := (MONTH => AUG,                              DAY   => 8,                              YEAR  => 1990) ;                                 FIRST_DATE     : DATE := (DAY   => 6,                               MONTH => JUN,                               YEAR  => 1967) ;          SUBTYPE FIRST_FIVE IS CHARACTER RANGE 'A' .. 'E' ;                                 TYPE THREE_DIMENSIONAL IS ARRAY (REALLY_SHORT,                                      FIRST_HALF,                                      FIRST_FIVE) OF DATE ;                                 GENERIC              TYPE FIRST_INDEX IS (<>) ;          TYPE SECOND_INDEX IS (<>) ;          TYPE THIRD_INDEX IS (<>) ;          TYPE COMPONENT_TYPE IS PRIVATE ;          DEFAULT_VALUE : IN COMPONENT_TYPE ;          TYPE CUBE IS ARRAY (FIRST_INDEX,                               SECOND_INDEX,                              THIRD_INDEX) OF COMPONENT_TYPE ;          WITH FUNCTION FUN (FIRST : IN CUBE := (CUBE'RANGE =>                                                (CUBE'RANGE (2) =>                                                (CUBE'RANGE (3) =>                                                     DEFAULT_VALUE))))                        RETURN CUBE ;                             PROCEDURE PROC_WITH_3D_FUNC ;         PROCEDURE PROC_WITH_3D_FUNC IS         BEGIN  -- PROC_WITH_3D_FUNC              IF FUN /= CUBE'(CUBE'RANGE =>                         (CUBE'RANGE (2) =>                         (CUBE'RANGE (3) => DEFAULT_VALUE))) THEN               REPORT.FAILED ("PROBLEMS WITH THREE DIMENSIONAL " &                              "ARRAY, FUNCTION, AND PROCEDURE.") ;          END IF ;             END PROC_WITH_3D_FUNC ;         GENERIC              TYPE FIRST_INDEX IS (<>) ;          TYPE SECOND_INDEX IS (<>) ;          TYPE THIRD_INDEX IS (<>) ;          TYPE COMPONENT_TYPE IS PRIVATE ;          DEFAULT_VALUE : IN COMPONENT_TYPE ;          TYPE CUBE IS ARRAY (FIRST_INDEX,                               SECOND_INDEX,                              THIRD_INDEX) OF COMPONENT_TYPE ;          WITH FUNCTION FUN (FIRST : IN CUBE := (CUBE'RANGE =>                                                (CUBE'RANGE (2) =>                                                (CUBE'RANGE (3) =>                                                     DEFAULT_VALUE))))                        RETURN CUBE ;                             PACKAGE PKG_WITH_3D_FUNC IS     END PKG_WITH_3D_FUNC ;         PACKAGE BODY PKG_WITH_3D_FUNC IS     BEGIN  -- PKG_WITH_3D_FUNC          REPORT.TEST("CC1311A","CHECK THAT THE DEFAULT EXPRESSIONS " &                      "OF THE PARAMETERS OF A FORMAL SUBPROGRAM ARE " &                      "USED INSTEAD OF THE DEFAULTS (IF ANY) OF THE " &                      "ACTUAL SUBPROGRAM PARAMETER" ) ;              IF FUN /= CUBE'(CUBE'RANGE =>                         (CUBE'RANGE (2) =>                         (CUBE'RANGE (3) => DEFAULT_VALUE))) THEN               REPORT.FAILED ("PROBLEMS WITH THREE DIMENSIONAL " &                              "ARRAY, FUNCTION, AND PACKAGE.") ;          END IF ;             END PKG_WITH_3D_FUNC ;         GENERIC              TYPE FIRST_INDEX IS (<>) ;          TYPE SECOND_INDEX IS (<>) ;          TYPE THIRD_INDEX IS (<>) ;          TYPE COMPONENT_TYPE IS PRIVATE ;          DEFAULT_VALUE : IN COMPONENT_TYPE ;          TYPE CUBE IS ARRAY (FIRST_INDEX,                               SECOND_INDEX,                              THIRD_INDEX) OF COMPONENT_TYPE ;          WITH FUNCTION FUN (FIRST : IN CUBE := (CUBE'RANGE =>                                                (CUBE'RANGE (2) =>                                                (CUBE'RANGE (3) =>                                                     DEFAULT_VALUE))))                        RETURN CUBE ;                             FUNCTION FUNC_WITH_3D_FUNC RETURN BOOLEAN ;         FUNCTION FUNC_WITH_3D_FUNC RETURN BOOLEAN IS     BEGIN  -- FUNC_WITH_3D_FUNC               RETURN FUN = CUBE'(CUBE'RANGE =>                            (CUBE'RANGE (2) =>                            (CUBE'RANGE (3) => DEFAULT_VALUE))) ;                            END FUNC_WITH_3D_FUNC ;         GENERIC              TYPE FIRST_INDEX IS (<>) ;          TYPE SECOND_INDEX IS (<>) ;          TYPE THIRD_INDEX IS (<>) ;          TYPE COMPONENT_TYPE IS PRIVATE ;          DEFAULT_VALUE : IN COMPONENT_TYPE ;          TYPE CUBE IS ARRAY (FIRST_INDEX,                               SECOND_INDEX,                              THIRD_INDEX) OF COMPONENT_TYPE ;          WITH PROCEDURE PROC (INPUT  : IN  CUBE := (CUBE'RANGE =>                                                    (CUBE'RANGE (2) =>                                                    (CUBE'RANGE (3) =>                                                     DEFAULT_VALUE))) ;                               OUTPUT : OUT CUBE) ;                             PROCEDURE PROC_WITH_3D_PROC ;         PROCEDURE PROC_WITH_3D_PROC IS              RESULTS : CUBE ;             BEGIN  -- PROC_WITH_3D_PROC              PROC (OUTPUT => RESULTS) ;                  IF RESULTS /= CUBE'(CUBE'RANGE =>                             (CUBE'RANGE (2) =>                             (CUBE'RANGE (3) => DEFAULT_VALUE))) THEN               REPORT.FAILED ("PROBLEMS WITH THREE DIMENSIONAL " &                              "ARRAY, PROCEDURE, AND PROCEDURE.") ;          END IF ;             END PROC_WITH_3D_PROC ;     GENERIC              TYPE FIRST_INDEX IS (<>) ;          TYPE SECOND_INDEX IS (<>) ;          TYPE THIRD_INDEX IS (<>) ;          TYPE COMPONENT_TYPE IS PRIVATE ;          DEFAULT_VALUE : IN COMPONENT_TYPE ;          TYPE CUBE IS ARRAY (FIRST_INDEX,                               SECOND_INDEX,                              THIRD_INDEX) OF COMPONENT_TYPE ;          WITH PROCEDURE PROC (INPUT  : IN  CUBE := (CUBE'RANGE =>                                                    (CUBE'RANGE (2) =>                                                    (CUBE'RANGE (3) =>                                                     DEFAULT_VALUE))) ;                               OUTPUT : OUT CUBE) ;                             PACKAGE PKG_WITH_3D_PROC IS     END PKG_WITH_3D_PROC ;         PACKAGE BODY PKG_WITH_3D_PROC IS              RESULTS : CUBE ;             BEGIN  -- PKG_WITH_3D_PROC              PROC (OUTPUT => RESULTS) ;                  IF RESULTS /= CUBE'(CUBE'RANGE =>                             (CUBE'RANGE (2) =>                             (CUBE'RANGE (3) => DEFAULT_VALUE))) THEN               REPORT.FAILED ("PROBLEMS WITH THREE DIMENSIONAL " &                              "ARRAY, PROCEDURE, AND PACKAGE.") ;          END IF ;             END PKG_WITH_3D_PROC ;         GENERIC

⌨️ 快捷键说明

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