Module flat_lockstep_nfa

Module flat_lockstep_nfa 

Source
Expand description

Implements an nfa-like regex engine for over chars. The engine keeps all threads in lockstep (all threads are at the same input index), and the NFA’s epsilon transitions are flattened to a single epsilon transition between symbols (including handling anchors and capture tags).

Currently we flatten all epsilon transitions for the VM so that epsilon transitions are at most a single step between symbols. I’ll have to review to ensure we avoid this causing large binary size overhead, but it should be worst-case O(n^2) in the number of states, and far fewer on average.

Structs§

Thread