]> granicus.if.org Git - clang/commitdiff
Move the 'ResolveLocationInAST' function from the Frontend library to the Index library.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 6 Jul 2009 21:35:02 +0000 (21:35 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Mon, 6 Jul 2009 21:35:02 +0000 (21:35 +0000)
Also, cut down its comments; more comments will be added to ASTLocation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74860 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Frontend/Utils.h
include/clang/Index/Utils.h [new file with mode: 0644]
lib/Index/ResolveLocation.cpp [moved from lib/Frontend/ResolveLocation.cpp with 98% similarity]
tools/index-test/index-test.cpp

index 7845e8f7cf58956903711d8280595ec35a19589f..2ad44da999c1c43d9166bd45d869b4a80332b240 100644 (file)
@@ -34,12 +34,6 @@ class PreprocessorFactory;
 class LangOptions;
 class Decl;
 class Stmt;
-class ASTContext;
-class SourceLocation;
-
-namespace idx {
-class ASTLocation;
-}
 
 /// ProcessWarningOptions - Initialize the diagnostic client and process the
 /// warning options specified on the command line.
@@ -82,32 +76,6 @@ void AttachDependencyFileGen(Preprocessor *PP, llvm::raw_ostream *OS,
 /// a seekable stream.
 void CacheTokens(Preprocessor& PP, llvm::raw_fd_ostream* OS);
 
-/// \brief Returns the AST node that a source location points to.
-///
-/// Returns a pair of Decl* and Stmt*. If no AST node is found for the source
-/// location, the pair will contain null pointers.
-///
-/// If the source location points to just a declaration, the statement part of
-/// the pair will be null, e.g.,
-/// @code
-///   int foo;
-/// @endcode
-/// If the source location points at 'foo', the pair will contain the VarDecl
-/// of foo and a null Stmt.
-///
-/// If the source location points to a statement node, the returned declaration
-/// will be the immediate 'parent' declaration of the statement node, e.g.,
-/// @code
-///   void f() {
-///     int foo = 100;
-///     ++foo;
-///   }
-/// @endcode
-/// Pointing at '100' will return a <VarDecl 'foo', IntegerLiteral '100'> pair.
-/// Pointing at '++foo' will return a <FunctionDecl 'f', UnaryOperator> pair.
-///
-idx::ASTLocation ResolveLocationInAST(ASTContext &Ctx, SourceLocation Loc);
-
 }  // end namespace clang
 
 #endif
diff --git a/include/clang/Index/Utils.h b/include/clang/Index/Utils.h
new file mode 100644 (file)
index 0000000..e78ef8a
--- /dev/null
@@ -0,0 +1,35 @@
+//===--- Utils.h - Misc utilities for indexing-----------------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+//
+//  This header contains miscellaneous utilities for indexing related
+//  functionality.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef LLVM_CLANG_INDEX_UTILS_H
+#define LLVM_CLANG_INDEX_UTILS_H
+
+namespace clang {
+  class ASTContext;
+  class SourceLocation;
+
+namespace idx {
+  class ASTLocation;
+
+/// \brief Returns the ASTLocation that a source location points to.
+///
+/// \returns the resolved ASTLocation or an invalid ASTLocation if the source
+/// location could not be resolved.
+ASTLocation ResolveLocationInAST(ASTContext &Ctx, SourceLocation Loc);
+
+} // end namespace idx
+
+}  // end namespace clang
+
+#endif
similarity index 98%
rename from lib/Frontend/ResolveLocation.cpp
rename to lib/Index/ResolveLocation.cpp
index 9fbae30a485783f7a130685b0a096f6ed43623f6..b9df7029048e2e7bb2967cf141bcdf535bc23186 100644 (file)
@@ -8,11 +8,11 @@
 //===----------------------------------------------------------------------===//
 //
 //  This defines the ResolveLocationInAST function, which resolves a
-//  source location into a <Decl *, Stmt *> pair.
+//  source location into a ASTLocation.
 //
 //===----------------------------------------------------------------------===//
 
-#include "clang/Frontend/Utils.h"
+#include "clang/Index/Utils.h"
 #include "clang/Index/ASTLocation.h"
 #include "clang/AST/DeclVisitor.h"
 #include "clang/AST/StmtVisitor.h"
@@ -322,7 +322,7 @@ void LocResolverBase::print(Stmt *Node) {
 
 /// \brief Returns the AST node that a source location points to.
 ///
-ASTLocation clang::ResolveLocationInAST(ASTContext &Ctx, SourceLocation Loc) {
+ASTLocation idx::ResolveLocationInAST(ASTContext &Ctx, SourceLocation Loc) {
   if (Loc.isInvalid())
     return ASTLocation();
   
index dd1ced45cefeafcdb9914e700be4fb0599572b33..37ecbd928f32d5937460f94a4201d01eee9bfe9d 100644 (file)
@@ -38,8 +38,8 @@
 #include "clang/Index/TranslationUnit.h"
 #include "clang/Index/ASTLocation.h"
 #include "clang/Index/DeclReferenceMap.h"
+#include "clang/Index/Utils.h"
 #include "clang/Frontend/ASTUnit.h"
-#include "clang/Frontend/Utils.h"
 #include "clang/Frontend/CommandLineSourceLoc.h"
 #include "clang/AST/Decl.h"
 #include "clang/AST/Expr.h"