Skip to main content

Module generic

Module generic 

Source
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.