aboutsummaryrefslogtreecommitdiffstats
path: root/src/regex/dfa.rs
diff options
context:
space:
mode:
authorJonas Maier <jonas@x77.dev>2026-06-06 13:45:54 +0200
committerJonas Maier <jonas@x77.dev>2026-06-06 13:45:54 +0200
commitd39ed8fc77981f937c35fa84a7ff5d288d0c7181 (patch)
treec17ba6e489a66e732853e9720eba4c16fa86d441 /src/regex/dfa.rs
parent1c0c0c35f3dff0abc8ac24ec90dedf554697cec5 (diff)
downloadpish-d39ed8fc77981f937c35fa84a7ff5d288d0c7181.tar.gz
clean up
Diffstat (limited to 'src/regex/dfa.rs')
-rw-r--r--src/regex/dfa.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/regex/dfa.rs b/src/regex/dfa.rs
index c55d99d..78a216c 100644
--- a/src/regex/dfa.rs
+++ b/src/regex/dfa.rs
@@ -374,6 +374,15 @@ impl DFA {
pub fn minify(&mut self) {
for state in self.states.iter_mut() {
state.trans.retain(|_, to| *to != state.default_trans);
+ if state.trans.len() == 1
+ && state
+ .trans
+ .iter()
+ .all(|t| *t.0 == ByteRange::new_range(0, 255))
+ {
+ state.default_trans = state.trans.iter().map(|x| *x.1).next().unwrap();
+ state.trans.clear();
+ }
}
self.hopcroft_minimization();