diff options
Diffstat (limited to 'vendor/pest_meta/src/optimizer')
-rw-r--r-- | vendor/pest_meta/src/optimizer/concatenator.rs | 1 | ||||
-rw-r--r-- | vendor/pest_meta/src/optimizer/factorizer.rs | 1 | ||||
-rw-r--r-- | vendor/pest_meta/src/optimizer/lister.rs | 1 | ||||
-rw-r--r-- | vendor/pest_meta/src/optimizer/mod.rs | 7 | ||||
-rw-r--r-- | vendor/pest_meta/src/optimizer/rotater.rs | 1 | ||||
-rw-r--r-- | vendor/pest_meta/src/optimizer/skipper.rs | 1 |
6 files changed, 5 insertions, 7 deletions
diff --git a/vendor/pest_meta/src/optimizer/concatenator.rs b/vendor/pest_meta/src/optimizer/concatenator.rs index 31d3aa531..c67d3636e 100644 --- a/vendor/pest_meta/src/optimizer/concatenator.rs +++ b/vendor/pest_meta/src/optimizer/concatenator.rs @@ -16,7 +16,6 @@ pub fn concatenate(rule: Rule) -> Rule { ty, expr: expr.map_bottom_up(|expr| { if ty == RuleType::Atomic { - // TODO: Use box syntax when it gets stabilized. match expr { Expr::Seq(lhs, rhs) => match (*lhs, *rhs) { (Expr::Str(lhs), Expr::Str(rhs)) => Expr::Str(lhs + &rhs), diff --git a/vendor/pest_meta/src/optimizer/factorizer.rs b/vendor/pest_meta/src/optimizer/factorizer.rs index cff018b64..e6fd8ff62 100644 --- a/vendor/pest_meta/src/optimizer/factorizer.rs +++ b/vendor/pest_meta/src/optimizer/factorizer.rs @@ -15,7 +15,6 @@ pub fn factor(rule: Rule) -> Rule { name, ty, expr: expr.map_top_down(|expr| { - // TODO: Use box syntax when it gets stabilized. match expr { Expr::Choice(lhs, rhs) => match (*lhs, *rhs) { (Expr::Seq(l1, r1), Expr::Seq(l2, r2)) => { diff --git a/vendor/pest_meta/src/optimizer/lister.rs b/vendor/pest_meta/src/optimizer/lister.rs index e19885032..03c9902c5 100644 --- a/vendor/pest_meta/src/optimizer/lister.rs +++ b/vendor/pest_meta/src/optimizer/lister.rs @@ -15,7 +15,6 @@ pub fn list(rule: Rule) -> Rule { name, ty, expr: expr.map_bottom_up(|expr| { - // TODO: Use box syntax when it gets stabilized. match expr { Expr::Seq(l, r) => match *l { Expr::Rep(l) => { diff --git a/vendor/pest_meta/src/optimizer/mod.rs b/vendor/pest_meta/src/optimizer/mod.rs index f9cde831c..b69163ed3 100644 --- a/vendor/pest_meta/src/optimizer/mod.rs +++ b/vendor/pest_meta/src/optimizer/mod.rs @@ -68,6 +68,8 @@ fn rule_to_optimized_rule(rule: Rule) -> OptimizedRule { Expr::Rep(expr) => OptimizedExpr::Rep(Box::new(to_optimized(*expr))), Expr::Skip(strings) => OptimizedExpr::Skip(strings), Expr::Push(expr) => OptimizedExpr::Push(Box::new(to_optimized(*expr))), + #[cfg(feature = "grammar-extras")] + Expr::NodeTag(expr, tag) => OptimizedExpr::NodeTag(Box::new(to_optimized(*expr)), tag), Expr::RepOnce(_) | Expr::RepExact(..) | Expr::RepMin(..) @@ -137,6 +139,9 @@ pub enum OptimizedExpr { Skip(Vec<String>), /// Matches an expression and pushes it to the stack, e.g. `push(e)` Push(Box<OptimizedExpr>), + /// Matches an expression and assigns a label to it, e.g. #label = exp + #[cfg(feature = "grammar-extras")] + NodeTag(Box<OptimizedExpr>, String), /// Restores an expression's checkpoint RestoreOnErr(Box<OptimizedExpr>), } @@ -159,7 +164,6 @@ impl OptimizedExpr { let expr = f(expr); match expr { - // TODO: Use box syntax when it gets stabilized. OptimizedExpr::PosPred(expr) => { let mapped = Box::new(map_internal(*expr, f)); OptimizedExpr::PosPred(mapped) @@ -208,7 +212,6 @@ impl OptimizedExpr { { let mapped = match expr { OptimizedExpr::PosPred(expr) => { - // TODO: Use box syntax when it gets stabilized. let mapped = Box::new(map_internal(*expr, f)); OptimizedExpr::PosPred(mapped) } diff --git a/vendor/pest_meta/src/optimizer/rotater.rs b/vendor/pest_meta/src/optimizer/rotater.rs index 7a7d8fba4..b019c80c3 100644 --- a/vendor/pest_meta/src/optimizer/rotater.rs +++ b/vendor/pest_meta/src/optimizer/rotater.rs @@ -12,7 +12,6 @@ use crate::ast::*; pub fn rotate(rule: Rule) -> Rule { fn rotate_internal(expr: Expr) -> Expr { match expr { - // TODO: Use box syntax when it gets stabilized. Expr::Seq(lhs, rhs) => { let lhs = *lhs; match lhs { diff --git a/vendor/pest_meta/src/optimizer/skipper.rs b/vendor/pest_meta/src/optimizer/skipper.rs index 40bc5a16f..8300309b9 100644 --- a/vendor/pest_meta/src/optimizer/skipper.rs +++ b/vendor/pest_meta/src/optimizer/skipper.rs @@ -34,7 +34,6 @@ pub fn skip(rule: Rule) -> Rule { ty, expr: if ty == RuleType::Atomic { expr.map_top_down(|expr| { - // TODO: Use box syntax when it gets stabilized. if let Expr::Rep(expr) = expr.clone() { if let Expr::Seq(lhs, rhs) = *expr { if let (Expr::NegPred(expr), Expr::Ident(ident)) = (*lhs, *rhs) { |