GitNexus/gitnexus/test/fixtures/cobol/AUDITLOG.cbl
Sparsh 7556a8e73a
feat(cobol): migrate COBOL to scope-based resolution (regex provider) (#941) (#1835)
* feat(cobol): migrate COBOL to scope-based resolution (regex provider)

Migrate COBOL to scope-based registry resolution, validating the
parse-source-agnostic contract — COBOL uses regex, not tree-sitter,
but implements the same LanguageProvider interface via emitScopeCaptures.

Phase 1-5 complete per #941 DoD.

New files:
  languages/cobol/captures.ts       — emitScopeCaptures wrapping regex tagger
  languages/cobol/interpret.ts      — import/type-binding/receiver hooks
  languages/cobol/index.ts          — barrel export
  languages/cobol/scope-resolver.ts — ScopeResolver wiring (9 fields, 3 toggles)

Modified files:
  languages/cobol.ts                — wire 4 scope-resolution hooks
  registry.ts                       — register cobolScopeResolver
  registry-primary-flag.ts          — document REGISTRY_PRIMARY_COBOL

Fixtures:
  17 fixture files, 30 test cases across 11 required classes
  test/integration/resolvers/cobol-scope.test.ts

Tests: 24/24 pass (default + REGISTRY_PRIMARY_COBOL=0)
tsc: zero cobol-specific errors
Shadow mode (GITNEXUS_SHADOW_MODE=1): zero crashes
Regex perf: 10K-line file in 408ms (threshold: 2000ms)

NOT added to MIGRATED_LANGUAGES — REGISTRY_PRIMARY_COBOL env var only.

* chore(cobol): add COBOL to MIGRATED_LANGUAGES

* Revert "chore(cobol): add COBOL to MIGRATED_LANGUAGES"

This reverts commit f234330e9f.

* fix(cobol): revert MIGRATED_LANGUAGES flip, fix JSDoc dup, fix arityCompatibility

---------

Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
2026-05-26 18:37:39 +01:00

77 lines
2.2 KiB
COBOL

IDENTIFICATION DIVISION.
PROGRAM-ID. AUDITLOG.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-LOG-MESSAGE PIC X(80).
01 WS-TIMESTAMP PIC X(26).
01 WS-IDX PIC 9(4).
01 WS-EOF-FLAG PIC 9 VALUE 0.
01 WS-PARAM-A PIC X(10).
01 WS-PARAM-B PIC X(10).
01 WS-PARAM-C PIC X(10).
01 WS-INDEX PIC 9(2).
01 WS-FLAG PIC 9.
COPY AUDITCONST.
COPY AUDITVARS.
LINKAGE SECTION.
01 LS-CUST-ID PIC 9(8).
01 LS-AMOUNT PIC 9(7)V99.
PROCEDURE DIVISION USING LS-CUST-ID LS-AMOUNT.
MAIN-PARAGRAPH.
PERFORM WRITE-LOG
PERFORM VARYING-TEST
PERFORM UNTIL-TEST
GOBACK.
WRITE-LOG.
STRING 'Customer ' LS-CUST-ID ' amount ' LS-AMOUNT
DELIMITED BY SIZE INTO WS-LOG-MESSAGE
DISPLAY WS-LOG-MESSAGE.
* PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
VARYING-TEST.
PERFORM VARYING WS-IDX FROM 1 BY 1
UNTIL WS-IDX > 10
DISPLAY 'COUNT ' WS-IDX
END-PERFORM.
* PERFORM UNTIL EOF-FLAG = 1
UNTIL-TEST.
PERFORM UNTIL WS-EOF-FLAG = 1
DISPLAY 'LOOPING'
END-PERFORM.
* CALL with OMITTED (3 args: WS-PARAM-A, OMITTED, WS-PARAM-C)
CALL-OMITTED-TEST.
CALL 'PROCESS' USING WS-PARAM-A OMITTED WS-PARAM-C.
* Nested IF with CALL inside
NESTED-IF-CALL.
IF WS-FLAG = 1
IF WS-INDEX > 5
CALL 'DEEPPROC'
ELSE
CALL 'SHALLOW'
END-IF
END-IF.
* GO TO DEPENDING ON with 3 targets
GOTO-DEPENDING.
GO TO PARA-ONE PARA-TWO PARA-THREE
DEPENDING ON WS-INDEX.
PARA-ONE.
DISPLAY 'ONE'.
PARA-TWO.
DISPLAY 'TWO'.
PARA-THREE.
DISPLAY 'THREE'.
ENTRY "AUDITLOG-BATCH" USING LS-CUST-ID.
DISPLAY 'Batch audit for ' LS-CUST-ID
GOBACK.