diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2023-12-02 00:57:12 +0200 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2023-12-02 00:57:12 +0200 |
| commit | d66f8a4749cdc2bfe51527c50b846eef87be4e17 (patch) | |
| tree | 66cdd457396dc4a37a2fa15aa66fefe1166fc05f /src/main.rs | |
| parent | 1e73247d9c90d2cde48e4faa1970a0ecb7f26e38 (diff) | |
| download | rex-d66f8a4749cdc2bfe51527c50b846eef87be4e17.tar.xz rex-d66f8a4749cdc2bfe51527c50b846eef87be4e17.zip | |
This almost works but fails it doesn't fail when there is extra input
Diffstat (limited to 'src/main.rs')
| -rwxr-xr-x | src/main.rs | 22 |
1 files changed, 13 insertions, 9 deletions
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")) } |
