зеркало из https://github.com/microsoft/clang-1.git
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
This commit is contained in:
Родитель
8a850baa41
Коммит
16c440a377
|
@ -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();
|
||||
|
|
|
@ -24,6 +24,7 @@ add_clang_library(CIndex
|
|||
CIndexCodeCompletion.cpp
|
||||
CIndexUSRs.cpp
|
||||
CIndexer.cpp
|
||||
CXCursor.cpp
|
||||
)
|
||||
|
||||
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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
|
Загрузка…
Ссылка в новой задаче