feat(charka): charka-runtime — soporte de ejecución (campos Num y Text)
El soporte que los programas COBOL transpilados enlazan. charka-codegen emitirá Rust que llama a esta biblioteca, no Rust autónomo. - Num: campo numérico (PIC 9(5)V99) — un Decimal conformado a su Picture. store trunca a la escala declarada, store_rounded redondea; al desbordar la parte entera conserva los dígitos de bajo orden (el ON SIZE ERROR de COBOL sin cláusula). display da los dígitos con relleno de ceros y signo. - Text: campo alfanumérico (PIC X(n)) de longitud fija — store justifica a la izquierda y rellena/trunca; fill mueve figurativas. - cobol_text_cmp: comparación alfanumérica con relleno de espacios. - Reexporta Decimal/Picture/Rounding de charka-bcd. Construido antes que charka-codegen (la nota de orden del plan los listaba al revés): el codegen emite contra esta API. 17 tests; fmt + clippy limpios. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,30 @@
|
||||
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-runtime): soporte de ejecución — campos Num y Text
|
||||
|
||||
Crate nuevo `crates/modules/charka/charka-runtime` — el soporte que los
|
||||
programas COBOL transpilados enlazan. `charka-codegen` no emitirá Rust
|
||||
autónomo: emitirá Rust que llama a esta biblioteca.
|
||||
|
||||
- `Num` — campo numérico (`PIC 9(5)V99`): un `Decimal` conformado a su
|
||||
`Picture`. `store` trunca a la escala declarada; `store_rounded`
|
||||
redondea; al desbordar la parte entera conserva los dígitos de bajo
|
||||
orden (el `ON SIZE ERROR` de COBOL sin cláusula). `display` da los
|
||||
dígitos con relleno de ceros y signo si corresponde.
|
||||
- `Text` — campo alfanumérico (`PIC X(n)`) de longitud fija: `store`
|
||||
justifica a la izquierda y rellena con espacios o trunca; `fill`
|
||||
mueve las constantes figurativas (`SPACES`, `ZEROS`).
|
||||
- `cobol_text_cmp` — comparación alfanumérica que rellena el más corto
|
||||
con espacios.
|
||||
- Reexporta `Decimal`/`Picture`/`Rounding` de `charka-bcd`.
|
||||
- Construido antes que `charka-codegen` (la nota de orden del plan los
|
||||
listaba al revés): el codegen emite contra esta API, así que el
|
||||
runtime debe existir primero — y se verifica solo, sin el codegen.
|
||||
- 17 tests: campo en cero, `VALUE` inicial, truncado y redondeo,
|
||||
desbordamiento que conserva bajo orden, magnitud sin signo y signo
|
||||
con signo, justificación y relleno de texto, `fill`, comparación.
|
||||
|
||||
### feat(charka-ir): representación intermedia — statements tipados
|
||||
|
||||
Crate nuevo `crates/modules/charka/charka-ir` — la tercera etapa del
|
||||
|
||||
Reference in New Issue
Block a user