Files
cobol-java-v3/test-data/cobol/statement_search/ST-SEARCH-ALL.cbl
NB-076 8c1f9114f6 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
2026-06-21 12:02:25 +08:00

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.