summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Language
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/Language')
-rw-r--r--lldb/source/Plugins/Language/CMakeLists.txt2
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt5
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp71
-rw-r--r--lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h63
-rw-r--r--lldb/source/Plugins/Language/ObjC/CMakeLists.txt5
-rw-r--r--lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp68
-rw-r--r--lldb/source/Plugins/Language/ObjC/ObjCLanguage.h63
-rw-r--r--lldb/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt5
-rw-r--r--lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp68
-rw-r--r--lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h63
10 files changed, 413 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Language/CMakeLists.txt b/lldb/source/Plugins/Language/CMakeLists.txt
new file mode 100644
index 00000000000..034ae1545ae
--- /dev/null
+++ b/lldb/source/Plugins/Language/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_subdirectory(CPlusPlus)
+add_subdirectory(ObjC)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt b/lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt
new file mode 100644
index 00000000000..ae6b1c8c280
--- /dev/null
+++ b/lldb/source/Plugins/Language/CPlusPlus/CMakeLists.txt
@@ -0,0 +1,5 @@
+set(LLVM_NO_RTTI 1)
+
+add_lldb_library(lldbPluginCPlusPlusLanguage
+ CPlusPlusLanguage.cpp
+)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
new file mode 100644
index 00000000000..a0291462a6e
--- /dev/null
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -0,0 +1,71 @@
+//===-- CPlusPlusLanguage.cpp --------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "CPlusPlusLanguage.h"
+
+#include "lldb/Core/ConstString.h"
+#include "lldb/Core/PluginManager.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+void
+CPlusPlusLanguage::Initialize()
+{
+ PluginManager::RegisterPlugin (GetPluginNameStatic(),
+ "C++ Language",
+ CreateInstance);
+}
+
+void
+CPlusPlusLanguage::Terminate()
+{
+ PluginManager::UnregisterPlugin (CreateInstance);
+}
+
+lldb_private::ConstString
+CPlusPlusLanguage::GetPluginNameStatic()
+{
+ static ConstString g_name("cplusplus");
+ return g_name;
+}
+
+
+//------------------------------------------------------------------
+// PluginInterface protocol
+//------------------------------------------------------------------
+lldb_private::ConstString
+CPlusPlusLanguage::GetPluginName()
+{
+ return GetPluginNameStatic();
+}
+
+uint32_t
+CPlusPlusLanguage::GetPluginVersion()
+{
+ return 1;
+}
+
+//------------------------------------------------------------------
+// Static Functions
+//------------------------------------------------------------------
+Language *
+CPlusPlusLanguage::CreateInstance (lldb::LanguageType language)
+{
+ switch (language)
+ {
+ case lldb::eLanguageTypeC_plus_plus:
+ case lldb::eLanguageTypeC_plus_plus_03:
+ case lldb::eLanguageTypeC_plus_plus_11:
+ case lldb::eLanguageTypeC_plus_plus_14:
+ return new CPlusPlusLanguage();
+ default:
+ return nullptr;
+ }
+}
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
new file mode 100644
index 00000000000..62a92a62c07
--- /dev/null
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h
@@ -0,0 +1,63 @@
+//===-- CPlusPlusLanguage.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_CPlusPlusLanguage_h_
+#define liblldb_CPlusPlusLanguage_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 CPlusPlusLanguage :
+ public Language
+{
+public:
+ virtual ~CPlusPlusLanguage() = default;
+
+ CPlusPlusLanguage () = default;
+
+ lldb::LanguageType
+ GetLanguageType () const
+ {
+ return lldb::eLanguageTypeC_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
+ //------------------------------------------------------------------
+ virtual ConstString
+ GetPluginName();
+
+ virtual uint32_t
+ GetPluginVersion();
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_CPlusPlusLanguage_h_
diff --git a/lldb/source/Plugins/Language/ObjC/CMakeLists.txt b/lldb/source/Plugins/Language/ObjC/CMakeLists.txt
new file mode 100644
index 00000000000..af4cc0692d4
--- /dev/null
+++ b/lldb/source/Plugins/Language/ObjC/CMakeLists.txt
@@ -0,0 +1,5 @@
+set(LLVM_NO_RTTI 1)
+
+add_lldb_library(lldbPluginAppleObjCLanguage
+ AppleObjCLanguage.cpp
+)
diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
new file mode 100644
index 00000000000..8f21c46bfe3
--- /dev/null
+++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.cpp
@@ -0,0 +1,68 @@
+//===-- ObjCLanguage.cpp --------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "ObjCLanguage.h"
+
+#include "lldb/Core/ConstString.h"
+#include "lldb/Core/PluginManager.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+void
+ObjCLanguage::Initialize()
+{
+ PluginManager::RegisterPlugin (GetPluginNameStatic(),
+ "Objective-C Language",
+ CreateInstance);
+}
+
+void
+ObjCLanguage::Terminate()
+{
+ PluginManager::UnregisterPlugin (CreateInstance);
+}
+
+lldb_private::ConstString
+ObjCLanguage::GetPluginNameStatic()
+{
+ static ConstString g_name("objc");
+ return g_name;
+}
+
+
+//------------------------------------------------------------------
+// PluginInterface protocol
+//------------------------------------------------------------------
+lldb_private::ConstString
+ObjCLanguage::GetPluginName()
+{
+ return GetPluginNameStatic();
+}
+
+uint32_t
+ObjCLanguage::GetPluginVersion()
+{
+ return 1;
+}
+
+//------------------------------------------------------------------
+// Static Functions
+//------------------------------------------------------------------
+Language *
+ObjCLanguage::CreateInstance (lldb::LanguageType language)
+{
+ switch (language)
+ {
+ case lldb::eLanguageTypeObjC:
+ return new ObjCLanguage();
+ default:
+ return nullptr;
+ }
+}
diff --git a/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h
new file mode 100644
index 00000000000..3a43972f3f0
--- /dev/null
+++ b/lldb/source/Plugins/Language/ObjC/ObjCLanguage.h
@@ -0,0 +1,63 @@
+//===-- ObjCLanguage.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_ObjCLanguage_h_
+#define liblldb_ObjCLanguage_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 ObjCLanguage :
+ public Language
+{
+public:
+ virtual ~ObjCLanguage() = default;
+
+ ObjCLanguage () = default;
+
+ lldb::LanguageType
+ GetLanguageType () const
+ {
+ return lldb::eLanguageTypeObjC;
+ }
+
+ //------------------------------------------------------------------
+ // Static Functions
+ //------------------------------------------------------------------
+ static void
+ Initialize();
+
+ static void
+ Terminate();
+
+ static lldb_private::Language *
+ CreateInstance (lldb::LanguageType language);
+
+ static lldb_private::ConstString
+ GetPluginNameStatic();
+
+ //------------------------------------------------------------------
+ // PluginInterface protocol
+ //------------------------------------------------------------------
+ virtual ConstString
+ GetPluginName();
+
+ virtual uint32_t
+ GetPluginVersion();
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_ObjCLanguage_h_
diff --git a/lldb/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt b/lldb/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt
new file mode 100644
index 00000000000..fb599faeffc
--- /dev/null
+++ b/lldb/source/Plugins/Language/ObjCPlusPlus/CMakeLists.txt
@@ -0,0 +1,5 @@
+set(LLVM_NO_RTTI 1)
+
+add_lldb_library(lldbPluginObjCPlusPlusLanguage
+ ObjCPlusPlusLanguage.cpp
+)
diff --git a/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.cpp
new file mode 100644
index 00000000000..62ddafefad9
--- /dev/null
+++ b/lldb/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/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h b/lldb/source/Plugins/Language/ObjCPlusPlus/ObjCPlusPlusLanguage.h
new file mode 100644
index 00000000000..67be5109b27
--- /dev/null
+++ b/lldb/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:
+ virtual ~ObjCPlusPlusLanguage() = default;
+
+ ObjCPlusPlusLanguage () = default;
+
+ lldb::LanguageType
+ GetLanguageType () const
+ {
+ 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
+ //------------------------------------------------------------------
+ virtual ConstString
+ GetPluginName();
+
+ virtual uint32_t
+ GetPluginVersion();
+};
+
+} // namespace lldb_private
+
+#endif // liblldb_CPlusPlusLanguage_h_
OpenPOWER on IntegriCloud