1 //! A parser and representation of regular expressions. 2 3 use regex_syntax::hir::Hir; 4 use regex_syntax::{self, Error, Parser}; 5 6 #[cfg(test)] 7 mod test; 8 9 pub type Regex = Hir; 10 pub type RegexError = Error; 11 12 /// Convert a string literal into a parsed regular expression. parse_literal(s: &str) -> Regex13pub fn parse_literal(s: &str) -> Regex { 14 match parse_regex(®ex_syntax::escape(s)) { 15 Ok(v) => v, 16 Err(_) => panic!("failed to parse literal regular expression"), 17 } 18 } 19 20 /// Parse a regular expression like `a+` etc. parse_regex(s: &str) -> Result<Regex, RegexError>21pub fn parse_regex(s: &str) -> Result<Regex, RegexError> { 22 let expr = Parser::new().parse(s)?; 23 Ok(expr) 24 } 25