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>
34 lines
1.5 KiB
Markdown
34 lines
1.5 KiB
Markdown
# 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.
|