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:
sergio
2026-05-21 21:28:36 +00:00
parent 4d9ce11b1e
commit b052c41e3c
6 changed files with 374 additions and 2 deletions
Generated
+13
View File
@@ -2307,6 +2307,19 @@ dependencies = [
"zeroize",
]
[[package]]
name = "charka"
version = "0.1.0"
dependencies = [
"anyhow",
"charka-codegen",
"charka-ir",
"charka-lexer",
"charka-parser",
"charka-shadow",
"clap",
]
[[package]]
name = "charka-bcd"
version = "0.1.0"