//===-- ExpressionTypeSystemHelper.h ---------------------------------*- C++ //-*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #ifndef ExpressionTypeSystemHelper_h #define ExpressionTypeSystemHelper_h #include "llvm/Support/Casting.h" namespace lldb_private { //---------------------------------------------------------------------- /// @class ExpressionTypeSystemHelper ExpressionTypeSystemHelper.h /// "lldb/Expression/ExpressionTypeSystemHelper.h" /// @brief 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() {} protected: LLVMCastKind m_kind; }; } // namespace lldb_private #endif /* ExpressionTypeSystemHelper_h */