]> CyberLeo.Net >> Repos - FreeBSD/releng/9.0.git/blob - contrib/llvm/tools/clang/include/clang/Index/Program.h
Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
[FreeBSD/releng/9.0.git] / contrib / llvm / tools / clang / include / clang / Index / Program.h
1 //===--- Program.h - Cross-translation unit information ---------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file declares the idx::Program interface.
11 //
12 //===----------------------------------------------------------------------===//
13
14 #ifndef LLVM_CLANG_INDEX_PROGRAM_H
15 #define LLVM_CLANG_INDEX_PROGRAM_H
16
17 namespace clang {
18   class ASTContext;
19
20 namespace idx {
21   class EntityHandler;
22
23 /// \brief Top level object that owns and maintains information
24 /// that is common across translation units.
25 class Program {
26   void *Impl;
27
28   Program(const Program&); // do not implement
29   Program &operator=(const Program &); // do not implement
30   friend class Entity;
31   friend class GlobalSelector;
32
33 public:
34   Program();
35   ~Program();
36
37   /// \brief Traverses the AST and passes all the entities to the Handler.
38   void FindEntities(ASTContext &Ctx, EntityHandler &Handler);
39 };
40
41 } // namespace idx
42
43 } // namespace clang
44
45 #endif