feat(charka): INITIALIZE — resetear datos y grupos
El verbo de COBOL para volver un dato (o un registro entero) a su
valor por defecto.
- IR: Stmt::Initialize { targets }. El model de charka-ir registra
ahora los grupos y sus datos elementales (DataModel::groups,
GroupInfo { name, members }).
- Parser: INITIALIZE name-1 name-2 ...
- Codegen y shadow: cada destino, si es un grupo, se expande a sus
miembros; cada dato elemental se pone a 0 (numérico) o a espacios
(alfanumérico); una tabla OCCURS resetea todos sus elementos.
- Corpus: programa nuevo 15-resetear (resetea un grupo y un escalar).
Verificado: el intérprete sombra y el crate compilado por scaffold
dan la misma salida.
Tests: charka-ir 28, charka-codegen 22, charka-shadow 20. fmt +
clippy limpios.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,21 @@
|
||||
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): INITIALIZE — resetear datos y grupos
|
||||
|
||||
El verbo de COBOL para volver un dato (o un registro entero) a su
|
||||
valor por defecto.
|
||||
|
||||
- IR: `Stmt::Initialize { targets }`. El `model` de `charka-ir`
|
||||
registra ahora los grupos y sus datos elementales
|
||||
(`DataModel::groups`, `GroupInfo`).
|
||||
- Parser: `INITIALIZE name-1 name-2 ...`.
|
||||
- Codegen y shadow: cada destino, si es un grupo, se expande a sus
|
||||
miembros; cada dato elemental se pone a 0 (numérico) o a espacios
|
||||
(alfanumérico); una tabla `OCCURS` resetea todos sus elementos.
|
||||
- Corpus: programa nuevo `15-resetear` (resetea un grupo y un escalar).
|
||||
Verificado en ambas rutas.
|
||||
|
||||
### feat(charka): EVALUATE TRUE y rangos WHEN ... THRU
|
||||
|
||||
Completa el `EVALUATE` con sus dos formas que faltaban.
|
||||
|
||||
Reference in New Issue
Block a user