1f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===--- IndexingAction.h - Frontend index action -------------------------===// 2f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 3f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// The LLVM Compiler Infrastructure 4f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 5f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// This file is distributed under the University of Illinois Open Source 6f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// License. See LICENSE.TXT for details. 7f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot// 8f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot//===----------------------------------------------------------------------===// 9f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 10f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#ifndef LLVM_CLANG_INDEX_INDEXINGACTION_H 11f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#define LLVM_CLANG_INDEX_INDEXINGACTION_H 12f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 13f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "clang/Basic/LLVM.h" 14f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include "llvm/ADT/ArrayRef.h" 15f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#include <memory> 16f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 17f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace clang { 18f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class ASTContext; 19f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class ASTReader; 20f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class ASTUnit; 21f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class Decl; 22f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class FrontendAction; 23f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 24f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace serialization { 25f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class ModuleFile; 26f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} 27f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 28f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotnamespace index { 29f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot class IndexDataConsumer; 30f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 31f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotstruct IndexingOptions { 32f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot enum class SystemSymbolFilterKind { 33f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot None, 34f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot DeclarationsOnly, 35f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot All, 36f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot }; 37f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 38f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot SystemSymbolFilterKind SystemSymbolFilter 39f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot = SystemSymbolFilterKind::DeclarationsOnly; 40f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot bool IndexFunctionLocals = false; 41f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot}; 42f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 43f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot/// \param WrappedAction another frontend action to wrap over or null. 44f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotstd::unique_ptr<FrontendAction> 45f3014761c955345d6e05491608e73228d014afbandroid-build-team RobotcreateIndexingAction(std::shared_ptr<IndexDataConsumer> DataConsumer, 46f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot IndexingOptions Opts, 47f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::unique_ptr<FrontendAction> WrappedAction); 48f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 49f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid indexASTUnit(ASTUnit &Unit, 50f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::shared_ptr<IndexDataConsumer> DataConsumer, 51f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot IndexingOptions Opts); 52f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 53f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid indexTopLevelDecls(ASTContext &Ctx, ArrayRef<const Decl *> Decls, 54f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::shared_ptr<IndexDataConsumer> DataConsumer, 55f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot IndexingOptions Opts); 56f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 57f3014761c955345d6e05491608e73228d014afbandroid-build-team Robotvoid indexModuleFile(serialization::ModuleFile &Mod, ASTReader &Reader, 58f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot std::shared_ptr<IndexDataConsumer> DataConsumer, 59f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot IndexingOptions Opts); 60f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 61f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // namespace index 62f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot} // namespace clang 63f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot 64f3014761c955345d6e05491608e73228d014afbandroid-build-team Robot#endif 65