Files
sergio 82ba0b7a1a feat(charka): SET ... TO TRUE — escribir nombres de condición (88)
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>
2026-05-21 22:32:08 +00:00

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.