Module pikevm

Source
Expand description

An NFA backed Pike VM for executing regex searches with capturing groups.

This module provides a PikeVM that works by simulating an NFA and resolving all spans of capturing groups that participate in a match.

Macros§

instrument 🔒
A simple macro for conditionally executing instrumentation logic when the ‘trace’ log level is enabled. This is a compile-time no-op when the ‘internal-instrument-pikevm’ feature isn’t enabled. The intent here is that this makes it easier to avoid doing extra work when instrumentation isn’t enabled.

Structs§

ActiveStates 🔒
A set of active states used to “simulate” the execution of an NFA via the PikeVM.
Builder
A builder for a PikeVM.
Cache
A cache represents mutable state that a PikeVM requires during a search.
CapturesMatches
An iterator over all non-overlapping leftmost matches, with their capturing groups, for a particular search.
Config
The configuration used for building a PikeVM.
FindMatches
An iterator over all non-overlapping matches for a particular search.
PikeVM
A virtual machine for executing regex searches with capturing groups.
SlotTable 🔒
A table of slots, where each row represent a state in an NFA. Thus, the table has room for storing slots for every single state in an NFA.

Enums§

FollowEpsilon 🔒
Represents a stack frame for use while computing an epsilon closure.