1 //===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef liblldb_ObjCPlusPlusLanguage_h_
11 #define liblldb_ObjCPlusPlusLanguage_h_
13 #include "Plugins/Language/ClangCommon/ClangHighlighter.h"
14 #include "lldb/Target/Language.h"
15 #include "lldb/lldb-private.h"
17 namespace lldb_private {
19 class ObjCPlusPlusLanguage : public Language {
20 ClangHighlighter m_highlighter;
23 ObjCPlusPlusLanguage() = default;
25 ~ObjCPlusPlusLanguage() override = default;
27 lldb::LanguageType GetLanguageType() const override {
28 return lldb::eLanguageTypeObjC_plus_plus;
31 bool IsSourceFile(llvm::StringRef file_path) const override;
33 const Highlighter *GetHighlighter() const override { return &m_highlighter; }
35 //------------------------------------------------------------------
37 //------------------------------------------------------------------
38 static void Initialize();
40 static void Terminate();
42 static lldb_private::Language *CreateInstance(lldb::LanguageType language);
44 static lldb_private::ConstString GetPluginNameStatic();
46 //------------------------------------------------------------------
47 // PluginInterface protocol
48 //------------------------------------------------------------------
49 ConstString GetPluginName() override;
51 uint32_t GetPluginVersion() override;
54 } // namespace lldb_private
56 #endif // liblldb_CPlusPlusLanguage_h_