| //===-- ExpressionTypeSystemHelper.h ---------------------------------*- C++ |
| //-*-===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLDB_EXPRESSION_EXPRESSIONTYPESYSTEMHELPER_H |
| #define LLDB_EXPRESSION_EXPRESSIONTYPESYSTEMHELPER_H |
| |
| #include "llvm/Support/Casting.h" |
| |
| namespace lldb_private { |
| |
| /// \class ExpressionTypeSystemHelper ExpressionTypeSystemHelper.h |
| /// "lldb/Expression/ExpressionTypeSystemHelper.h" |
| /// A helper object that the Expression can pass to its ExpressionParser |
| /// to provide generic information that |
| /// any type of expression will need to supply. It's only job is to support |
| /// dyn_cast so that the expression parser can cast it back to the requisite |
| /// specific type. |
| /// |
| |
| class ExpressionTypeSystemHelper { |
| public: |
| enum LLVMCastKind { |
| eKindClangHelper, |
| eKindSwiftHelper, |
| eKindGoHelper, |
| kNumKinds |
| }; |
| |
| LLVMCastKind getKind() const { return m_kind; } |
| |
| ExpressionTypeSystemHelper(LLVMCastKind kind) : m_kind(kind) {} |
| |
| ~ExpressionTypeSystemHelper() = default; |
| |
| protected: |
| LLVMCastKind m_kind; |
| }; |
| |
| } // namespace lldb_private |
| |
| #endif // LLDB_EXPRESSION_EXPRESSIONTYPESYSTEMHELPER_H |