From d66f8a4749cdc2bfe51527c50b846eef87be4e17 Mon Sep 17 00:00:00 2001 From: omagdy7 Date: Sat, 2 Dec 2023 00:57:12 +0200 Subject: This almost works but fails it doesn't fail when there is extra input --- src/main.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs index e39b386..bcc0f01 100755 --- a/src/main.rs +++ b/src/main.rs @@ -3,15 +3,19 @@ mod regex; use nfa::*; use regex::*; -fn main() { - let input = "a*b"; - let token = Regex::new(String::from(input)); - println!("{input}\n{:#?}", token); - +fn test(regex: &str, input: &str) -> bool { + let token = Regex::new(String::from(regex)); + dbg!(&token); let mut nfa = NFA::new(); nfa.regex_to_nfa(token); - println!("NFA: {:#?}", nfa); - // let inp = "abcdefglmno"; - // let output = nfa.simulate(String::from(inp)); - // println!("{inp} was = {output}") + let mut x: Vec<(&usize, &State)> = nfa.states.iter().map(|(k, v)| (k, v)).collect(); + x.sort(); + dbg!(x); + // nfa.match_re(String::from(input)) + true +} + +fn main() { + // println!("{}", test("a.b..", "a.bxb")); + println!("{}", test(".*b", "aaaaaabbb")) } -- cgit v1.2.3