text: //===-- PDBASTParser.h ------------------------------------------*- C++ -*-===//
  //
  //                     The LLVM Compiler Infrastructure
  //
  // This file is distributed under the University of Illinois Open Source
  // License. See LICENSE.TXT for details.
  //
  //===----------------------------------------------------------------------===//
  
  #ifndef LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
  #define LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
  
  #include "lldb/lldb-forward.h"
  
  #include "lldb/Symbol/ClangASTImporter.h"
  
  namespace clang {
  class CharUnits;
  class CXXRecordDecl;
  class FieldDecl;
  class RecordDecl;
  } // namespace clang
  
  namespace lldb_private {
  class ClangASTContext;
  class CompilerType;
  } // namespace lldb_private
  
  namespace llvm {
  namespace pdb {
  class PDBSymbol;
  class PDBSymbolData;
  class PDBSymbolTypeBuiltin;
  } // namespace pdb
  } // namespace llvm
  
  class PDBASTParser {
  public:
    PDBASTParser(lldb_private::ClangASTContext &ast);
    ~PDBASTParser();
  
    lldb::TypeSP CreateLLDBTypeFromPDBType(const llvm::pdb::PDBSymbol &type);
  
  private:
    bool AddEnumValue(lldb_private::CompilerType enum_type,
                      const llvm::pdb::PDBSymbolData &data) const;
  
    lldb_private::ClangASTContext &m_ast;
    lldb_private::ClangASTImporter m_ast_importer;
  };
  
  #endif // LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
  