marser 0.1.1

Parser combinator toolkit with matcher-level backtracking and rich error reporting.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! AI assistance: this file was written with AI assistance. The maintainer reviewed it and did not find errors.

use marser::{parse, parser::token_parser::TokenParser};

#[test]
fn token_parser_smoke_test() {
    let parser = TokenParser::new(|c: &char| c.is_ascii_digit(), |c: &char| *c);
    let (result, warnings) = parse(parser, "7").expect("single-digit parse should succeed");
    assert_eq!(result, '7');
    assert!(warnings.is_empty());
}

#[test]
fn token_parser_rejects_non_digit() {
    let parser = TokenParser::new(|c: &char| c.is_ascii_digit(), |c: &char| *c);
    assert!(parse(parser, "x").is_err());
}