[][src]Trait bogobble::parser::Parser

pub trait Parser<'a>: Sized {
    type Out;
    pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>;

    pub fn parse_s(&self, s: &'a str) -> Result<Self::Out, PErr<'a>> { ... }
pub fn or<B: Parser<'a, Out = Self::Out>>(self, b: B) -> Or<Self, B> { ... }
pub fn asv<V: Clone>(self, v: V) -> Asv<Self, V> { ... }
pub fn map<B, F: Fn(Self::Out) -> B>(self, f: F) -> Map<Self, F> { ... }
pub fn try_map<B, F: Fn(Self::Out) -> Result<B, Expected>>(
        self,
        f: F
    ) -> TryMap<Self, F> { ... }
pub fn ig(self) -> Ig<Self> { ... }
pub fn brk(self) -> Break<Self> { ... } }

Associated Types

Loading content...

Required methods

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Loading content...

Provided methods

pub fn parse_s(&self, s: &'a str) -> Result<Self::Out, PErr<'a>>[src]

pub fn or<B: Parser<'a, Out = Self::Out>>(self, b: B) -> Or<Self, B>[src]

pub fn asv<V: Clone>(self, v: V) -> Asv<Self, V>[src]

pub fn map<B, F: Fn(Self::Out) -> B>(self, f: F) -> Map<Self, F>[src]

pub fn try_map<B, F: Fn(Self::Out) -> Result<B, Expected>>(
    self,
    f: F
) -> TryMap<Self, F>
[src]

pub fn ig(self) -> Ig<Self>[src]

pub fn brk(self) -> Break<Self>[src]

Loading content...

Implementations on Foreign Types

impl<'a> Parser<'a> for &'static str[src]

type Out = &'static str

impl<'a> Parser<'a> for char[src]

type Out = char

impl<'a, A, B> Parser<'a> for (A, B) where
    A: Parser<'a>,
    B: Parser<'a>, 
[src]

type Out = (A::Out, B::Out)

impl<'a, A, B, C> Parser<'a> for (A, B, C) where
    A: Parser<'a>,
    B: Parser<'a>,
    C: Parser<'a>, 
[src]

type Out = (A::Out, B::Out, C::Out)

impl<'a, A, B, C, D> Parser<'a> for (A, B, C, D) where
    A: Parser<'a>,
    B: Parser<'a>,
    C: Parser<'a>,
    D: Parser<'a>, 
[src]

type Out = (A::Out, B::Out, C::Out, D::Out)

impl<'a, A, B, C, D, E> Parser<'a> for (A, B, C, D, E) where
    A: Parser<'a>,
    B: Parser<'a>,
    C: Parser<'a>,
    D: Parser<'a>,
    E: Parser<'a>, 
[src]

type Out = (A::Out, B::Out, C::Out, D::Out, E::Out)

impl<'a, A, B, C, D, E, F> Parser<'a> for (A, B, C, D, E, F) where
    A: Parser<'a>,
    B: Parser<'a>,
    C: Parser<'a>,
    D: Parser<'a>,
    E: Parser<'a>,
    F: Parser<'a>, 
[src]

type Out = (A::Out, B::Out, C::Out, D::Out, E::Out, F::Out)

Loading content...

Implementors

impl<'a> Parser<'a> for Bool[src]

type Out = bool

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for Esc[src]

type Out = char

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for Exponent[src]

type Out = isize

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for Float[src]

type Out = f64

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for Ident[src]

type Out = String

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for Int[src]

type Out = isize

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for Quoted[src]

type Out = String

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for UInt[src]

type Out = usize

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a> Parser<'a> for EOI[src]

type Out = ()

pub fn parse(&self, it: &PIter<'a>) -> ParseRes<'a, Self::Out>[src]

Parse run the main parser

impl<'a, A> Parser<'a> for Maybe<A> where
    A: Parser<'a>, 
[src]

type Out = Option<A::Out>

impl<'a, A, B> Parser<'a> for Wrap<A, B> where
    A: Parser<'a>,
    B: Parser<'a>, 
[src]

type Out = B::Out

impl<'a, A, B> Parser<'a> for PSepPlus<A, B> where
    A: Parser<'a>,
    B: Parser<'a>, 
[src]

type Out = Vec<A::Out>

impl<'a, A, B> Parser<'a> for PSepStar<A, B> where
    A: Parser<'a>,
    B: Parser<'a>, 
[src]

type Out = Vec<A::Out>

impl<'a, A, B> Parser<'a> for SepPlus<A, B> where
    A: Parser<'a>,
    B: Parser<'a>, 
[src]

type Out = Vec<A::Out>

impl<'a, A, B> Parser<'a> for SepStar<A, B> where
    A: Parser<'a>,
    B: Parser<'a>, 
[src]

type Out = Vec<A::Out>

impl<'a, A, B, C> Parser<'a> for Reflect<A, B, C> where
    A: Parser<'a>,
    B: Parser<'a>,
    C: Parser<'a>, 
[src]

type Out = (Vec<A::Out>, B::Out, Vec<C::Out>)

impl<'a, A, B, C> Parser<'a> for SepUntil<A, B, C> where
    A: Parser<'a>,
    B: Parser<'a>,
    C: Parser<'a>, 
[src]

type Out = (Vec<A::Out>, C::Out)

impl<'a, A, B, I> Parser<'a> for Merger<A, B, I> where
    A: Parser<'a, Out = PosTree<I>>,
    B: Parser<'a, Out = PosTree<I>>,
    I: Clone
[src]

type Out = PosTree<I>

impl<'a, A, B, I> Parser<'a> for OPusher<A, B> where
    A: Parser<'a, Out = PosTree<I>>,
    B: Parser<'a, Out = Option<PosTree<I>>>,
    I: Clone
[src]

type Out = PosTree<I>

impl<'a, A, B, I> Parser<'a> for Pusher<A, B> where
    A: Parser<'a, Out = PosTree<I>>,
    B: Parser<'a, Out = PosTree<I>>,
    I: Clone
[src]

type Out = PosTree<I>

impl<'a, A, B, V> Parser<'a> for Or<A, B> where
    A: Parser<'a, Out = V>,
    B: Parser<'a, Out = V>, 
[src]

type Out = V

impl<'a, A, R, O> Parser<'a> for FirstRes<A> where
    A: Parser<'a, Out = R>,
    R: Firster<Item = O>, 
[src]

type Out = O

impl<'a, A, R, O> Parser<'a> for LastRes<A> where
    A: Parser<'a, Out = R>,
    R: Laster<Item = O>, 
[src]

type Out = O

impl<'a, A: CharBool> Parser<'a> for CharExact<A>[src]

type Out = &'a str

impl<'a, A: CharBool> Parser<'a> for CharMin<A>[src]

type Out = &'a str

impl<'a, A: CharBool, E: Parser<'a>> Parser<'a> for CharUntil<A, E>[src]

type Out = (&'a str, E::Out)

impl<'a, A: Parser<'a>> Parser<'a> for Break<A>[src]

type Out = A::Out

impl<'a, A: Parser<'a>> Parser<'a> for PExact<A>[src]

type Out = Vec<A::Out>

impl<'a, A: Parser<'a>> Parser<'a> for PPlus<A>[src]

type Out = Vec<A::Out>

impl<'a, A: Parser<'a>> Parser<'a> for PRepStar<A>[src]

type Out = Vec<A::Out>

impl<'a, A: Parser<'a>> Parser<'a> for Exact<A>[src]

type Out = Vec<A::Out>

impl<'a, A: Parser<'a>> Parser<'a> for RepPlus<A>[src]

type Out = Vec<A::Out>

impl<'a, A: Parser<'a>> Parser<'a> for RepStar<A>[src]

type Out = Vec<A::Out>

impl<'a, A: Parser<'a>> Parser<'a> for Ig<A>[src]

type Out = ()

impl<'a, A: Parser<'a>> Parser<'a> for StringsPlus<A> where
    A::Out: AsRef<str>, 
[src]

type Out = String

impl<'a, A: Parser<'a>, B, F: Fn(A::Out) -> Result<B, Expected>> Parser<'a> for TryMap<A, F>[src]

type Out = B

impl<'a, A: Parser<'a>, B, F: Fn(A::Out) -> B> Parser<'a> for Map<A, F>[src]

type Out = B

impl<'a, A: Parser<'a>, B: Parser<'a>> Parser<'a> for PlusUntil<A, B>[src]

type Out = (Vec<A::Out>, B::Out)

impl<'a, A: Parser<'a>, B: Parser<'a>> Parser<'a> for StarUntil<A, B>[src]

type Out = (Vec<A::Out>, B::Out)

impl<'a, A: Parser<'a>, B: Parser<'a>> Parser<'a> for First<A, B>[src]

type Out = A::Out

impl<'a, A: Parser<'a>, B: Parser<'a>> Parser<'a> for Last<A, B>[src]

type Out = B::Out

impl<'a, A: Parser<'a>, B: Parser<'a>, C: Parser<'a>> Parser<'a> for Middle<A, B, C>[src]

type Out = B::Out

impl<'a, A: Parser<'a>, V: Clone> Parser<'a> for Asv<A, V>[src]

type Out = V

impl<'a, A: Parser<'a, Out = char>, B: Parser<'a>> Parser<'a> for CharsUntil<A, B>[src]

type Out = (String, B::Out)

impl<'a, A: Parser<'a, Out = String>, B: Parser<'a>> Parser<'a> for StringsPlusUntil<A, B>[src]

type Out = (String, B::Out)

impl<'a, A: Parser<'a, Out = String>, B: Parser<'a>> Parser<'a> for StringsStarUntil<A, B>[src]

type Out = (String, B::Out)

impl<'a, A: Parser<'a, Out = AV>, AV: Into<String> + AsRef<str>> Parser<'a> for StringRepeat<A>[src]

type Out = String

impl<'a, C: CharBool, P: Parser<'a, Out = PosTree<I>>, I: Clone> Parser<'a> for PCUntil<C, P, I>[src]

type Out = (PosTree<I>, P::Out)

impl<'a, CB: CharBool> Parser<'a> for CharPlus<CB>[src]

type Out = &'a str

impl<'a, CB: CharBool> Parser<'a> for CharStar<CB>[src]

type Out = &'a str

impl<'a, CB: CharBool> Parser<'a> for ICharExact<CB>[src]

type Out = ()

impl<'a, CB: CharBool> Parser<'a> for ICharPlus<CB>[src]

type Out = ()

impl<'a, CB: CharBool> Parser<'a> for ICharStar<CB>[src]

type Out = ()

impl<'a, CB: CharBool> Parser<'a> for OneChar<CB>[src]

type Out = char

impl<'a, F, V> Parser<'a> for F where
    F: Fn(&PIter<'a>) -> ParseRes<'a, V>, 
[src]

type Out = V

impl<'a, I: Clone, P: Parser<'a, Out = PosTree<I>>> Parser<'a> for PMaybe<P, I>[src]

type Out = PosTree<I>

impl<'a, P: Parser<'a>> Parser<'a> for Exists<P>[src]

type Out = bool

impl<'a, P: Parser<'a>> Parser<'a> for PDebugger<P>[src]

type Out = P::Out

impl<'a, P: Parser<'a>> Parser<'a> for KeyWord<P>[src]

type Out = P::Out

impl<'a, P: Parser<'a>> Parser<'a> for PPos<P>[src]

type Out = Pos<P::Out>

impl<'a, P: Parser<'a>> Parser<'a> for Peek<P>[src]

type Out = P::Out

impl<'a, P: Parser<'a>> Parser<'a> for WS__<P>[src]

type Out = P::Out

impl<'a, P: Parser<'a>> Parser<'a> for StrRange<P>[src]

type Out = &'a str

impl<'a, P: Parser<'a>> Parser<'a> for StringRange<P>[src]

type Out = String

impl<'a, P: Parser<'a>, I: Clone> Parser<'a> for PosTreeParse<P, I>[src]

type Out = PosTree<I>

impl<'a, P: Parser<'a, Out = Vec<PosTree<I>>>, I: Clone> Parser<'a> for PosVecParse<P, I>[src]

type Out = PosTree<I>

impl<'a, P: Parser<'a, Out = V>, V: Debug> Parser<'a> for FailOn<P>[src]

type Out = ()

Loading content...