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) -> OptimizedExpr
pub fn map_top_down<F>(self, f: F) -> OptimizedExpr
Applies f
to the OptimizedExpr
top-down.
Sourcepub fn map_bottom_up<F>(self, f: F) -> OptimizedExpr
pub fn map_bottom_up<F>(self, f: F) -> 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 more