Files
brahman/crates/modules/charka/corpus
sergio 634a43006a feat(charka): PICTURE de edición — Z, coma de millares y punto decimal
El formateo de informes de COBOL: supresión de ceros a la izquierda,
coma de millares e inserción del punto decimal. Rebanada vertical.

- charka-lexer: el punto separador exige un espacio detrás; un punto
  pegado a un carácter (ZZ9.99) ya no es terminador, sino símbolo —
  el parser lo reensambla dentro de la cláusula PICTURE.
- charka-runtime: format_edited(valor, pic) — 9, Z, coma, punto, B.
- charka-ir: Field::edit guarda la PICTURE; el campo es texto.
- charka-codegen / charka-shadow: MOVE a un campo de edición pasa por
  format_edited antes de almacenar.
- Corpus: 19-reporte. Sombra y crate compilado dan la misma salida.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 23:00:15 +00:00
..

Corpus COBOL de charka

Programas COBOL de prueba, de complejidad graduada, para ejercitar el pipeline completo del transpilador (lexer → parser → IR → codegen) y el validador en sombra charka-shadow.

Cada programa NN-nombre.cob viene con su NN-nombre.expected: la salida correcta, una línea por DISPLAY.

programa nivel qué ejercita
01-hola 1 el programa mínimo — un DISPLAY de literal
02-aritmetica 2 datos, ADD/SUBTRACT/MULTIPLY con GIVING
03-condicional 3 IF / ELSE / END-IF
04-bucle 4 PERFORM n TIMES, un párrafo aparte, ADD in situ
05-factorial 4 PERFORM UNTIL en línea, MULTIPLY in situ
06-nomina 5 grupos, COMPUTE con paréntesis, ROUNDED, V99
07-clasificar 5 IF anidado, condiciones con AND
08-varying 4 PERFORM VARYING — el bucle con variable de control
09-evaluar 5 EVALUATE — el case de COBOL, WHEN / OTHER
10-condicion 5 nombres de condición (nivel 88) en IF
11-tabla 6 tablas (OCCURS) y referencias con subíndice
12-cadenas 6 STRING (concatenar) y UNSTRING (partir)
13-inspeccion 6 INSPECT — contar (TALLYING) y reemplazar
14-clasifica 6 EVALUATE TRUE y rangos WHEN ... THRU
15-resetear 6 INITIALIZE — resetear datos y grupos
16-bandera 5 SET de nombres de condición (nivel 88) a TRUE
17-rangopar 5 PERFORM ... THRU — un rango de párrafos
18-fichero 7 E/S de ficheros: SELECT/FD/OPEN/READ/WRITE
19-reporte 6 PICTURE de edición (Z,ZZ9.99) — formato de informe

Formato

Los fuentes están en formato libre de COBOL (la línea entera es código; * al inicio es comentario). El comparador del validador ignora los espacios finales de cada línea — un campo PIC X(n) se muestra con su relleno de espacios, que aquí se omite por legibilidad.

La salida esperada

Las .expected se derivaron a mano de la semántica de COBOL'85. Cuando GnuCOBOL esté disponible, charka-shadow podrá regenerarlas desde el compilador de referencia y diferenciar contra él — el modo «sombra» pleno (original vs transpilado).