pub mod rules {
use pest_derive::Parser;
use pest::Parser;
pub mod alpha {
use super::Parser;
#[derive(Parser)]
#[grammar = "core/alpha.pest"]
pub struct ParserSingleAlpha;
#[test]
fn positive_single_alpha_0x41() {
let mut pairs = ParserSingleAlpha::parse(Rule::alpha, "A").expect("alpha 'A'");
let pair = pairs.next().expect("parsed pairs has a pair");
assert_eq!(Rule::alpha, pair.as_rule());
assert_eq!("A", pair.as_str());
assert!(pairs.next().is_none());
}
#[test]
fn negative_single_non_alpha_0x40() {
let e = ParserSingleAlpha::parse(Rule::alpha, "@").expect_err("non-alpha '@'");
assert_eq!(e.location, pest::error::InputLocation::Pos(0));
}
#[test]
fn positive_single_alpha_0x7a() {
let mut pairs = ParserSingleAlpha::parse(Rule::alpha, "z").expect("alpha 'z'");
let pair = pairs.next().expect("parsed pairs has a pair");
assert_eq!(Rule::alpha, pair.as_rule());
assert_eq!(&[0x7a], pair.as_str().as_bytes());
assert!(pairs.next().is_none());
}
#[test]
fn negative_single_non_alpha_0x7b() {
let e = ParserSingleAlpha::parse(Rule::alpha, "{").expect_err("non-alpha '{'");
assert_eq!(e.location, pest::error::InputLocation::Pos(0));
}
}
}