diff options
author | Enrico Granata <egranata@apple.com> | 2015-08-27 21:33:50 +0000 |
---|---|---|
committer | Enrico Granata <egranata@apple.com> | 2015-08-27 21:33:50 +0000 |
commit | 5f9d310640209347c6e534a4ed97074d205e1766 (patch) | |
tree | 2e4d195d3acb02842ab819772de93e1a7df3c721 /lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h | |
parent | 7033a9ce3321c87207b795153b43edfbb5426e3c (diff) | |
download | bcm5719-llvm-5f9d310640209347c6e534a4ed97074d205e1766.tar.gz bcm5719-llvm-5f9d310640209347c6e534a4ed97074d205e1766.zip |
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
Diffstat (limited to 'lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h')
-rw-r--r-- | lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.h | 63 |
1 files changed, 63 insertions, 0 deletions
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_ |