feat: add COBOL statement benchmark plan and 34 P0 sample programs
- docs/cobol-statement-benchmark-plan.md — full coverage matrix and gap analysis - 34 P0 COBOL samples: arithmetic(9), move(5), file(6), control(6), inspect(3), search(2), perform(3) - test-data/validate_statements.py — automatic validation script - Validation: 34/34 samples pass preprocess + extract_structure
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
* ==== TYPE: ST-PERF-TIMES ====
|
||||
* FEATURE: PERFORM ... TIMES
|
||||
* STATEMENT: PERFORM TIMES
|
||||
* BRANCHES: 2, DECISIONS: 1
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PERFTM.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-COUNT PIC 9(3) VALUE 0.
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
PERFORM 3 TIMES
|
||||
ADD 1 TO WS-COUNT
|
||||
END-PERFORM.
|
||||
IF WS-COUNT = 3
|
||||
DISPLAY 'OK: TIMES'
|
||||
ELSE
|
||||
DISPLAY 'ERROR: TIMES'.
|
||||
STOP RUN.
|
||||
@@ -0,0 +1,21 @@
|
||||
* ==== TYPE: ST-PERF-UNTIL ====
|
||||
* FEATURE: PERFORM with UNTIL condition
|
||||
* STATEMENT: PERFORM UNTIL
|
||||
* BRANCHES: 2, DECISIONS: 1
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PERFUN.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-COUNT PIC 9(3) VALUE 0.
|
||||
01 WS-TOTAL PIC 9(5) VALUE 0.
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
PERFORM UNTIL WS-COUNT >= 5
|
||||
ADD 10 TO WS-TOTAL
|
||||
ADD 1 TO WS-COUNT
|
||||
END-PERFORM.
|
||||
IF WS-TOTAL = 50
|
||||
DISPLAY 'OK: UNTIL LOOP'
|
||||
ELSE
|
||||
DISPLAY 'ERROR: UNTIL'.
|
||||
STOP RUN.
|
||||
@@ -0,0 +1,20 @@
|
||||
* ==== TYPE: ST-PERF-VARY ====
|
||||
* FEATURE: PERFORM VARYING ... FROM ... BY ... UNTIL
|
||||
* STATEMENT: PERFORM VARYING
|
||||
* BRANCHES: 0, DECISIONS: 0
|
||||
* NOTE: PERFORM VARYING UNTIL is parsed but loop condition not IF branch;
|
||||
IDENTIFICATION DIVISION.
|
||||
PROGRAM-ID. PERFVA.
|
||||
DATA DIVISION.
|
||||
WORKING-STORAGE SECTION.
|
||||
01 WS-I PIC 9(3) VALUE 0.
|
||||
01 WS-SUM PIC 9(5) VALUE 0.
|
||||
PROCEDURE DIVISION.
|
||||
MAIN.
|
||||
PERFORM VARYING WS-I FROM 1 BY 1 UNTIL WS-I > 5
|
||||
ADD WS-I TO WS-SUM.
|
||||
IF WS-SUM = 15
|
||||
DISPLAY 'OK: 1+2+3+4+5=15'
|
||||
ELSE
|
||||
DISPLAY 'ERROR: SUM'.
|
||||
STOP RUN.
|
||||
Reference in New Issue
Block a user