Commit de6ad605 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

add expr_collect

parent 1460d013
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -65,6 +65,17 @@ ExprVisitor expr_calln_fn(const std::initializer_list<ExprVisitor>& fns) {
  return bind(&expr_calln, _1, fns);
}

std::vector<const Expr*> expr_collect(const Expr* expr) {
  std::vector<const Expr*> exprs;

  while (expr) {
    exprs.push_back(expr);
    expr = expr_next(expr);
  }

  return exprs;
}

} // namespace fviz

+2 −0
Original line number Diff line number Diff line
@@ -31,5 +31,7 @@ ReturnCode expr_calln(

ExprVisitor expr_calln_fn(const std::initializer_list<ExprVisitor>& fns);

std::vector<const Expr*> expr_collect(const Expr* expr);

} // namespace fviz