tawasuyu

tawasuyu/brahman

Rust 230TOML 69JSON 14HTML 12901 Definitions

⎇ 2728698f5ef15234be868988d5c330ef6c0f2533 crates/modules/charka/corpus/README.md Markdown · 38 lines · 2.1 KB History raw

feat(charka): INSPECT — contar y reemplazar caracteres 2728698f5 · sergio ·

1# Corpus COBOL de charka
2
3Programas COBOL de prueba, de complejidad **graduada**, para ejercitar
4el pipeline completo del transpilador (lexer → parser → IR → codegen) y
5el validador en sombra `charka-shadow`.
6
7Cada programa `NN-nombre.cob` viene con su `NN-nombre.expected`: la
8salida correcta, una línea por `DISPLAY`.
9
10| programa            | nivel | qué ejercita                                       |
11| ------------------- | ----- | -------------------------------------------------- |
12| `01-hola`           | 1     | el programa mínimo — un `DISPLAY` de literal       |
13| `02-aritmetica`     | 2     | datos, `ADD`/`SUBTRACT`/`MULTIPLY` con `GIVING`    |
14| `03-condicional`    | 3     | `IF` / `ELSE` / `END-IF`                           |
15| `04-bucle`          | 4     | `PERFORM n TIMES`, un párrafo aparte, `ADD` in situ|
16| `05-factorial`      | 4     | `PERFORM UNTIL` en línea, `MULTIPLY` in situ       |
17| `06-nomina`         | 5     | grupos, `COMPUTE` con paréntesis, `ROUNDED`, V99   |
18| `07-clasificar`     | 5     | `IF` anidado, condiciones con `AND`                |
19| `08-varying`        | 4     | `PERFORM VARYING` — el bucle con variable de control|
20| `09-evaluar`        | 5     | `EVALUATE` — el `case` de COBOL, `WHEN` / `OTHER`  |
21| `10-condicion`      | 5     | nombres de condición (nivel 88) en `IF`            |
22| `11-tabla`          | 6     | tablas (`OCCURS`) y referencias con subíndice      |
23| `12-cadenas`        | 6     | `STRING` (concatenar) y `UNSTRING` (partir)        |
24| `13-inspeccion`     | 6     | `INSPECT` — contar (`TALLYING`) y reemplazar       |
25
26## Formato
27
28Los fuentes están en **formato libre** de COBOL (la línea entera es
29código; `*` al inicio es comentario). El comparador del validador
30**ignora los espacios finales** de cada línea — un campo `PIC X(n)` se
31muestra con su relleno de espacios, que aquí se omite por legibilidad.
32
33## La salida esperada
34
35Las `.expected` se derivaron a mano de la semántica de COBOL'85. Cuando
36GnuCOBOL esté disponible, `charka-shadow` podrá regenerarlas desde el
37compilador de referencia y diferenciar contra él — el modo «sombra»
38pleno (original vs transpilado).

README.md

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.

programanivelqué ejercita
01-hola1el programa mínimo — un DISPLAY de literal
02-aritmetica2datos, ADD/SUBTRACT/MULTIPLY con GIVING
03-condicional3IF / ELSE / END-IF
04-bucle4PERFORM n TIMES, un párrafo aparte, ADD in situ
05-factorial4PERFORM UNTIL en línea, MULTIPLY in situ
06-nomina5grupos, COMPUTE con paréntesis, ROUNDED, V99
07-clasificar5IF anidado, condiciones con AND
08-varying4PERFORM VARYING — el bucle con variable de control
09-evaluar5EVALUATE — el case de COBOL, WHEN / OTHER
10-condicion5nombres de condición (nivel 88) en IF
11-tabla6tablas (OCCURS) y referencias con subíndice
12-cadenas6STRING (concatenar) y UNSTRING (partir)
13-inspeccion6INSPECT — contar (TALLYING) y reemplazar

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).