summaryrefslogtreecommitdiffstats
path: root/include/clang/AST/DeclVisitor.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/AST/DeclVisitor.h')
-rw-r--r--include/clang/AST/DeclVisitor.h79
1 files changed, 0 insertions, 79 deletions
diff --git a/include/clang/AST/DeclVisitor.h b/include/clang/AST/DeclVisitor.h
deleted file mode 100644
index 4eaae35..0000000
--- a/include/clang/AST/DeclVisitor.h
+++ /dev/null
@@ -1,79 +0,0 @@
-//===--- DeclVisitor.h - Visitor for Decl subclasses ------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file defines the DeclVisitor interface.
-//
-//===----------------------------------------------------------------------===//
-#ifndef LLVM_CLANG_AST_DECLVISITOR_H
-#define LLVM_CLANG_AST_DECLVISITOR_H
-
-#include "clang/AST/Decl.h"
-#include "clang/AST/DeclCXX.h"
-#include "clang/AST/DeclFriend.h"
-#include "clang/AST/DeclObjC.h"
-#include "clang/AST/DeclOpenMP.h"
-#include "clang/AST/DeclTemplate.h"
-
-namespace clang {
-namespace declvisitor {
-
-template <typename T> struct make_ptr { typedef T *type; };
-template <typename T> struct make_const_ptr { typedef const T *type; };
-
-/// \brief A simple visitor class that helps create declaration visitors.
-template<template <typename> class Ptr, typename ImplClass, typename RetTy=void>
-class Base {
-public:
-
-#define PTR(CLASS) typename Ptr<CLASS>::type
-#define DISPATCH(NAME, CLASS) \
- return static_cast<ImplClass*>(this)->Visit##NAME(static_cast<PTR(CLASS)>(D))
-
- RetTy Visit(PTR(Decl) D) {
- switch (D->getKind()) {
-#define DECL(DERIVED, BASE) \
- case Decl::DERIVED: DISPATCH(DERIVED##Decl, DERIVED##Decl);
-#define ABSTRACT_DECL(DECL)
-#include "clang/AST/DeclNodes.inc"
- }
- llvm_unreachable("Decl that isn't part of DeclNodes.inc!");
- }
-
- // If the implementation chooses not to implement a certain visit
- // method, fall back to the parent.
-#define DECL(DERIVED, BASE) \
- RetTy Visit##DERIVED##Decl(PTR(DERIVED##Decl) D) { DISPATCH(BASE, BASE); }
-#include "clang/AST/DeclNodes.inc"
-
- RetTy VisitDecl(PTR(Decl) D) { return RetTy(); }
-
-#undef PTR
-#undef DISPATCH
-};
-
-} // end namespace declvisitor
-
-/// \brief A simple visitor class that helps create declaration visitors.
-///
-/// This class does not preserve constness of Decl pointers (see also
-/// ConstDeclVisitor).
-template<typename ImplClass, typename RetTy=void>
-class DeclVisitor
- : public declvisitor::Base<declvisitor::make_ptr, ImplClass, RetTy> {};
-
-/// \brief A simple visitor class that helps create declaration visitors.
-///
-/// This class preserves constness of Decl pointers (see also DeclVisitor).
-template<typename ImplClass, typename RetTy=void>
-class ConstDeclVisitor
- : public declvisitor::Base<declvisitor::make_const_ptr, ImplClass, RetTy> {};
-
-} // end namespace clang
-
-#endif // LLVM_CLANG_AST_DECLVISITOR_H
OpenPOWER on IntegriCloud