1 //===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_ObjCPlusPlusLanguage_h_ 11 #define liblldb_ObjCPlusPlusLanguage_h_ 12 13 // C Includes 14 // C++ Includes 15 // Other libraries and framework includes 16 // Project includes 17 #include "Plugins/Language/ClangCommon/ClangHighlighter.h" 18 #include "lldb/Target/Language.h" 19 #include "lldb/lldb-private.h" 20 21 namespace lldb_private { 22 23 class ObjCPlusPlusLanguage : public Language { 24 ClangHighlighter m_highlighter; 25 26 public: 27 ObjCPlusPlusLanguage() = default; 28 29 ~ObjCPlusPlusLanguage() override = default; 30 31 lldb::LanguageType GetLanguageType() const override { 32 return lldb::eLanguageTypeObjC_plus_plus; 33 } 34 35 bool IsSourceFile(llvm::StringRef file_path) const override; 36 37 const Highlighter *GetHighlighter() const override { return &m_highlighter; } 38 39 //------------------------------------------------------------------ 40 // Static Functions 41 //------------------------------------------------------------------ 42 static void Initialize(); 43 44 static void Terminate(); 45 46 static lldb_private::Language *CreateInstance(lldb::LanguageType language); 47 48 static lldb_private::ConstString GetPluginNameStatic(); 49 50 //------------------------------------------------------------------ 51 // PluginInterface protocol 52 //------------------------------------------------------------------ 53 ConstString GetPluginName() override; 54 55 uint32_t GetPluginVersion() override; 56 }; 57 58 } // namespace lldb_private 59 60 #endif // liblldb_CPlusPlusLanguage_h_ 61