1 #![cfg_attr(not(feature = "std"), no_std)] 2 extern crate alloc; 3 #[cfg(not(feature = "std"))] 4 use alloc::{format, vec::Vec}; 5 6 #[cfg(feature = "grammar-extras")] 7 use pest::Parser; 8 use pest_derive::Parser; 9 10 #[derive(Parser)] 11 #[grammar = "../tests/oneormore.pest"] 12 pub struct OneOrMoreParser; 13 14 #[test] 15 #[cfg(feature = "grammar-extras")] test_one_or_more()16pub fn test_one_or_more() { 17 let result = OneOrMoreParser::parse(Rule::assign, "k <- b\n"); 18 assert!(result.is_ok()); 19 let mut pairs = result.unwrap(); 20 let pair = pairs.next().unwrap(); 21 assert_eq!(pair.as_rule(), Rule::assign); 22 let mut inner = pair.into_inner(); 23 let lhs = inner.next().unwrap(); 24 assert_eq!(lhs.as_rule(), Rule::identifier); 25 assert_eq!(lhs.as_str(), "k"); 26 let rhs = inner.next().unwrap(); 27 assert_eq!(rhs.as_rule(), Rule::identifier); 28 assert_eq!(rhs.as_str(), "b"); 29 } 30