peggen-core 0.2.0

Generate recursive-descent & precedence climbing parsers. (traits)
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use alloc::string::String;

use crate::*;

impl<Extra: Copy> AstImpl<Extra> for String {
    fn ast<'a>(
        input: &'a str, 
        stack: &'a [Tag], 
        _: Extra
    ) -> (&'a [Tag], Self) {
        let tag = &stack[stack.len()-1];
        (
            &stack[..stack.len()-1],
            <Self as core::str::FromStr>::from_str(&input[tag.span.clone()])
                .unwrap()
        )
    }
}