PDBASTParser.h revision 309124
1//===-- PDBASTParser.h ------------------------------------------*- 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#ifndef LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
11#define LLDB_PLUGINS_SYMBOLFILE_PDB_PDBASTPARSER_H
12
13#include "lldb/lldb-forward.h"
14
15#include "lldb/Symbol/ClangASTImporter.h"
16
17namespace clang
18{
19class CharUnits;
20class CXXRecordDecl;
21class FieldDecl;
22class RecordDecl;
23}
24
25namespace lldb_private
26{
27class ClangASTContext;
28class CompilerType;
29}
30
31namespace llvm
32{
33namespace pdb
34{
35class PDBSymbol;
36class PDBSymbolData;
37class PDBSymbolTypeBuiltin;
38}
39}
40
41class PDBASTParser
42{
43public:
44    PDBASTParser(lldb_private::ClangASTContext &ast);
45    ~PDBASTParser();
46
47    lldb::TypeSP
48    CreateLLDBTypeFromPDBType(const llvm::pdb::PDBSymbol &type);
49
50private:
51    bool
52    AddEnumValue(lldb_private::CompilerType enum_type, const llvm::pdb::PDBSymbolData &data) const;
53
54    lldb_private::ClangASTContext &m_ast;
55    lldb_private::ClangASTImporter m_ast_importer;
56};
57
58#endif // SymbolFileDWARF_DWARFASTParserClang_h_
59