You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It would be useful to have a function that populates a u64bitset with which characters must appear in the input to possibly match an FSM. This wouldn't track the relative order of those characters occurring, just that if bitset[N] is set and character/octet N does not appear in the input at all, it can never match.
This could be based on either the regex AST or walking the FSM. With the FSM it would benefit from fsm_trims's shortest_end_distance analysis -- I think the intersection of the bitsets from all single-label edges on the shortest reverse path(s) from every endstate to the start would be one way to do it (for paths that cannot be skipped via a longer route), though not necessarily the simplest/cheapest.
The text was updated successfully, but these errors were encountered:
silentbicycle
changed the title
Add function for which characters FSMs's input must contain to match
Add function for which characters an FSM's input must contain to match
Apr 22, 2024
It would be useful to have a function that populates a u64bitset with which characters must appear in the input to possibly match an FSM. This wouldn't track the relative order of those characters occurring, just that if
bitset[N]
is set and character/octet N does not appear in the input at all, it can never match.This could be based on either the regex AST or walking the FSM. With the FSM it would benefit from
fsm_trim
s'sshortest_end_distance
analysis -- I think the intersection of the bitsets from all single-label edges on the shortest reverse path(s) from every endstate to the start would be one way to do it (for paths that cannot be skipped via a longer route), though not necessarily the simplest/cheapest.The text was updated successfully, but these errors were encountered: