Files
Sourcetrail/src/lib_cxx/data/parser/cxx/CxxVerboseAstVisitor.h
T
malte_langkabel f80a371d44 src: fixed crashes on parsing Coati
* also fixed log path getting messed up by indexing a project using a CDB
2016-11-01 15:23:21 +01:00

47 lines
1.1 KiB
C++

#ifndef CXX_VERBOSE_AST_VISITOR_H
#define CXX_VERBOSE_AST_VISITOR_H
#include "clang/AST/TypeLoc.h"
#include "data/parser/cxx/CxxAstVisitor.h"
class ParserClient;
class FileRegister;
class CxxVerboseAstVisitor: public CxxAstVisitor
{
public:
CxxVerboseAstVisitor(clang::ASTContext* context, clang::Preprocessor* preprocessor, ParserClient* client, FileRegister* fileRegister);
virtual ~CxxVerboseAstVisitor();
private:
typedef CxxAstVisitor base;
virtual bool TraverseDecl(clang::Decl *d);
virtual bool TraverseStmt(clang::Stmt *stmt);
virtual bool TraverseTypeLoc(clang::TypeLoc tl);
std::string getIndentString() const;
std::string obfuscateName(const std::string& name) const;
std::string typeLocClassToString(clang::TypeLoc tl) const
{
switch(tl.getTypeLocClass())
{
#define STRINGIFY(X) #X
#define ABSTRACT_TYPE(Class, Base)
#define TYPE(Class, Base) \
case clang::TypeLoc::Class: \
return STRINGIFY(Class);
#include "clang/AST/TypeNodes.def"
case clang::TypeLoc::TypeLocClass::Qualified:
return "Qualified";
}
return "";
}
unsigned int m_indentation;
};
#endif // CXX_VERBOSE_AST_VISITOR_H