Correcciones de conformidad COBOL-85
Conjunto de correcciones que completan o ajustan el comportamiento COBOL-85 del analizador y del tiempo de ejecución (deuda técnica, no funciones nuevas).
Analizador- NOT = tras AND/OR: una relación negada a la derecha de una condición combinada ya se reconoce. Antes IF A NOT = X AND B NOT = Y daba error.
- Aritmética antes de NOT …: un ADD/SUBTRACT/MULTIPLY/DIVIDE/COMPUTE usado como imperativo de INVALID KEY / AT END / ON EXCEPTION ya no consume el NOT siguiente (lo confundía con el inicio de NOT ON SIZE ERROR).
- PERFORM WITH TEST en línea: PERFORM WITH TEST BEFORE/AFTER UNTIL … END-PERFORM ya analiza correctamente.
Tiempo de ejecución- CALL … USING: los argumentos se enlazan a los elementos de PROCEDURE DIVISION USING del subprograma (copia de entrada; salida por referencia). Antes los parámetros quedaban en su valor por defecto.
- STRING … WITH POINTER: coloca el texto desde la posición (base 1) del puntero y lo avanza tras el último carácter movido.
- EVALUATE con WHEN apilados: varios WHEN consecutivos comparten el único imperativo que los sigue.
Conformidad completada (antes ausente)- SEARCH ALL: ahora se analiza la palabra ALL y la cláusula ASCENDING/DESCENDING KEY del OCCURS, y se ejecuta como una búsqueda binaria real sobre la tabla ordenada.
- DECLARATIVES / USE AFTER STANDARD ERROR PROCEDURE: se reconoce el bloque DECLARATIVES … END DECLARATIVES y se ejecuta el manejador USE que corresponde cuando una operación de fichero termina con un FILE STATUS de error no atendido por su propia cláusula INVALID KEY / AT END.
Ejemplo — CALL … USING (corregido)
Código:
CALL "ADDER" USING WS-A WS-B WS-R.
*> tras la llamada WS-R contiene el resultado calculado por ADDER
Ejemplo — SEARCH ALL (búsqueda binaria)
Código:
SEARCH ALL CITY-ENTRY
AT END DISPLAY "no encontrado"
WHEN CITY-CODE (CITY-IX) = WS-BUSCADO
DISPLAY "encontrado: " CITY-NAME (CITY-IX)
END-SEARCH
Docs:
https://github.com/CloudLandBeta/Pow...rs-guide-en.md
— Anthropic Claude Codex Agent