| #![cfg_attr(not(feature = "std"), no_std)] |
| extern crate alloc; |
| #[cfg(not(feature = "std"))] |
| use alloc::{format, vec::Vec}; |
| |
| #[cfg(feature = "grammar-extras")] |
| use pest::Parser; |
| use pest_derive::Parser; |
| |
| #[derive(Parser)] |
| #[grammar = "../tests/oneormore.pest"] |
| pub struct OneOrMoreParser; |
| |
| #[test] |
| #[cfg(feature = "grammar-extras")] |
| pub fn test_one_or_more() { |
| let result = OneOrMoreParser::parse(Rule::assign, "k <- b\n"); |
| assert!(result.is_ok()); |
| let mut pairs = result.unwrap(); |
| let pair = pairs.next().unwrap(); |
| assert_eq!(pair.as_rule(), Rule::assign); |
| let mut inner = pair.into_inner(); |
| let lhs = inner.next().unwrap(); |
| assert_eq!(lhs.as_rule(), Rule::identifier); |
| assert_eq!(lhs.as_str(), "k"); |
| let rhs = inner.next().unwrap(); |
| assert_eq!(rhs.as_rule(), Rule::identifier); |
| assert_eq!(rhs.as_str(), "b"); |
| } |