[][src]Trait pratt::PrattParser

pub trait PrattParser<Inputs> where
    Inputs: Iterator<Item = Self::Input>, 
{ type Error: Display; type Input: Debug; type Output: Sized; fn query(&mut self, input: &Self::Input) -> Result<Affix, Self::Error>;
fn primary(
        &mut self,
        input: Self::Input
    ) -> Result<Self::Output, Self::Error>;
fn infix(
        &mut self,
        lhs: Self::Output,
        op: Self::Input,
        rhs: Self::Output
    ) -> Result<Self::Output, Self::Error>;
fn prefix(
        &mut self,
        op: Self::Input,
        rhs: Self::Output
    ) -> Result<Self::Output, Self::Error>;
fn postfix(
        &mut self,
        lhs: Self::Output,
        op: Self::Input
    ) -> Result<Self::Output, Self::Error>; fn parse(
        &mut self,
        inputs: &mut Inputs
    ) -> Result<Self::Output, PrattError<Self::Input, Self::Error>> { ... }
fn parse_input(
        &mut self,
        tail: &mut Peekable<&mut Inputs>,
        rbp: Precedence
    ) -> Result<Self::Output, PrattError<Self::Input, Self::Error>> { ... }
fn nud(
        &mut self,
        head: Self::Input,
        tail: &mut Peekable<&mut Inputs>,
        info: Affix
    ) -> Result<Self::Output, PrattError<Self::Input, Self::Error>> { ... }
fn led(
        &mut self,
        head: Self::Input,
        tail: &mut Peekable<&mut Inputs>,
        info: Affix,
        lhs: Self::Output
    ) -> Result<Self::Output, PrattError<Self::Input, Self::Error>> { ... }
fn lbp(&mut self, info: Affix) -> Precedence { ... }
fn nbp(&mut self, info: Affix) -> Precedence { ... } }

Associated Types

Loading content...

Required methods

fn query(&mut self, input: &Self::Input) -> Result<Affix, Self::Error>

fn primary(&mut self, input: Self::Input) -> Result<Self::Output, Self::Error>

fn infix(
    &mut self,
    lhs: Self::Output,
    op: Self::Input,
    rhs: Self::Output
) -> Result<Self::Output, Self::Error>

fn prefix(
    &mut self,
    op: Self::Input,
    rhs: Self::Output
) -> Result<Self::Output, Self::Error>

fn postfix(
    &mut self,
    lhs: Self::Output,
    op: Self::Input
) -> Result<Self::Output, Self::Error>

Loading content...

Provided methods

fn parse(
    &mut self,
    inputs: &mut Inputs
) -> Result<Self::Output, PrattError<Self::Input, Self::Error>>

fn parse_input(
    &mut self,
    tail: &mut Peekable<&mut Inputs>,
    rbp: Precedence
) -> Result<Self::Output, PrattError<Self::Input, Self::Error>>

fn nud(
    &mut self,
    head: Self::Input,
    tail: &mut Peekable<&mut Inputs>,
    info: Affix
) -> Result<Self::Output, PrattError<Self::Input, Self::Error>>

Null-Denotation

fn led(
    &mut self,
    head: Self::Input,
    tail: &mut Peekable<&mut Inputs>,
    info: Affix,
    lhs: Self::Output
) -> Result<Self::Output, PrattError<Self::Input, Self::Error>>

Left-Denotation

fn lbp(&mut self, info: Affix) -> Precedence

Left-Binding-Power

fn nbp(&mut self, info: Affix) -> Precedence

Next-Binding-Power

Loading content...

Implementors

Loading content...