Minimal Imperative Parsing Library | https://docs.rs/mipl

extract common setup into a helper in test_parsers.rs

ecsolticia.codeberg.page d681bc93 e1942cb5

verified
+11 -29
+11 -29
tests/test_parsers.rs
··· 2 2 use mipl::lexer::del::*; 3 3 use mipl::lexer::*; 4 4 5 - #[test] 6 - fn test_exact_match() { 5 + fn setup_space_seps_parser(source: &str) -> Parser { 7 6 let d_vec: Vec<char> = vec![' ']; 8 7 let d_del = DiscardDelimiters::new(d_vec); 9 8 let k_vec: Vec<char> = vec![]; ··· 12 11 keep: k_del, discard: d_del 13 12 }; 14 13 15 - let mut parser = Parser::from( 16 - "lorem ipsum", 14 + Parser::from( 15 + source, 17 16 del_param 18 - ); 17 + ) 18 + } 19 + 20 + #[test] 21 + fn test_exact_match() { 22 + let mut parser = setup_space_seps_parser("lorem ipsum"); 19 23 20 24 let ipsum_parser = parsers::ExactMatch{ 21 25 matches: String::from("ipsum") ··· 26 30 27 31 #[test] 28 32 fn test_exact_match_try_next_advance_token() { 29 - let d_vec: Vec<char> = vec![' ']; 30 - let d_del = DiscardDelimiters::new(d_vec); 31 - let k_vec: Vec<char> = vec![]; 32 - let k_del = KeepDelimiters::new(k_vec); 33 - let del_param = DelimitersParam { 34 - keep: k_del, discard: d_del 35 - }; 36 - 37 - let mut parser = Parser::from( 38 - "lorem ipsum", 39 - del_param 40 - ); 33 + let mut parser = setup_space_seps_parser("lorem ipsum"); 41 34 42 35 let ipsum_parser = parsers::ExactMatch{ 43 36 matches: String::from("lorem") ··· 54 47 55 48 #[test] 56 49 fn test_is_newline() { 57 - let d_vec: Vec<char> = vec![' ']; 58 - let d_del = DiscardDelimiters::new(d_vec); 59 - let k_vec: Vec<char> = vec![]; 60 - let k_del = KeepDelimiters::new(k_vec); 61 - let del_param = DelimitersParam { 62 - keep: k_del, discard: d_del 63 - }; 64 - 65 - let mut parser = Parser::from( 66 - "lorem ipsum\ndolor sit amet", 67 - del_param 68 - ); 50 + let mut parser = setup_space_seps_parser("lorem ipsum\ndolor sit amet"); 69 51 70 52 let newline_parser = IsNewline; 71 53