82ba0b7a1a
La cara de escritura de los nombres de condición de COBOL: si
IF ES-VALIDO los lee, SET ES-VALIDO TO TRUE los escribe.
- IR: Stmt::SetTrue { conditions }.
- Parser: SET cond-1 cond-2 ... TO TRUE. Otras formas de SET
(índices, TO FALSE) caen a Stmt::Unknown.
- Codegen y shadow: SET cond TO TRUE asigna a su dato padre el valor
del 88 (un MOVE del valor a la variable).
- Corpus: programa nuevo 16-bandera (cambia banderas de texto y de
número con SET). Verificado: el intérprete sombra y el crate
compilado por scaffold dan la misma salida.
Tests: charka-ir 29, charka-codegen 23, charka-shadow 21. fmt +
clippy limpios.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
23 lines
541 B
COBOL
23 lines
541 B
COBOL
* corpus charka — nivel 5: SET de nombres de condición (nivel 88)
|
|
IDENTIFICATION DIVISION.
|
|
PROGRAM-ID. BANDERA.
|
|
DATA DIVISION.
|
|
WORKING-STORAGE SECTION.
|
|
01 WS-ESTADO PIC X VALUE 'N'.
|
|
88 ACTIVO VALUE 'S'.
|
|
88 INACTIVO VALUE 'N'.
|
|
01 WS-NIVEL PIC 9(1) VALUE 0.
|
|
88 NIVEL-MAX VALUE 9.
|
|
PROCEDURE DIVISION.
|
|
MAIN.
|
|
IF INACTIVO
|
|
DISPLAY 'EMPIEZA INACTIVO'
|
|
END-IF.
|
|
SET ACTIVO TO TRUE.
|
|
IF ACTIVO
|
|
DISPLAY 'AHORA ACTIVO'
|
|
END-IF.
|
|
SET NIVEL-MAX TO TRUE.
|
|
DISPLAY 'NIVEL = ' WS-NIVEL.
|
|
STOP RUN.
|