cc1311a.ada

来自「Mac OS X 10.4.9 for x86 Source Code gcc」· ADA 代码 · 共 481 行 · 第 1/2 页

ADA
481
字号
              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) ;                             FUNCTION FUNC_WITH_3D_PROC RETURN BOOLEAN ;         FUNCTION FUNC_WITH_3D_PROC RETURN BOOLEAN IS              RESULTS : CUBE ;             BEGIN  -- FUNC_WITH_3D_PROC              PROC (OUTPUT => RESULTS) ;          RETURN RESULTS = CUBE'(CUBE'RANGE =>                                (CUBE'RANGE (2) =>                                (CUBE'RANGE (3) => DEFAULT_VALUE))) ;                              END FUNC_WITH_3D_PROC ;         GENERIC          TYPE T IS (<>);          WITH FUNCTION F (X : T := T'VAL (0)) RETURN T;     FUNCTION FUNC1 RETURN BOOLEAN;     FUNCTION FUNC1 RETURN BOOLEAN IS     BEGIN  -- FUNC1         RETURN F = T'VAL (0);     END FUNC1;     GENERIC          TYPE T IS (<>);          WITH FUNCTION F (X : T := T'VAL (REPORT.IDENT_INT(0)))                        RETURN T;     PACKAGE PKG1 IS END PKG1;     PACKAGE BODY PKG1 IS     BEGIN  -- PKG1          IF F /= T'VAL (0) THEN               REPORT.FAILED ("INCORRECT DEFAULT VALUE WITH " &                              "FUNCTION 'F' AND PACKAGE 'PKG1'" );          END IF;     END PKG1;     GENERIC          TYPE T IS (<>);          WITH FUNCTION F (X : T := T'VAL (0)) RETURN T;     PROCEDURE PROC1;     PROCEDURE PROC1 IS     BEGIN  -- PROC1          IF F /= T'VAL (0) THEN               REPORT.FAILED ("INCORRECT DEFAULT VALUE WITH " &                              "FUNCTION 'F' AND PROCEDURE 'PROC1'" );          END IF;     END PROC1;     GENERIC          TYPE T IS (<>);          WITH PROCEDURE P (RESULTS : OUT T ;                             X       : T := T'VAL (0)) ;     FUNCTION FUNC2 RETURN BOOLEAN;     FUNCTION FUNC2 RETURN BOOLEAN IS          RESULTS : T;     BEGIN  -- FUNC2          P (RESULTS);          RETURN RESULTS = T'VAL (0);     END FUNC2;     GENERIC          TYPE T IS (<>);          WITH PROCEDURE P (RESULTS : OUT T;                            X       : T := T'VAL(REPORT.IDENT_INT(0)));     PACKAGE PKG2 IS END PKG2 ;     PACKAGE BODY PKG2 IS          RESULTS : T;     BEGIN  -- PKG2          P (RESULTS);          IF RESULTS /= T'VAL (0) THEN                REPORT.FAILED ("INCORRECT DEFAULT VALUE WITH " &                               "PROCEDURE 'P' AND PACKAGE 'PKG2'" );          END IF;     END PKG2;     GENERIC          TYPE T IS (<>);          WITH PROCEDURE P (RESULTS :OUT T; X : T := T'VAL (0));     PROCEDURE PROC2;     PROCEDURE PROC2 IS          RESULTS : T;     BEGIN  -- PROC2          P (RESULTS);          IF RESULTS /= T'VAL (0) THEN               REPORT.FAILED ("INCORRECT DEFAULT VALUE WITH " &                             "PROCEDURE 'P' AND PROCEDURE 'PROC2'" );          END IF;     END PROC2;     FUNCTION F1 (A : NUMBERS := ONE) RETURN NUMBERS IS     BEGIN  -- F1          RETURN A;     END;     PROCEDURE P2 (OUTVAR : OUT NUMBERS; INVAR : NUMBERS := TWO) IS     BEGIN  -- P2          OUTVAR := INVAR;     END;     FUNCTION TD_FUNC (FIRST : IN THREE_DIMENSIONAL :=                                       (THREE_DIMENSIONAL'RANGE =>                                       (THREE_DIMENSIONAL'RANGE (2) =>                                       (THREE_DIMENSIONAL'RANGE (3) =>                                            FIRST_DATE))))              RETURN THREE_DIMENSIONAL IS                      BEGIN  -- TD_FUNC              RETURN FIRST ;             END TD_FUNC ;         PROCEDURE TD_PROC (INPUT  : IN  THREE_DIMENSIONAL :=                                         (THREE_DIMENSIONAL'RANGE =>                                        (THREE_DIMENSIONAL'RANGE (2) =>                                        (THREE_DIMENSIONAL'RANGE (3) =>                                             FIRST_DATE))) ;                        OUTPUT : OUT THREE_DIMENSIONAL) IS     BEGIN  -- TD_PROC              OUTPUT := INPUT ;             END TD_PROC ;         PROCEDURE NEW_PROC_WITH_3D_FUNC IS NEW           PROC_WITH_3D_FUNC (FIRST_INDEX    => REALLY_SHORT,                             SECOND_INDEX   => FIRST_HALF,                             THIRD_INDEX    => FIRST_FIVE,                             COMPONENT_TYPE => DATE,                             DEFAULT_VALUE  => TODAY,                             CUBE           => THREE_DIMENSIONAL,                             FUN            => TD_FUNC) ;     PACKAGE NEW_PKG_WITH_3D_FUNC IS NEW           PKG_WITH_3D_FUNC (FIRST_INDEX     => REALLY_SHORT,                            SECOND_INDEX    => FIRST_HALF,                            THIRD_INDEX     => FIRST_FIVE,                            COMPONENT_TYPE  => DATE,                            DEFAULT_VALUE   => TODAY,                            CUBE            => THREE_DIMENSIONAL,                            FUN             => TD_FUNC) ;      FUNCTION NEW_FUNC_WITH_3D_FUNC IS NEW           FUNC_WITH_3D_FUNC (FIRST_INDEX    => REALLY_SHORT,                             SECOND_INDEX   => FIRST_HALF,                             THIRD_INDEX    => FIRST_FIVE,                             COMPONENT_TYPE => DATE,                             DEFAULT_VALUE  => TODAY,                             CUBE           => THREE_DIMENSIONAL,                             FUN            => TD_FUNC) ;     PROCEDURE NEW_PROC_WITH_3D_PROC IS NEW           PROC_WITH_3D_PROC (FIRST_INDEX    => REALLY_SHORT,                             SECOND_INDEX   => FIRST_HALF,                             THIRD_INDEX    => FIRST_FIVE,                             COMPONENT_TYPE => DATE,                             DEFAULT_VALUE  => TODAY,                             CUBE           => THREE_DIMENSIONAL,                             PROC           => TD_PROC) ;     PACKAGE NEW_PKG_WITH_3D_PROC IS NEW           PKG_WITH_3D_PROC (FIRST_INDEX     => REALLY_SHORT,                            SECOND_INDEX   => FIRST_HALF,                            THIRD_INDEX    => FIRST_FIVE,                            COMPONENT_TYPE => DATE,                            DEFAULT_VALUE  => TODAY,                            CUBE           => THREE_DIMENSIONAL,                            PROC           => TD_PROC) ;     FUNCTION NEW_FUNC_WITH_3D_PROC IS NEW           FUNC_WITH_3D_PROC (FIRST_INDEX    => REALLY_SHORT,                             SECOND_INDEX   => FIRST_HALF,                             THIRD_INDEX    => FIRST_FIVE,                             COMPONENT_TYPE => DATE,                             DEFAULT_VALUE  => TODAY,                             CUBE           => THREE_DIMENSIONAL,                             PROC           => TD_PROC) ;     FUNCTION  NFUNC1 IS NEW FUNC1 (NUMBERS, F1);     PACKAGE   NPKG1  IS NEW PKG1  (NUMBERS, F1);     PROCEDURE NPROC1 IS NEW PROC1 (NUMBERS, F1);     FUNCTION  NFUNC2 IS NEW FUNC2 (NUMBERS, P2);     PACKAGE   NPKG2  IS NEW PKG2  (NUMBERS, P2);     PROCEDURE NPROC2 IS NEW PROC2 (NUMBERS, P2);BEGIN  -- CC1311A     IF NOT NFUNC1 THEN          REPORT.FAILED ("INCORRECT DEFAULT VALUE " &                         "WITH FUNCTION 'NFUNC1'" ) ;     END IF ;     IF NOT NFUNC2 THEN          REPORT.FAILED ("INCORRECT DEFAULT VALUE " &                         "WITH FUNCTION 'NFUNC2'" ) ;     END IF ;     NPROC1 ;     NPROC2 ;         NEW_PROC_WITH_3D_FUNC ;         IF NOT NEW_FUNC_WITH_3D_FUNC THEN          REPORT.FAILED ("PROBLEMS WITH THREE DIMENSIONAL ARRAY, " &                         "FUNCTION, AND FUNCTION.") ;     END IF ;         NEW_PROC_WITH_3D_PROC ;         IF NOT NEW_FUNC_WITH_3D_PROC THEN          REPORT.FAILED ("PROBLEMS WITH THREE DIMENSIONAL ARRAY, " &                         "FUNCTION, AND PROCEDURE.") ;     END IF ;             REPORT.RESULT ;END CC1311A ;

⌨️ 快捷键说明

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