diff --git a/vhdlpp/expression.cc b/vhdlpp/expression.cc index 7bb97642f..b8c1113d4 100644 --- a/vhdlpp/expression.cc +++ b/vhdlpp/expression.cc @@ -894,3 +894,11 @@ ExpDelay::~ExpDelay() delete expr_; delete delay_; } + +void ExpDelay::visit(ExprVisitor& func) +{ + expr_->visit(func); + delay_->visit(func); + + func(this); +} diff --git a/vhdlpp/expression.h b/vhdlpp/expression.h index 8dc5d1126..b09b5fdd2 100644 --- a/vhdlpp/expression.h +++ b/vhdlpp/expression.h @@ -992,6 +992,7 @@ public: void write_to_stream(std::ostream&) const; int emit(ostream&out, Entity*ent, ScopeBase*scope) const; void dump(ostream&out, int indent = 0) const; + void visit(ExprVisitor& func); const Expression*peek_expr() const { return expr_; } const Expression*peek_delay() const { return delay_; }