feat(charka): CLI del transpilador — transpile / scaffold / run / check
App nueva crates/apps/charka — el binario `charka`, que vuelve usable el pipeline COBOL->Rust desde la terminal. - transpile <in.cob> [-o out.rs] — emite el código Rust. - scaffold <in.cob> -o <dir> — genera un crate Rust completo (Cargo.toml + src/main.rs) que depende de charka-runtime y compila. - run <in.cob> — ejecuta el programa con el intérprete sombra, sin compilar nada, y muestra su salida. - check <in.cob> -e <esperado> — ejecuta y diferencia contra una salida esperada; reporta las líneas que difieren. Avisa de los verbos COBOL que aún no se transpilan. Verificado de punta a punta contra el corpus: scaffold de 06-nomina genera un crate que compila y produce la misma salida que el intérprete sombra — las dos rutas de ejecución concuerdan. 4 tests; fmt + clippy limpios. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -160,12 +160,23 @@ que corre el `Ir` directamente sobre `charka-runtime`, sin compilar.
|
||||
(`01-hola` … `07-clasificar`), cada uno con su `.expected`. Ejercita
|
||||
el pipeline completo de punta a punta. Ver su `README.md`.
|
||||
|
||||
## La CLI
|
||||
|
||||
`crates/apps/charka/` — el binario `charka`, que envuelve el pipeline
|
||||
en cuatro comandos: `transpile` (emite Rust), `scaffold` (genera un
|
||||
crate compilable), `run` (ejecuta vía el intérprete sombra) y `check`
|
||||
(ejecuta y diferencia contra una salida esperada). Avisa de los verbos
|
||||
no transpilados.
|
||||
|
||||
## Estado
|
||||
|
||||
Pipeline **completo** — `charka-bcd` (22 tests), `charka-lexer` (17),
|
||||
`charka-parser` (15), `charka-ir` (17), `charka-runtime` (17),
|
||||
`charka-codegen` (14) y `charka-shadow` (11) implementados y verdes.
|
||||
COBOL → Rust corre de punta a punta, validado contra el corpus.
|
||||
`charka-codegen` (14), `charka-shadow` (11) y la CLI `charka` (4)
|
||||
implementados y verdes. COBOL → Rust corre de punta a punta, validado
|
||||
contra el corpus. El crate que genera `scaffold` compila y su salida
|
||||
coincide con la del intérprete sombra — las dos rutas de ejecución
|
||||
concuerdan.
|
||||
|
||||
Próximo hito mayor: salir del subconjunto COBOL'85 puro hacia CICS,
|
||||
SQL embebido y los dialectos IBM Enterprise; ampliar el codegen
|
||||
|
||||
Reference in New Issue
Block a user