lang_pt 0.1.2

A parser tool to generate recursive descent top down parser.
Documentation
use super::{Action, LexemeBuilder, Mapper, Middleware, StateMixin, ThunkMapper, ThunkStateMixin};
use crate::{ILexeme, Lex};

impl<T: ILexeme> LexemeBuilder for T {
    fn mapping(self, fields: Vec<(&str, Self::Token)>) -> Result<Mapper<Self>, String>
    where
        Self: Sized,
    {
        Mapper::new(self, fields)
    }

    fn state_mixin(self, actions: Vec<(Self::Token, Action<Self::State>)>) -> StateMixin<Self>
    where
        Self: Sized,
    {
        StateMixin::new(self, actions)
    }

    fn middleware<TM: Fn(&[u8], &Vec<Lex<Self::Token>>) -> bool>(
        self,
        middleware: TM,
    ) -> Middleware<Self, TM>
    where
        Self: Sized,
    {
        Middleware::new(self, middleware)
    }

    fn thunk_mixin<
        TM: Fn(&Lex<Self::Token>, &[u8], &Vec<Lex<Self::Token>>) -> Action<Self::State>,
    >(
        self,
        thunk: TM,
    ) -> ThunkStateMixin<Self, TM>
    where
        Self: Sized,
    {
        ThunkStateMixin::new(self, thunk)
    }

    fn thunk_mapping<
        TF: Fn(&Lex<Self::Token>, &[u8], &Vec<Lex<Self::Token>>) -> Option<Self::Token>,
    >(
        self,
        thunk: TF,
    ) -> super::ThunkMapper<Self, TF>
    where
        Self: Sized,
    {
        ThunkMapper::new(self, thunk)
    }
}