]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - include/lldb/Expression/ExpressionTypeSystemHelper.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / include / lldb / Expression / ExpressionTypeSystemHelper.h
1 //===-- ExpressionTypeSystemHelper.h ---------------------------------*- C++
2 //-*-===//
3 //
4 //                     The LLVM Compiler Infrastructure
5 //
6 // This file is distributed under the University of Illinois Open Source
7 // License. See LICENSE.TXT for details.
8 //
9 //===----------------------------------------------------------------------===//
10
11 #ifndef ExpressionTypeSystemHelper_h
12 #define ExpressionTypeSystemHelper_h
13
14 #include "llvm/Support/Casting.h"
15
16 namespace lldb_private {
17
18 //----------------------------------------------------------------------
19 /// @class ExpressionTypeSystemHelper ExpressionTypeSystemHelper.h
20 /// "lldb/Expression/ExpressionTypeSystemHelper.h"
21 /// @brief A helper object that the Expression can pass to its ExpressionParser
22 /// to provide generic information that
23 /// any type of expression will need to supply.  It's only job is to support
24 /// dyn_cast so that the expression parser
25 /// can cast it back to the requisite specific type.
26 ///
27 //----------------------------------------------------------------------
28
29 class ExpressionTypeSystemHelper {
30 public:
31   enum LLVMCastKind {
32     eKindClangHelper,
33     eKindSwiftHelper,
34     eKindGoHelper,
35     kNumKinds
36   };
37
38   LLVMCastKind getKind() const { return m_kind; }
39
40   ExpressionTypeSystemHelper(LLVMCastKind kind) : m_kind(kind) {}
41
42   ~ExpressionTypeSystemHelper() {}
43
44 protected:
45   LLVMCastKind m_kind;
46 };
47
48 } // namespace lldb_private
49
50 #endif /* ExpressionTypeSystemHelper_h */