pub struct Repetition {
pub min: u32,
pub max: Option<u32>,
pub greedy: bool,
pub sub: Box<Hir>,
}Expand description
The high-level intermediate representation of a repetition operator.
A repetition operator permits the repetition of an arbitrary sub-expression.
Fields§
§min: u32The minimum range of the repetition.
Note that special cases like ?, + and * all get translated into
the ranges {0,1}, {1,} and {0,}, respectively.
When min is zero, this expression can match the empty string
regardless of what its sub-expression is.
max: Option<u32>The maximum range of the repetition.
Note that when max is None, min acts as a lower bound but where
there is no upper bound. For something like x{5} where the min and
max are equivalent, min will be set to 5 and max will be set to
Some(5).
greedy: boolWhether this repetition operator is greedy or not. A greedy operator will match as much as it can. A non-greedy operator will match as little as it can.
Typically, operators are greedy by default and are only non-greedy when
a ? suffix is used, e.g., (expr)* is greedy while (expr)*? is
not. However, this can be inverted via the U “ungreedy” flag.
sub: Box<Hir>The expression being repeated.
Implementations§
Source§impl Repetition
impl Repetition
Sourcepub fn with(&self, sub: Hir) -> Repetition
pub fn with(&self, sub: Hir) -> Repetition
Returns a new repetition with the same min, max and greedy
values, but with its sub-expression replaced with the one given.
Trait Implementations§
Source§impl Clone for Repetition
impl Clone for Repetition
Source§fn clone(&self) -> Repetition
fn clone(&self) -> Repetition
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more