Trait pest::Parser [] [src]

pub trait Parser<'a, T: Input<'a>> {
    type Rule;
    type Token;
    fn input(&self) -> &T;
    fn input_mut(&mut self) -> &mut T;
    fn end(&self) -> bool;
    fn eoi_matched(&self) -> bool;
    fn reset(&mut self);
    fn queue(&self) -> &Vec<Self::Token>;
    fn queue_mut(&mut self) -> &mut Vec<Self::Token>;
    fn queue_with_captures(&self) -> Vec<(Self::Token, String)>;
    fn queue_index(&self) -> usize;
    fn inc_queue_index(&self);
    fn set_queue_index(&self, index: usize);
    fn skip(&mut self);
    fn is_atomic(&self) -> bool;
    fn set_atomic(&mut self, value: bool);
    fn track(&mut self, failed: Self::Rule, pos: usize);
    fn tracked_len_pos(&self) -> (usize, usize);
    fn expected(&mut self) -> (Vec<Self::Rule>, usize);
    fn stack(&self) -> &Vec<String>;
    fn stack_mut(&mut self) -> &mut Vec<String>;
}

A trait that defines a parser.

Associated Types

type Rule

type Token

Required Methods

fn input(&self) -> &T

fn input_mut(&mut self) -> &mut T

fn end(&self) -> bool

Returns whether a Parser has reached its end.

fn eoi_matched(&self) -> bool

Returns whether a Parser has matched end-of-input.

fn reset(&mut self)

Reset a Parser.

fn queue(&self) -> &Vec<Self::Token>

Returns the queue of all matched Tokens.

fn queue_mut(&mut self) -> &mut Vec<Self::Token>

Returns the mutable queue of all matched Tokens.

fn queue_with_captures(&self) -> Vec<(Self::Token, String)>

Returns the queue of all matched (Token, value)s.

fn queue_index(&self) -> usize

Returns the current index within the queue. Used in process!.

fn inc_queue_index(&self)

Increments the current index within the queue. Used in process!.

fn set_queue_index(&self, index: usize)

Set the current index within the queue. Used in process!.

fn skip(&mut self)

Skips whitespace and comments.

fn is_atomic(&self) -> bool

Returns whether a Parser is currently inside an atomic rule.

fn set_atomic(&mut self, value: bool)

Sets a Parser to atomic rule mode, barring comment & white-space skipping.

fn track(&mut self, failed: Self::Rule, pos: usize)

Keeps track of rule failures. It gets called when a Rule fails at pos.

fn tracked_len_pos(&self) -> (usize, usize)

Returns the length of the tracked Rules.

fn expected(&mut self) -> (Vec<Self::Rule>, usize)

Retuns a Vec of all expected Rules at the deepest position where the parsing last stopped. It only returns leafs from the rule tree. Used for error reporting.

fn stack(&self) -> &Vec<String>

Returns the stack Vec.

fn stack_mut(&mut self) -> &mut Vec<String>

Returns the mutable stack Vec.

Implementors