void TypeRegistry::Accept(TypeVisitor& visitor) const { visitor.Visit(*this); for (auto& kv : types_) { kv.second->Accept(visitor); } }
DDR_RC ClassUDT::acceptVisitor(const TypeVisitor &visitor) { return visitor.visitClass(this); }
int accept(TypeVisitor &v) const {return v.visit(this);}
BasicType deduceType(const Expr* exp) { TypeVisitor tv; exp->accept(&tv); return tv.getType(); }
DDR_RC NamespaceUDT::acceptVisitor(const TypeVisitor &visitor) { return visitor.visitNamespace(this); }
// function for the type visitors bool StructUnionType::accept(TypeVisitor& tv) { return tv.visit(this); }
DDR_RC Type::acceptVisitor(const TypeVisitor &visitor) { return visitor.visitType(this); }
void ClassType::Accept(TypeVisitor& visitor) const { visitor.Visit(*this); }
void EnumType::Accept(TypeVisitor& visitor) const { visitor.Visit(*this); }