scarf_parser/parser/
spanned_token.rs1use crate::*;
7use lexer::Token;
8use winnow::ModalResult;
9use winnow::Parser;
10use winnow::error::ErrMode;
11use winnow::stream::{Stateful, TokenSlice};
12use winnow::token::literal;
13
14pub type Tokens<'s> =
16 Stateful<TokenSlice<'s, SpannedToken<'s>>, Option<VerboseError<'s>>>;
17impl<'s> Parser<Tokens<'s>, &'s SpannedToken<'s>, ErrMode<VerboseError<'s>>>
18 for Token<'s>
19{
20 fn parse_next(
21 &mut self,
22 input: &mut Tokens<'s>,
23 ) -> ModalResult<&'s SpannedToken<'s>, VerboseError<'s>> {
24 literal(*self).parse_next(input).map(|t| &t[0])
25 }
26}