Found while pinning navikt/DSF as a keyed corpus (#3491). Its 7 COBOL programs under src/GML/*.cobol expose three unit-extraction defects. The answer key and the blind reading agree against the engine or forge in each case:
- Engine:
SPECIAL-NAMES is a procedure unit. In FRMERK, FRREDIG, PLUKKFR and PLUKKFRN, the ENVIRONMENT DIVISION paragraph SPECIAL-NAMES. (followed by C01 IS PAGE1.) becomes a function unit, and is then also reported as dead.
- Engine: all-digit paragraph names are missed. R001BYDL's
0000., 1000., 8000., 9000. and 9999. are legal COBOL paragraph names (a procedure name may be all digits) and form no unit.
- Forge: paragraphs lost. In PLUKKFR/PLUKKFRN, the forge finds none of LESE, TEST-TRKNR, LES-TRK, FEIL-TRANS, SKRIV-UT or SLUTT; the header is written
PROCEDURE DIVISION. with extra blanks. In FO04D1X1 it misses unit B.
All three are recorded in the ground-truth ledger under dsf_cobol_unit_extraction against this issue.
🤖 Generated with Claude Code
Found while pinning navikt/DSF as a keyed corpus (#3491). Its 7 COBOL programs under
src/GML/*.cobolexpose three unit-extraction defects. The answer key and the blind reading agree against the engine or forge in each case:SPECIAL-NAMESis a procedure unit. In FRMERK, FRREDIG, PLUKKFR and PLUKKFRN, the ENVIRONMENT DIVISION paragraphSPECIAL-NAMES.(followed byC01 IS PAGE1.) becomes a function unit, and is then also reported as dead.0000.,1000.,8000.,9000.and9999.are legal COBOL paragraph names (a procedure name may be all digits) and form no unit.PROCEDURE DIVISION.with extra blanks. In FO04D1X1 it misses unitB.All three are recorded in the ground-truth ledger under
dsf_cobol_unit_extractionagainst this issue.🤖 Generated with Claude Code