diff options
Diffstat (limited to 'source/Plugins/Language/ObjCPlusPlus')
-rw-r--r-- | source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp | 68 | ||||
-rw-r--r-- | source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h | 63 |
2 files changed, 131 insertions, 0 deletions
diff --git a/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp b/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp new file mode 100644 index 0000000..62ddafe --- /dev/null +++ b/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp @@ -0,0 +1,68 @@ +//===-- ObjCPlusPlusLanguage.cpp --------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "ObjCPlusPlusLanguage.h" + +#include "lldb/Core/ConstString.h" +#include "lldb/Core/PluginManager.h" + +using namespace lldb; +using namespace lldb_private; + +void +ObjCPlusPlusLanguage::Initialize() +{ + PluginManager::RegisterPlugin (GetPluginNameStatic(), + "Objective-C++ Language", + CreateInstance); +} + +void +ObjCPlusPlusLanguage::Terminate() +{ + PluginManager::UnregisterPlugin (CreateInstance); +} + +lldb_private::ConstString +ObjCPlusPlusLanguage::GetPluginNameStatic() +{ + static ConstString g_name("objcplusplus"); + return g_name; +} + + +//------------------------------------------------------------------ +// PluginInterface protocol +//------------------------------------------------------------------ +lldb_private::ConstString +ObjCPlusPlusLanguage::GetPluginName() +{ + return GetPluginNameStatic(); +} + +uint32_t +ObjCPlusPlusLanguage::GetPluginVersion() +{ + return 1; +} + +//------------------------------------------------------------------ +// Static Functions +//------------------------------------------------------------------ +Language * +ObjCPlusPlusLanguage::CreateInstance (lldb::LanguageType language) +{ + switch (language) + { + case lldb::eLanguageTypeObjC_plus_plus: + return new ObjCPlusPlusLanguage(); + default: + return nullptr; + } +} diff --git a/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h b/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h new file mode 100644 index 0000000..0e1db66 --- /dev/null +++ b/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h @@ -0,0 +1,63 @@ +//===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef liblldb_ObjCPlusPlusLanguage_h_ +#define liblldb_ObjCPlusPlusLanguage_h_ + +// C Includes +// C++ Includes +// Other libraries and framework includes +// Project includes +#include "lldb/lldb-private.h" +#include "lldb/Target/Language.h" + +namespace lldb_private { + +class ObjCPlusPlusLanguage : + public Language +{ +public: + ObjCPlusPlusLanguage() = default; + + ~ObjCPlusPlusLanguage() override = default; + + lldb::LanguageType + GetLanguageType() const override + { + return lldb::eLanguageTypeObjC_plus_plus; + } + + //------------------------------------------------------------------ + // Static Functions + //------------------------------------------------------------------ + static void + Initialize(); + + static void + Terminate(); + + static lldb_private::Language * + CreateInstance (lldb::LanguageType language); + + static lldb_private::ConstString + GetPluginNameStatic(); + + //------------------------------------------------------------------ + // PluginInterface protocol + //------------------------------------------------------------------ + ConstString + GetPluginName() override; + + uint32_t + GetPluginVersion() override; +}; + +} // namespace lldb_private + +#endif // liblldb_CPlusPlusLanguage_h_ |