ab56b35e9f
Primera etapa del transpilador COBOL→Rust (Fase D del plan macro): texto COBOL → secuencia de Token. Lexer deliberadamente tonto (emite Word para todo identificador, la clasificación es del parser). Tokens Word/Number/String/Period/Symbol con línea+columna; soporta formato fijo (tarjeta de 80 columnas) y libre; comentarios, comillas dobladas, operadores de 1 y 2 caracteres. LexError tipado. 17 tests; clippy limpio. Limitación v1: sin continuación de literales entre líneas. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.5 KiB
1.5 KiB
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; emiteWordpara 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
Tokenlleva línea y columna 1-based;LexErrortipado (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.