1212795Sdim//===--- ParseAST.h - Define the ParseAST method ----------------*- C++ -*-===//
2212795Sdim//
3212795Sdim//                     The LLVM Compiler Infrastructure
4212795Sdim//
5212795Sdim// This file is distributed under the University of Illinois Open Source
6212795Sdim// License. See LICENSE.TXT for details.
7212795Sdim//
8212795Sdim//===----------------------------------------------------------------------===//
9212795Sdim//
10212795Sdim//  This file defines the clang::ParseAST method.
11212795Sdim//
12212795Sdim//===----------------------------------------------------------------------===//
13212795Sdim
14212795Sdim#ifndef LLVM_CLANG_PARSE_PARSEAST_H
15212795Sdim#define LLVM_CLANG_PARSE_PARSEAST_H
16212795Sdim
17226633Sdim#include "clang/Basic/LangOptions.h"
18226633Sdim
19212795Sdimnamespace clang {
20212795Sdim  class Preprocessor;
21212795Sdim  class ASTConsumer;
22212795Sdim  class ASTContext;
23212795Sdim  class CodeCompleteConsumer;
24212795Sdim  class Sema;
25212795Sdim
26212795Sdim  /// \brief Parse the entire file specified, notifying the ASTConsumer as
27212795Sdim  /// the file is parsed.
28212795Sdim  ///
29212795Sdim  /// This operation inserts the parsed decls into the translation
30212795Sdim  /// unit held by Ctx.
31212795Sdim  ///
32226633Sdim  /// \param TUKind The kind of translation unit being parsed.
33212795Sdim  ///
34212795Sdim  /// \param CompletionConsumer If given, an object to consume code completion
35212795Sdim  /// results.
36212795Sdim  void ParseAST(Preprocessor &pp, ASTConsumer *C,
37212795Sdim                ASTContext &Ctx, bool PrintStats = false,
38226633Sdim                TranslationUnitKind TUKind = TU_Complete,
39234353Sdim                CodeCompleteConsumer *CompletionConsumer = 0,
40234353Sdim                bool SkipFunctionBodies = false);
41212795Sdim
42212795Sdim  /// \brief Parse the main file known to the preprocessor, producing an
43212795Sdim  /// abstract syntax tree.
44234353Sdim  void ParseAST(Sema &S, bool PrintStats = false,
45234353Sdim                bool SkipFunctionBodies = false);
46212795Sdim
47212795Sdim}  // end namespace clang
48212795Sdim
49212795Sdim#endif
50