Expand description
Language engine: symbol classes, terms, derivatives, automata, matching.
Design note: pattern syntax trees are lowered to normalised extended
regular-expression terms (term); a lazily explored derivative automaton
(dfa) answers matching in linear time and minimises to a canonical form
whose hash is the language fingerprint. Everything is bounded by
limits.
Re-exports§
pub use alphabet::Alphabet;pub use language::fingerprint_term;pub use language::lower_into;pub use language::minimal_of_term;pub use language::resolve;pub use language::Language;pub use language::Mode;pub use language::Resolved;pub use limits::Budget;pub use limits::Limits;
Modules§
- alphabet
- Alphabet modes (FR-A07, docs/13 section 6).
- casefold
- Case-insensitive matching (FR-A10) as closure of symbol sets.
- charset
- Interval sets of code points and partitions of the alphabet.
- dfa
- Derivative automaton, matching, minimisation and canonical form (FR-B03..B05).
- language
- The user-facing handle: a compiled language with matching, minimal automaton and fingerprint.
- limits
- Limits manager (architecture section 6, RULE-08, FR-G05).
- resolved
- A resolved view of a pattern for backtracking analysis (milestone M8).
- sha256
- SHA-256 (FIPS 180-4), implemented here to keep the dependency list empty (RULE-18). Used only to name canonical forms; tested against the published known-answer vectors.
- term
- Extended regular-expression terms with Brzozowski derivatives (architecture section 3, FR-B01, FR-B02, FR-B07, FR-B08).