From 5f9d310640209347c6e534a4ed97074d205e1766 Mon Sep 17 00:00:00 2001 From: Enrico Granata Date: Thu, 27 Aug 2015 21:33:50 +0000 Subject: Add a new type of plugin: Language plugin The Language plugin is menat to answer language-specific questions that are not bound to the existence of a process. Those are still the domain of the LanguageRuntime plugin The Language plugin will, instead, answer questions such as providing language-specific data formatters or expression evaluation At the moment, the interface is hollowed out, and empty do-nothing plugins have been setup for ObjC, C++ and ObjC++ llvm-svn: 246212 --- .../Plugins/Language/CPlusPlus/CPlusPlusLanguage.h | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h (limited to 'lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h') 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_ -- cgit v1.2.3