ParseAST.h revision 212795
1//===--- ParseAST.h - Define the ParseAST method ----------------*- 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 defines the clang::ParseAST method.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_CLANG_PARSE_PARSEAST_H
15#define LLVM_CLANG_PARSE_PARSEAST_H
16
17namespace clang {
18  class Preprocessor;
19  class ASTConsumer;
20  class ASTContext;
21  class CodeCompleteConsumer;
22  class Sema;
23
24  /// \brief Parse the entire file specified, notifying the ASTConsumer as
25  /// the file is parsed.
26  ///
27  /// This operation inserts the parsed decls into the translation
28  /// unit held by Ctx.
29  ///
30  /// \param CompleteTranslationUnit When true, the parsed file is
31  /// considered to be a complete translation unit, and any
32  /// end-of-translation-unit wrapup will be performed.
33  ///
34  /// \param CompletionConsumer If given, an object to consume code completion
35  /// results.
36  void ParseAST(Preprocessor &pp, ASTConsumer *C,
37                ASTContext &Ctx, bool PrintStats = false,
38                bool CompleteTranslationUnit = true,
39                CodeCompleteConsumer *CompletionConsumer = 0);
40
41  /// \brief Parse the main file known to the preprocessor, producing an
42  /// abstract syntax tree.
43  void ParseAST(Sema &S, bool PrintStats = false);
44
45}  // end namespace clang
46
47#endif
48