Module thompson

Defines a Thompson NFA and provides the PikeVM and BoundedBacktracker regex engines.

A Thompson NFA (non-deterministic finite automaton) is arguably the central data type in this library. It is the result of what is commonly referred to as "regex compilation." That is, turning a regex pattern from its concrete syntax string into something that can run a search looks roughly like this:

The meta regex engine makes all of these choices for you based on various criteria. However, if you have a lower level use case, you can build any of the above regex engines and use them directly. But you must start here by building an NFA.

Details

It is perhaps worth expanding a bit more on what it means to go through the &str->Ast->Hir->NFA process.

Modules

Structs

Enums