# Changelog — charka 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-lexer): tokenizador de COBOL Crate nuevo `crates/modules/charka/charka-lexer` — la primera etapa del pipeline del transpilador: texto COBOL → secuencia de `Token`. - **Lexer deliberadamente tonto**: no conoce keywords ni la cláusula `PICTURE`; emite `Word` para todo identificador y deja la clasificación al parser. - Tokens: `Word` (palabras COBOL con guiones internos), `Number` (literal sin signo), `String` (comillas dobladas colapsadas), `Period` (el `.` terminador), `Symbol` (paréntesis, separadores y operadores `+ - * / ** = < > <= >= <>`). - Dos formatos de fuente: **fijo** (la tarjeta de 80 columnas — cols 1-6 secuencia, 7 indicadora, 8-72 código, 73-80 identificación) y **libre**. Comentarios por la columna indicadora (`*`/`/`) o por `*` inicial en formato libre. - Cada `Token` lleva línea y columna 1-based; `LexError` tipado (literal sin cerrar, carácter inesperado). - Limitación v1 documentada: no soporta continuación de literales entre líneas (indicador `-`). Subconjunto COBOL'85, el hito intermedio. - 17 tests: sentencias, palabras con guiones, literales y comillas dobladas, números vs terminador, operadores, ambos formatos, tracking de posición, errores. ### feat(charka-bcd): aritmética decimal con semántica COBOL (Pre-existente.) `Picture` + `Decimal` de punto fijo exacto — ver el SDD del módulo. 22 tests.