aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2010-01-15 20:35:54 +0000
committerTed Kremenek <kremenek@apple.com>2010-01-15 20:35:54 +0000
commit16c440a377b7ec8b722a2e2c7c864f75c95bd305 (patch)
tree3cb6cea5ac7a8f604ca1e72f9c8534aef24f76fd
parent8a850baa41ea9015b949183667ad96a981f10b09 (diff)
Add CXCursor.[h,cpp]. These files will centralize the logic for creating/probing CXCursors.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93547 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/CIndex/CIndex.cpp14
-rw-r--r--tools/CIndex/CMakeLists.txt1
-rw-r--r--tools/CIndex/CXCursor.cpp29
-rw-r--r--tools/CIndex/CXCursor.h31
4 files changed, 63 insertions, 12 deletions
diff --git a/tools/CIndex/CIndex.cpp b/tools/CIndex/CIndex.cpp
index f24a742593..c1f05a8bc0 100644
--- a/tools/CIndex/CIndex.cpp
+++ b/tools/CIndex/CIndex.cpp
@@ -13,6 +13,7 @@
//===----------------------------------------------------------------------===//
#include "CIndexer.h"
+#include "CXCursor.h"
#include "clang/AST/DeclVisitor.h"
#include "clang/AST/StmtVisitor.h"
@@ -24,6 +25,7 @@
#include <cstdio>
using namespace clang;
+using namespace clang::cxcursor;
using namespace idx;
//===----------------------------------------------------------------------===//
@@ -846,18 +848,6 @@ static enum CXCursorKind TranslateKind(Decl *D) {
return CXCursor_NotImplemented;
}
-
-static CXCursor MakeCXCursor(CXCursorKind K, Decl *D) {
- CXCursor C = { K, D, 0, 0 };
- return C;
-}
-
-static CXCursor MakeCXCursor(CXCursorKind K, Decl *D, Stmt *S) {
- assert(clang_isReference(K));
- CXCursor C = { K, D, S, 0 };
- return C;
-}
-
static Decl *getDeclFromExpr(Stmt *E) {
if (DeclRefExpr *RefExpr = dyn_cast<DeclRefExpr>(E))
return RefExpr->getDecl();
diff --git a/tools/CIndex/CMakeLists.txt b/tools/CIndex/CMakeLists.txt
index 52f847ef17..c667df622f 100644
--- a/tools/CIndex/CMakeLists.txt
+++ b/tools/CIndex/CMakeLists.txt
@@ -24,6 +24,7 @@ add_clang_library(CIndex
CIndexCodeCompletion.cpp
CIndexUSRs.cpp
CIndexer.cpp
+ CXCursor.cpp
)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
diff --git a/tools/CIndex/CXCursor.cpp b/tools/CIndex/CXCursor.cpp
new file mode 100644
index 0000000000..a7a7dfca65
--- /dev/null
+++ b/tools/CIndex/CXCursor.cpp
@@ -0,0 +1,29 @@
+//===- CXCursor.cpp - Routines for manipulating CXCursors -----------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines routines for manipulating CXCursors.
+//
+//===----------------------------------------------------------------------===//
+
+#include "CXCursor.h"
+#include "clang/AST/Decl.h"
+
+using namespace clang;
+
+CXCursor cxcursor::MakeCXCursor(CXCursorKind K, Decl *D) {
+ CXCursor C = { K, D, 0, 0 };
+ return C;
+}
+
+CXCursor cxcursor::MakeCXCursor(CXCursorKind K, Decl *D, Stmt *S) {
+ assert(clang_isReference(K));
+ CXCursor C = { K, D, S, 0 };
+ return C;
+}
+
diff --git a/tools/CIndex/CXCursor.h b/tools/CIndex/CXCursor.h
new file mode 100644
index 0000000000..f1829f45ea
--- /dev/null
+++ b/tools/CIndex/CXCursor.h
@@ -0,0 +1,31 @@
+//===- CXCursor.h - Routines for manipulating CXCursors -------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+// This file defines routines for manipulating CXCursors.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_CXCURSOR_H
+#define LLVM_CLANG_CXCursor_H
+
+#include "clang-c/Index.h"
+
+namespace clang {
+
+class Decl;
+class Stmt;
+
+namespace cxcursor {
+
+CXCursor MakeCXCursor(CXCursorKind K, clang::Decl *D);
+CXCursor MakeCXCursor(CXCursorKind K, clang::Decl *D, clang::Stmt *S);
+
+}} // end namespace: clang::cxcursor
+
+#endif