Substitutions
Substitution definitions support replacement text, Unicode values, and images. Expansion follows nested substitutions and reports cycles or missing names.
The resolver:
- ignores escaped pipes and inline literals;
- preserves linked
|name|_and|name|__forms; - memoizes expansions;
- stops after 256 nested levels;
- stops after 1 MiB of expanded text.
Exceeding a bound produces substitution/expansion-limit and leaves the
occurrence unresolved. These limits protect consumers from exponential
replacement graphs.
Literal directive bodies are skipped. An opaque directive body makes reference
coverage incomplete, so negative conclusions such as “unused definition” are
suppressed. Check isCoverageComplete() before making such a conclusion.