blob: b82620148ca5a4076afd928dad859e9907bb5856 [file] [log] [blame]
Zachary Turner42dff792016-04-15 00:21:26 +00001//===-- 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{
33class PDBSymbol;
34class PDBSymbolData;
35class PDBSymbolTypeBuiltin;
36}
37
38class PDBASTParser
39{
40public:
41 PDBASTParser(lldb_private::ClangASTContext &ast);
42 ~PDBASTParser();
43
44 lldb::TypeSP
45 CreateLLDBTypeFromPDBType(const llvm::PDBSymbol &type);
46
47private:
48 bool
49 AddEnumValue(lldb_private::CompilerType enum_type, const llvm::PDBSymbolData &data) const;
50
51 lldb_private::ClangASTContext &m_ast;
52 lldb_private::ClangASTImporter m_ast_importer;
53};
54
55#endif // SymbolFileDWARF_DWARFASTParserClang_h_