Expand description
The generic line normaliser — deliberately identical to the validated prototype (same regexes, same order), so shape-class populations stay byte-comparable with its recorded outputs. Do not “improve” this in place: behaviour changes belong in a language plugin with its own id (ADR 0015).
Normalisation ONLY. Symbol extraction used to live here too; it is a
separate use case with its own port (artefact::symbols) and its readers
live in an adapter crate. Sharing a module made a symbol change look like a
normalisation change, which is the one thing this file must never allow.
Functions§
- normalize_
line - Strings →
"S", numbers →N, identifiers (length ≥ 4) →I, whitespace collapsed to single spaces, trimmed.