Enum pest_meta::optimizer::OptimizedExpr
source · pub enum OptimizedExpr {
Show 14 variants
Str(String),
Insens(String),
Range(String, String),
Ident(String),
PeekSlice(i32, Option<i32>),
PosPred(Box<OptimizedExpr>),
NegPred(Box<OptimizedExpr>),
Seq(Box<OptimizedExpr>, Box<OptimizedExpr>),
Choice(Box<OptimizedExpr>, Box<OptimizedExpr>),
Opt(Box<OptimizedExpr>),
Rep(Box<OptimizedExpr>),
Skip(Vec<String>),
Push(Box<OptimizedExpr>),
RestoreOnErr(Box<OptimizedExpr>),
}
Expand description
The optimized version of the pest AST’s Expr
.
Warning: Semantic Versioning
There may be non-breaking changes to the meta-grammar
between minor versions. Those non-breaking changes, however,
may translate into semver-breaking changes due to the additional variants
propaged from the Rule
enum. This is a known issue and will be fixed in the
future (e.g. by increasing MSRV and non_exhaustive annotations).
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<OptimizedExpr>)
Positive lookahead; matches expression without making progress, e.g. &e
NegPred(Box<OptimizedExpr>)
Negative lookahead; matches if expression doesn’t match, without making progress, e.g. !e
Seq(Box<OptimizedExpr>, Box<OptimizedExpr>)
Matches a sequence of two expressions, e.g. e1 ~ e2
Choice(Box<OptimizedExpr>, Box<OptimizedExpr>)
Matches either of two expressions, e.g. e1 | e2
Opt(Box<OptimizedExpr>)
Optionally matches an expression, e.g. e?
Rep(Box<OptimizedExpr>)
Matches an expression zero or more times, e.g. e*
Skip(Vec<String>)
Continues to match expressions until one of the strings in the Vec
is found
Push(Box<OptimizedExpr>)
Matches an expression and pushes it to the stack, e.g. push(e)
RestoreOnErr(Box<OptimizedExpr>)
Restores an expression’s checkpoint
Implementations§
source§impl OptimizedExpr
impl OptimizedExpr
sourcepub fn iter_top_down(&self) -> OptimizedExprTopDownIterator ⓘ
pub fn iter_top_down(&self) -> OptimizedExprTopDownIterator ⓘ
Returns a top-down iterator over the OptimizedExpr
.
sourcepub fn map_top_down<F>(self, f: F) -> OptimizedExprwhere
F: FnMut(OptimizedExpr) -> OptimizedExpr,
pub fn map_top_down<F>(self, f: F) -> OptimizedExprwhere F: FnMut(OptimizedExpr) -> OptimizedExpr,
Applies f
to the OptimizedExpr
top-down.
sourcepub fn map_bottom_up<F>(self, f: F) -> OptimizedExprwhere
F: FnMut(OptimizedExpr) -> OptimizedExpr,
pub fn map_bottom_up<F>(self, f: F) -> OptimizedExprwhere F: FnMut(OptimizedExpr) -> OptimizedExpr,
Applies f
to the OptimizedExpr
bottom-up.
Trait Implementations§
source§impl Clone for OptimizedExpr
impl Clone for OptimizedExpr
source§fn clone(&self) -> OptimizedExpr
fn clone(&self) -> OptimizedExpr
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for OptimizedExpr
impl Debug for OptimizedExpr
source§impl PartialEq<OptimizedExpr> for OptimizedExpr
impl PartialEq<OptimizedExpr> for OptimizedExpr
source§fn eq(&self, other: &OptimizedExpr) -> bool
fn eq(&self, other: &OptimizedExpr) -> bool
self
and other
values to be equal, and is used
by ==
.