// Copyright (C) 2016 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #pragma once #include #include namespace CPlusPlus { class Overview; class CPLUSPLUS_EXPORT NamePrettyPrinter: protected NameVisitor { public: NamePrettyPrinter(const Overview *overview); virtual ~NamePrettyPrinter(); const Overview *overview() const; QString operator()(const Name *name); protected: QString switchName(const QString &name = QString()); virtual void visit(const Identifier *name); virtual void visit(const TemplateNameId *name); virtual void visit(const DestructorNameId *name); virtual void visit(const OperatorNameId *name); virtual void visit(const ConversionNameId *name); virtual void visit(const QualifiedNameId *name); virtual void visit(const SelectorNameId *name); virtual void visit(const AnonymousNameId *name); private: const Overview *_overview; QString _name; }; } // namespace CPlusPlus