From 03ab86649b2ffa00c923d1460fadb906d6d680d5 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Thu, 30 Nov 2023 17:45:30 +0200 Subject: Added Thompson's concatenation --- src/nfa.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/nfa.rs') diff --git a/src/nfa.rs b/src/nfa.rs index 685c620..1474b46 100644 --- a/src/nfa.rs +++ b/src/nfa.rs @@ -56,8 +56,12 @@ impl NFA { (first, last) } RegexToken::Concat((left, right)) => { - self.regex_to_nfa(*left); - self.regex_to_nfa(*right); + let first = self.add_state(); + let (l_first, l_last) = self.regex_to_nfa_helper(*left); + let (r_first, r_last) = self.regex_to_nfa_helper(*right); + self.add_transition(first, l_first, Trans::Epsilon); + self.add_transition(l_last, r_first, Trans::Epsilon); + (first, r_last) } RegexToken::Union(_) => todo!(), RegexToken::Plus(_) => todo!(), -- cgit v1.2.3