Enum pest_meta::parser::ParserExpr

source ·
pub enum ParserExpr<'i> {
Show 17 variants Str(String), Insens(String), Range(String, String), Ident(String), PeekSlice(i32, Option<i32>), PosPred(Box<ParserNode<'i>>), NegPred(Box<ParserNode<'i>>), Seq(Box<ParserNode<'i>>, Box<ParserNode<'i>>), Choice(Box<ParserNode<'i>>, Box<ParserNode<'i>>), Opt(Box<ParserNode<'i>>), Rep(Box<ParserNode<'i>>), RepOnce(Box<ParserNode<'i>>), RepExact(Box<ParserNode<'i>>, u32), RepMin(Box<ParserNode<'i>>, u32), RepMax(Box<ParserNode<'i>>, u32), RepMinMax(Box<ParserNode<'i>>, u32, u32), Push(Box<ParserNode<'i>>),
}
Expand description

All possible parser expressions

Variants§

§

Str(String)

Matches an exact string, e.g. "a"

§

Insens(String)

Matches an exact string, case insensitively (ASCII only), e.g. ^"a"

§

Range(String, String)

Matches one character in the range, e.g. 'a'..'z'

§

Ident(String)

Matches the rule with the given name, e.g. a

§

PeekSlice(i32, Option<i32>)

Matches a custom part of the stack, e.g. PEEK[..]

§

PosPred(Box<ParserNode<'i>>)

Positive lookahead; matches expression without making progress, e.g. &e

§

NegPred(Box<ParserNode<'i>>)

Negative lookahead; matches if expression doesn’t match, without making progress, e.g. !e

§

Seq(Box<ParserNode<'i>>, Box<ParserNode<'i>>)

Matches a sequence of two expressions, e.g. e1 ~ e2

§

Choice(Box<ParserNode<'i>>, Box<ParserNode<'i>>)

Matches either of two expressions, e.g. e1 | e2

§

Opt(Box<ParserNode<'i>>)

Optionally matches an expression, e.g. e?

§

Rep(Box<ParserNode<'i>>)

Matches an expression zero or more times, e.g. e*

§

RepOnce(Box<ParserNode<'i>>)

Matches an expression one or more times, e.g. e+

§

RepExact(Box<ParserNode<'i>>, u32)

Matches an expression an exact number of times, e.g. e{n}

§

RepMin(Box<ParserNode<'i>>, u32)

Matches an expression at least a number of times, e.g. e{n,}

§

RepMax(Box<ParserNode<'i>>, u32)

Matches an expression at most a number of times, e.g. e{,n}

§

RepMinMax(Box<ParserNode<'i>>, u32, u32)

Matches an expression a number of times within a range, e.g. e{m, n}

§

Push(Box<ParserNode<'i>>)

Matches an expression and pushes it to the stack, e.g. push(e)

Trait Implementations§

source§

impl<'i> Clone for ParserExpr<'i>

source§

fn clone(&self) -> ParserExpr<'i>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'i> Debug for ParserExpr<'i>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<'i> PartialEq for ParserExpr<'i>

source§

fn eq(&self, other: &ParserExpr<'i>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'i> Eq for ParserExpr<'i>

source§

impl<'i> StructuralPartialEq for ParserExpr<'i>

Auto Trait Implementations§

§

impl<'i> Freeze for ParserExpr<'i>

§

impl<'i> RefUnwindSafe for ParserExpr<'i>

§

impl<'i> Send for ParserExpr<'i>

§

impl<'i> Sync for ParserExpr<'i>

§

impl<'i> Unpin for ParserExpr<'i>

§

impl<'i> UnwindSafe for ParserExpr<'i>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.