virtual void accept(ASTVisitorInterface& visitor) { visitor.visit(*this); left_->accept(visitor); visitor.midVisit(*this); right_->accept(visitor); visitor.postVisit(*this); }
virtual void accept(ASTVisitorInterface& visitor) { visitor.visit(*this); const size_t n = args_.size(); for (size_t i = 0; i < n; ++i) { args_[i]->accept(visitor); if (i < n - 1) { visitor.midVisit(*this); } } visitor.postVisit(*this); }