feat(charka): EVALUATE TRUE y rangos WHEN ... THRU
Completa el EVALUATE con sus dos formas que faltaban. - IR: la rama WhenBranch pasa de values: Vec<Operand> a tests: Vec<WhenTest>, donde WhenTest es Value (igualdad), Range (WHEN lo THRU hi) o Cond (EVALUATE TRUE WHEN cond). - Parser: detecta EVALUATE TRUE y entonces cada WHEN parsea una condición; en modo valor reconoce WHEN lo THRU hi. - Codegen y shadow: una prueba Range se traduce a lo <= s <= hi; una Cond, a la condición directa. - Corpus: programa nuevo 14-clasifica (clasifica notas con rangos THRU y un EVALUATE TRUE). Verificado: intérprete sombra y crate compilado dan la misma salida. Tests: charka-ir 27, charka-codegen 21, charka-shadow 19. fmt + clippy limpios. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,20 @@
|
||||
Transpilador COBOL → Rust. El módulo más grande del ecosistema (Fase D
|
||||
del plan macro) — el parser COBOL completo es un esfuerzo multi-mes.
|
||||
|
||||
### feat(charka): EVALUATE TRUE y rangos WHEN ... THRU
|
||||
|
||||
Completa el `EVALUATE` con sus dos formas que faltaban.
|
||||
|
||||
- IR: la rama `WhenBranch` pasa de `values: Vec<Operand>` a
|
||||
`tests: Vec<WhenTest>`, donde `WhenTest` es `Value` (igualdad),
|
||||
`Range` (`WHEN lo THRU hi`) o `Cond` (`EVALUATE TRUE WHEN cond`).
|
||||
- Parser: detecta `EVALUATE TRUE` y entonces cada `WHEN` parsea una
|
||||
condición; en modo valor reconoce `WHEN lo THRU hi`.
|
||||
- Codegen y shadow: una prueba `Range` se traduce a `lo <= s <= hi`;
|
||||
una `Cond`, a la condición directa.
|
||||
- Corpus: programa nuevo `14-clasifica` (clasifica notas con rangos
|
||||
`THRU` y un `EVALUATE TRUE`). Verificado en ambas rutas.
|
||||
|
||||
### feat(charka): INSPECT — contar y reemplazar caracteres
|
||||
|
||||
El verbo de COBOL para analizar y limpiar campos de texto.
|
||||
|
||||
Reference in New Issue
Block a user