blob: e9ff02c0a77e5b3d70dad22bef396e5a3b4b8804 [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
Kate Stoneb9c1b512016-09-06 20:57:50 +000017namespace clang {
Zachary Turner42dff792016-04-15 00:21:26 +000018class CharUnits;
19class CXXRecordDecl;
20class FieldDecl;
21class RecordDecl;
22}
23
Kate Stoneb9c1b512016-09-06 20:57:50 +000024namespace lldb_private {
Zachary Turner42dff792016-04-15 00:21:26 +000025class ClangASTContext;
26class CompilerType;
27}
28
Kate Stoneb9c1b512016-09-06 20:57:50 +000029namespace llvm {
30namespace pdb {
Zachary Turner42dff792016-04-15 00:21:26 +000031class PDBSymbol;
32class PDBSymbolData;
33class PDBSymbolTypeBuiltin;
34}
Zachary Turner54fd7ff2016-05-04 20:33:53 +000035}
Zachary Turner42dff792016-04-15 00:21:26 +000036
Kate Stoneb9c1b512016-09-06 20:57:50 +000037class PDBASTParser {
Zachary Turner42dff792016-04-15 00:21:26 +000038public:
Kate Stoneb9c1b512016-09-06 20:57:50 +000039 PDBASTParser(lldb_private::ClangASTContext &ast);
40 ~PDBASTParser();
Zachary Turner42dff792016-04-15 00:21:26 +000041
Kate Stoneb9c1b512016-09-06 20:57:50 +000042 lldb::TypeSP CreateLLDBTypeFromPDBType(const llvm::pdb::PDBSymbol &type);
Zachary Turner42dff792016-04-15 00:21:26 +000043
44private:
Kate Stoneb9c1b512016-09-06 20:57:50 +000045 bool AddEnumValue(lldb_private::CompilerType enum_type,
46 const llvm::pdb::PDBSymbolData &data) const;
Zachary Turner42dff792016-04-15 00:21:26 +000047
Kate Stoneb9c1b512016-09-06 20:57:50 +000048 lldb_private::ClangASTContext &m_ast;
49 lldb_private::ClangASTImporter m_ast_importer;
Zachary Turner42dff792016-04-15 00:21:26 +000050};
51
52#endif // SymbolFileDWARF_DWARFASTParserClang_h_