The API Automaton::Determinize accepts a timeout parameter.
FWIW this parameter is in milliseconds. It would be nice to document that.
The timeout is not propagated recursively when the call to TryDecompose succeeds and d.Determinize() is called. So a regex consisting of a large disjunction exhibits exponential (?) behavior and the requested timeout is ignored.
I can open a PR if interested. The patch seems simple -- add the timeout to the recursive call.
The API
Automaton::Determinize
accepts a timeout parameter.TryDecompose
succeeds andd.Determinize()
is called. So a regex consisting of a large disjunction exhibits exponential (?) behavior and the requested timeout is ignored.I can open a PR if interested. The patch seems simple -- add the timeout to the recursive call.