mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-07 02:58:02 +00:00
* 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>
94 lines
2.6 KiB
COBOL
94 lines
2.6 KiB
COBOL
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. RPTGEN.
|
|
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
COPY CUSTDAT.
|
|
01 WS-REPORT-LINE PIC X(132).
|
|
01 WS-SQL-CODE PIC S9(9) COMP.
|
|
01 WS-COUNT PIC 9(4).
|
|
01 WS-MAP-NAME PIC X(8).
|
|
01 WS-SORT-FILE PIC X(8).
|
|
01 WS-QUEUE-NAME PIC X(16).
|
|
01 WS-NEXT-PGM PIC X(8).
|
|
|
|
PROCEDURE DIVISION.
|
|
MAIN-PARAGRAPH.
|
|
PERFORM FETCH-DATA
|
|
PERFORM FORMAT-REPORT
|
|
PERFORM SEND-SCREEN
|
|
CALL "CUSTUPDT"
|
|
GO TO EXIT-PARAGRAPH.
|
|
|
|
FETCH-DATA.
|
|
EXEC SQL
|
|
SELECT CUST_NAME, CUST_BALANCE
|
|
FROM CUSTOMER
|
|
WHERE CUST_ID = :WS-CUST-CODE
|
|
END-EXEC.
|
|
|
|
FORMAT-REPORT.
|
|
PERFORM WS-COUNT TIMES
|
|
MOVE WS-CUST-CODE TO WS-REPORT-LINE
|
|
END-PERFORM
|
|
PERFORM MAIN-PARAGRAPH THRU FORMAT-REPORT
|
|
IF WS-COUNT > 0 PERFORM FETCH-DATA
|
|
ELSE PERFORM SEND-SCREEN
|
|
END-IF
|
|
SORT WS-SORT-FILE USING CUSTOMER-DATA
|
|
GIVING WS-REPORT-LINE.
|
|
SORT WS-SORT-FILE ON ASCENDING KEY WS-COUNT
|
|
INPUT PROCEDURE IS BUILD-SORT-INPUT
|
|
OUTPUT PROCEDURE IS WRITE-SORTED.
|
|
MOVE CORR WS-CUSTOMER-DATA TO WS-REPORT-LINE
|
|
SEARCH WS-CUSTOMER-DATA
|
|
GO TO FETCH-DATA FORMAT-REPORT SEND-SCREEN
|
|
DEPENDING ON WS-COUNT.
|
|
|
|
SEND-SCREEN.
|
|
EXEC CICS
|
|
SEND MAP(WS-MAP-NAME) MAPSET('CUSTSET')
|
|
FROM(WS-REPORT-LINE)
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
LINK PROGRAM('AUDITLOG')
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
XCTL PROGRAM('CUSTUPDT')
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
READ FILE('CUSTFILE')
|
|
INTO(WS-CUSTOMER-DATA)
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
WRITEQ TS QUEUE('RPTQUEUE')
|
|
FROM(WS-REPORT-LINE)
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
HANDLE ABEND LABEL(ABEND-HANDLER)
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
RETURN TRANSID('RPTG')
|
|
END-EXEC.
|
|
|
|
EXEC CICS
|
|
XCTL PROGRAM(WS-NEXT-PGM)
|
|
END-EXEC.
|
|
|
|
BUILD-SORT-INPUT.
|
|
DISPLAY 'BUILDING SORT INPUT'.
|
|
|
|
WRITE-SORTED.
|
|
DISPLAY 'WRITING SORTED OUTPUT'.
|
|
|
|
ABEND-HANDLER.
|
|
DISPLAY 'ABEND OCCURRED'.
|
|
|
|
EXIT-PARAGRAPH.
|
|
STOP RUN.
|