pub enum Expr {
Show 18 variants
Str(String),
Insens(String),
Range(String, String),
Ident(String),
PeekSlice(i32, Option<i32>),
PosPred(Box<Expr>),
NegPred(Box<Expr>),
Seq(Box<Expr>, Box<Expr>),
Choice(Box<Expr>, Box<Expr>),
Opt(Box<Expr>),
Rep(Box<Expr>),
RepOnce(Box<Expr>),
RepExact(Box<Expr>, u32),
RepMin(Box<Expr>, u32),
RepMax(Box<Expr>, u32),
RepMinMax(Box<Expr>, u32, u32),
Skip(Vec<String>),
Push(Box<Expr>),
}
Expand description
All possible rule 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<Expr>)
Positive lookahead; matches expression without making progress, e.g. &e
NegPred(Box<Expr>)
Negative lookahead; matches if expression doesn’t match, without making progress, e.g. !e
Seq(Box<Expr>, Box<Expr>)
Matches a sequence of two expressions, e.g. e1 ~ e2
Choice(Box<Expr>, Box<Expr>)
Matches either of two expressions, e.g. e1 | e2
Opt(Box<Expr>)
Optionally matches an expression, e.g. e?
Rep(Box<Expr>)
Matches an expression zero or more times, e.g. e*
RepOnce(Box<Expr>)
Matches an expression one or more times, e.g. e+
RepExact(Box<Expr>, u32)
Matches an expression an exact number of times, e.g. e{n}
RepMin(Box<Expr>, u32)
Matches an expression at least a number of times, e.g. e{n,}
RepMax(Box<Expr>, u32)
Matches an expression at most a number of times, e.g. e{,n}
RepMinMax(Box<Expr>, u32, u32)
Matches an expression a number of times within a range, e.g. e{m, n}
Skip(Vec<String>)
Continues to match expressions until one of the strings in the Vec
is found
Push(Box<Expr>)
Matches an expression and pushes it to the stack, e.g. push(e)
Implementations
sourceimpl Expr
impl Expr
sourcepub fn iter_top_down(&self) -> ExprTopDownIteratorⓘNotable traits for ExprTopDownIteratorimpl Iterator for ExprTopDownIterator type Item = Expr;
pub fn iter_top_down(&self) -> ExprTopDownIteratorⓘNotable traits for ExprTopDownIteratorimpl Iterator for ExprTopDownIterator type Item = Expr;
Returns the iterator that steps the expression from top to bottom.
Trait Implementations
impl Eq for Expr
impl StructuralEq for Expr
impl StructuralPartialEq for Expr
Auto Trait Implementations
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnwindSafe for Expr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more