version 0.73.0
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PTEST01.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 PARM01 PIC X(20) VALUE "ABCDEFGHIJ0123456789".
|
||||
01 PARM02.
|
||||
05 FILLER PIC X(4) VALUE "ABCD".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM03.
|
||||
05 FILLER PIC X(4) VALUE "0123".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM04.
|
||||
05 FILLER PIC X(4) VALUE "EFGH".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM05.
|
||||
05 FILLER PIC X(4) VALUE "4567".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 RES1.
|
||||
05 EPARM02 PIC X(4).
|
||||
05 EPARM03 PIC X(4).
|
||||
05 EPARM04 PIC X(4).
|
||||
05 EPARM05 PIC X(4).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
CALL "STEST01" USING PARM01.
|
||||
DISPLAY "C002:(" PARM01 "):(9876543210JIHGFEDCBA):"
|
||||
"Call by reference x(20).".
|
||||
|
||||
MOVE "ABCDEFGHIJ0123456789" TO PARM01.
|
||||
CALL "STEST03" USING BY CONTENT PARM01.
|
||||
DISPLAY "C004:(" PARM01 "):(ABCDEFGHIJ0123456789):"
|
||||
"Call by content x(20).".
|
||||
|
||||
CALL "STEST910" USING PARM02 BY CONTENT PARM03
|
||||
BY REFERENCE PARM04 BY CONTENT PARM05.
|
||||
MOVE PARM02 TO EPARM02.
|
||||
MOVE PARM03 TO EPARM03.
|
||||
MOVE PARM04 TO EPARM04.
|
||||
MOVE PARM05 TO EPARM05.
|
||||
DISPLAY "C005:(" RES1 "):(AB9D0123EF9H4567):"
|
||||
"Call by ref and by content in alternance x(4).".
|
||||
STOP RUN.
|
||||
@@ -0,0 +1,68 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PTEST02.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 G-PARM01.
|
||||
05 PARM01 PIC X(20) VALUE "TEST".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM03 PIC S9(9) COMP VALUE 0.
|
||||
01 G-PARM02.
|
||||
05 PARM02 PIC X(3).
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 G-PARM04.
|
||||
05 PARM04 PIC X(3).
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM05 PIC S9(18) COMP.
|
||||
01 RPARM05 REDEFINES PARM05.
|
||||
05 RPAR05L PIC S9(9) COMP.
|
||||
05 RPAR05H PIC S9(9) COMP.
|
||||
01 WRES01 PIC S9(4) COMP.
|
||||
01 WRES02 PIC S9(9) COMP.
|
||||
01 WERES01 PIC 9(4).
|
||||
01 WERES02 PIC 9(9).
|
||||
01 WS-COB EXTERNAL.
|
||||
05 WS-B4 PIC S9(9) COMP.
|
||||
05 WS-B2 PIC S9(4) COMP.
|
||||
05 WS-CHAR3 PIC X(3).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MOVE "ABCDEFGHIJ0123456789" TO PARM01.
|
||||
MOVE "XYZ" TO PARM02.
|
||||
MOVE "123" TO PARM04.
|
||||
MOVE 0 TO PARM03.
|
||||
CALL "STEST901" USING G-PARM01.
|
||||
MOVE 3 TO PARM03.
|
||||
CALL "STEST902" USING BY VALUE PARM03.
|
||||
CALL "STEST903" USING BY VALUE 5.
|
||||
CALL "STEST904" USING G-PARM02 BY VALUE PARM03 5
|
||||
BY REFERENCE G-PARM02 G-PARM04.
|
||||
CALL "STEST905" USING BY VALUE 1234567890123.
|
||||
MOVE 1234567890123 TO PARM05.
|
||||
CALL "STEST906" USING BY VALUE PARM05.
|
||||
CALL "STEST907" USING BY VALUE 5 RETURNING WRES01.
|
||||
MOVE WRES01 TO WERES01.
|
||||
DISPLAY "C201:(" WERES01 "):(0008):Returning short".
|
||||
|
||||
CALL "STEST908" USING BY VALUE 5 RETURNING WRES02.
|
||||
MOVE WRES02 TO WERES02.
|
||||
DISPLAY "C202:(" WERES02 "):(000000008):Returning long".
|
||||
|
||||
* CALL "STEST909" USING BY VALUE 5 RETURNING PARM05.
|
||||
|
||||
MOVE "USD" TO WS-CHAR3.
|
||||
MOVE 1234 TO WS-B2.
|
||||
MOVE 6789 TO WS-B4.
|
||||
CALL "STEST930".
|
||||
|
||||
STOP RUN.
|
||||
@@ -0,0 +1,46 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PTEST03.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 03-SEP-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 W-IDX PIC 99.
|
||||
01 W-ELEM1 PIC X(5).
|
||||
01 W-BINARY PIC S9(9) COMP.
|
||||
01 W-GROUP1.
|
||||
05 FILLER PIC X(3).
|
||||
05 W-ELEM2 PIC X(4).
|
||||
05 W-GTAB.
|
||||
10 W-CHAR OCCURS 4 PIC X.
|
||||
01 WFUNC PIC 9.
|
||||
01 WVAL PIC 99.
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MOVE "ABCD" TO W-ELEM1.
|
||||
MOVE "CDEF" TO W-ELEM2.
|
||||
MOVE 4 TO W-BINARY.
|
||||
DISPLAY "MR01:(" W-ELEM1 "):(ABCD ):ELEM1".
|
||||
DISPLAY "MR02:(" W-ELEM2 "):(CDEF):ELEM2".
|
||||
MOVE SPACE TO W-GTAB.
|
||||
MOVE "X" TO W-CHAR(2).
|
||||
DISPLAY "MR03:(" W-GTAB "):( X ):OCCURS LIT".
|
||||
MOVE SPACE TO W-GTAB.
|
||||
MOVE 3 TO W-IDX.
|
||||
MOVE "X" TO W-CHAR(W-IDX).
|
||||
DISPLAY "MR04:(" W-GTAB "):( X ):OCCURS VAR".
|
||||
MOVE 1 TO WFUNC.
|
||||
MOVE 2 TO WVAL.
|
||||
CALL "STEST02" USING WFUNC WVAL.
|
||||
CALL "STEST02" USING WFUNC WVAL.
|
||||
MOVE 2 TO WFUNC.
|
||||
CALL "STEST02" USING WFUNC WVAL.
|
||||
STOP RUN.
|
||||
@@ -0,0 +1,31 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PTEST04.
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 PARM01 PIC X VALUE " ".
|
||||
01 G-PARM04.
|
||||
05 PARM04 PIC X(3).
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 WRES01 PIC S9(4) COMP.
|
||||
01 WRES02 PIC S9(9) COMP.
|
||||
01 WERES01 PIC 9(4).
|
||||
01 WERES02 PIC 9(9).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
MOVE FUNCTION LENGTH(G-PARM04) TO WERES01.
|
||||
DISPLAY "C401:(" WERES01 "):(0004):Length of group".
|
||||
|
||||
MOVE FUNCTION ORD(PARM01) TO WERES01.
|
||||
DISPLAY "C402:(" WERES01 "):(0033):Ord of var space".
|
||||
|
||||
MOVE FUNCTION ORD("A") TO WERES01.
|
||||
DISPLAY "C403:(" WERES01 "):(0066):Ord of lit A".
|
||||
|
||||
* MOVE FUNCTION CHAR(67) TO PARM01.
|
||||
* DISPLAY "C404:(" PARM01 "):(B):Char of lit 67".
|
||||
STOP RUN.
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PTEST05.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 PARM01 PIC X(20) VALUE "ABCDEFGHIJ0123456789".
|
||||
01 PARM02.
|
||||
05 FILLER PIC X(4) VALUE "ABCD".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM03.
|
||||
05 FILLER PIC X(4) VALUE "0123".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM04.
|
||||
05 FILLER PIC X(4) VALUE "EFGH".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 PARM05.
|
||||
05 FILLER PIC X(4) VALUE "4567".
|
||||
05 FILLER PIC X VALUE LOW-VALUE.
|
||||
01 RES1.
|
||||
05 EPARM02 PIC X(4).
|
||||
05 EPARM03 PIC X(4).
|
||||
05 EPARM04 PIC X(4).
|
||||
05 EPARM05 PIC X(4).
|
||||
|
||||
PROCEDURE DIVISION.
|
||||
CALL "STEST04" USING PARM01.
|
||||
CALL "STEST04" USING PARM01.
|
||||
STOP RUN.
|
||||
@@ -0,0 +1,25 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. STEST01.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 PARM01 PIC X(20) VALUE "TEST".
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 L-PARM01 PIC X(20).
|
||||
|
||||
PROCEDURE DIVISION USING L-PARM01.
|
||||
DISPLAY "C001:(" L-PARM01 "):(ABCDEFGHIJ0123456789):"
|
||||
"Call by reference x(20).".
|
||||
MOVE "9876543210JIHGFEDCBA" TO L-PARM01.
|
||||
EXIT PROGRAM.
|
||||
@@ -0,0 +1,29 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. STEST02.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
* 01 WVAL PIC 99 VALUE "05".
|
||||
01 WVAL PIC 99 VALUE 05.
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 LFUNC PIC 9.
|
||||
01 LVAL PIC 99.
|
||||
|
||||
PROCEDURE DIVISION USING LFUNC LVAL.
|
||||
IF LFUNC = 1
|
||||
ADD LVAL TO WVAL
|
||||
ELSE
|
||||
DISPLAY "MR05:(" WVAL "):(09):"
|
||||
"Static counter.".
|
||||
EXIT PROGRAM.
|
||||
@@ -0,0 +1,25 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. STEST03.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 PARM01 PIC X(20) VALUE "TEST".
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 L-PARM01 PIC X(20).
|
||||
|
||||
PROCEDURE DIVISION USING L-PARM01.
|
||||
DISPLAY "C003:(" L-PARM01 "):(ABCDEFGHIJ0123456789):"
|
||||
"Call by content x(20).".
|
||||
MOVE "9876543210JIHGFEDCBA" TO L-PARM01.
|
||||
EXIT PROGRAM.
|
||||
@@ -0,0 +1,25 @@
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. STEST04 INITIAL PROGRAM.
|
||||
*PROGRAM-ID. STEST04.
|
||||
AUTHOR. Bernard GIROUD.
|
||||
INSTALLATION. Tiny Cobol Compiler Project.
|
||||
DATE-WRITTEN. 05-AUG-2000.
|
||||
DATE-COMPILED.
|
||||
SECURITY. NONE.
|
||||
|
||||
ENVIRONMENT DIVISION.
|
||||
* INPUT-OUTPUT SECTION.
|
||||
* FILE-CONTROL.
|
||||
DATA DIVISION.
|
||||
FILE SECTION.
|
||||
|
||||
WORKING-STORAGE SECTION.
|
||||
01 PARM01 PIC X(04) VALUE "TEST".
|
||||
|
||||
LINKAGE SECTION.
|
||||
01 L-PARM01 PIC X(20).
|
||||
|
||||
PROCEDURE DIVISION USING L-PARM01.
|
||||
DISPLAY "C401:(" PARM01 "):(TEST):" "Initial.".
|
||||
MOVE SPACE TO PARM01.
|
||||
EXIT PROGRAM.
|
||||
@@ -0,0 +1,45 @@
|
||||
#define EC(n) WS_COB.ws_char3[n]
|
||||
struct {
|
||||
int ws_b4;
|
||||
short ws_b2;
|
||||
char ws_char3[3];
|
||||
} WS_COB;
|
||||
|
||||
void STEST901(char *s) {
|
||||
printf("C901:(%20s):(ABCDEFGHIJ0123456789):Call by ref from variable\n", s);
|
||||
}
|
||||
void STEST902(int v) {
|
||||
printf("C902:(%d):(3):Call by value from variable\n", v);
|
||||
}
|
||||
void STEST903(int v) {
|
||||
printf("C903:(%d):(5):Call by value from literal\n", v);
|
||||
}
|
||||
void STEST904(char * p1, int p2, int p3, char *p4, char *p5) {
|
||||
printf("C904:(%3s,%d,%d,%3s,%3s):(XYZ,3,5,XYZ,123):Call modes alternance\n",
|
||||
p1, p2, p3, p4, p5);
|
||||
}
|
||||
void STEST905(long long v) {
|
||||
printf("C905:(%13lld):(1234567890123):Call by value long long literal\n", v);
|
||||
}
|
||||
void STEST906(long long v) {
|
||||
printf("C906:(%13lld):(1234567890123):Call by value long long var\n", v);
|
||||
}
|
||||
short STEST907(long v) {
|
||||
return v+3;
|
||||
}
|
||||
int STEST908(long v) {
|
||||
return v+3;
|
||||
}
|
||||
long long STEST909(long v) {
|
||||
return v+3;
|
||||
}
|
||||
void STEST910(char *s1, char *s2, char *s3, char *s4) {
|
||||
printf("C910:(%4s%4s%4s%4s):(ABCD0123EFGH4567):Call by ref and content in alternance\n", s1, s2, s3, s4);
|
||||
s1[2]='9'; s2[2]='9'; s3[2]='9';s4[2]='9';
|
||||
}
|
||||
void STEST930() {
|
||||
EC(0) = 'E'; EC(1) = 'U'; EC(2) = 'R';
|
||||
WS_COB.ws_b2++;
|
||||
WS_COB.ws_b4++;
|
||||
printf("C930:(%c%c%c%04d%04d):(EUR12356790):Received in EXTERNAL from Cobol\n", EC(0), EC(1), EC(2), WS_COB.ws_b2, WS_COB.ws_b4);
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
ptest01:S:Call by default
|
||||
ptest02:S:Calling C
|
||||
ptest03:S:Memory references
|
||||
ptest04:S:Intrinsic functions
|
||||
ptest05:S:Initial
|
||||
Reference in New Issue
Block a user