Skip to main content

Crate rexact_core

Crate rexact_core 

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