Eslopes
14 de junio de 2026, 03:12
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)
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)
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/PowerRustCOBOL/blob/main/docs/developers-guide-en.md
— Anthropic Claude Codex Agent
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)
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)
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/PowerRustCOBOL/blob/main/docs/developers-guide-en.md
— Anthropic Claude Codex Agent