8c1f9114f6
- 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
31 lines
1.1 KiB
COBOL
31 lines
1.1 KiB
COBOL
* ==== TYPE: ST-SEARCH-ALL ====
|
|
* FEATURE: SEARCH ALL on OCCURS table
|
|
* STATEMENT: SEARCH ALL
|
|
* BRANCHES: 0, DECISIONS: 0
|
|
* NOTE: SEARCH ALL parsing can break subsequent IF branch counting
|
|
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. SRCHAL.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 WS-TABLE.
|
|
05 WS-ENTRY OCCURS 5 TIMES.
|
|
10 WS-KEY PIC 9(2).
|
|
10 WS-DATA PIC X(5).
|
|
01 WS-SEARCH-KEY PIC 9(2) VALUE 3.
|
|
01 WS-FOUND PIC X VALUE 'N'.
|
|
01 WS-IDX PIC 9(2) VALUE 1.
|
|
PROCEDURE DIVISION.
|
|
MAIN.
|
|
MOVE 1 TO WS-KEY(1) MOVE 'ALPHA' TO WS-DATA(1).
|
|
MOVE 3 TO WS-KEY(2) MOVE 'BETA' TO WS-DATA(2).
|
|
MOVE 5 TO WS-KEY(3) MOVE 'GAMMA' TO WS-DATA(3).
|
|
SEARCH ALL WS-ENTRY
|
|
AT END DISPLAY 'NOT FOUND'
|
|
WHEN WS-KEY(WS-IDX) = WS-SEARCH-KEY
|
|
MOVE 'Y' TO WS-FOUND.
|
|
IF WS-FOUND = 'Y'
|
|
DISPLAY 'OK: SEARCH ALL'
|
|
ELSE
|
|
DISPLAY 'ERROR: SEARCH ALL'.
|
|
STOP RUN.
|