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>
This commit is contained in:
@@ -3,6 +3,29 @@
|
||||
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): PICTURE de edición — `Z`, coma de millares y punto decimal
|
||||
|
||||
Las PICTURE de edición (`Z,ZZ9.99`) — el formateo de informes de
|
||||
COBOL: supresión de ceros a la izquierda, coma de millares e inserción
|
||||
del punto decimal. Una rebanada vertical por el pipeline.
|
||||
|
||||
- `charka-lexer`: el punto separador de COBOL siempre lleva un espacio
|
||||
detrás. Un punto pegado a un carácter —`ZZ9.99`— ya no se toma como
|
||||
terminador de sentencia: se emite como símbolo, para que el parser
|
||||
lo reensamble dentro de la cláusula PICTURE.
|
||||
- `charka-runtime`: `format_edited(valor, pic)` — formatea un decimal
|
||||
según una PICTURE de edición: `9` (dígito), `Z` (dígito con
|
||||
supresión de ceros), `,` (coma, en blanco en la zona suprimida),
|
||||
`.` (punto decimal) y `B` (espacio).
|
||||
- `charka-ir`: el modelo de datos distingue una PICTURE de edición —
|
||||
`Field::edit` guarda la PICTURE; el campo se materializa como texto
|
||||
de presentación.
|
||||
- `charka-codegen` y `charka-shadow`: un `MOVE` a un campo de edición
|
||||
pasa el valor por `format_edited` antes de almacenarlo.
|
||||
- Corpus: programa nuevo `19-reporte` — formatea importes y contadores
|
||||
con `Z,ZZZ,ZZ9.99` y `ZZZ,ZZ9`. Verificado: el intérprete sombra y
|
||||
el crate compilado dan la misma salida.
|
||||
|
||||
### feat(charka): E/S de ficheros — SELECT / FD / OPEN / READ / WRITE / CLOSE
|
||||
|
||||
El gran hueco que faltaba para el COBOL real: el procesamiento de
|
||||
|
||||
Reference in New Issue
Block a user