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 + -
显示快捷键?