1292932Sdim//===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===// 2292932Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6292932Sdim// 7292932Sdim//===----------------------------------------------------------------------===// 8292932Sdim 9292932Sdim#ifndef liblldb_ObjCPlusPlusLanguage_h_ 10292932Sdim#define liblldb_ObjCPlusPlusLanguage_h_ 11292932Sdim 12344779Sdim#include "Plugins/Language/ClangCommon/ClangHighlighter.h" 13314564Sdim#include "lldb/Target/Language.h" 14292932Sdim#include "lldb/lldb-private.h" 15292932Sdim 16292932Sdimnamespace lldb_private { 17314564Sdim 18314564Sdimclass ObjCPlusPlusLanguage : public Language { 19344779Sdim ClangHighlighter m_highlighter; 20344779Sdim 21292932Sdimpublic: 22314564Sdim ObjCPlusPlusLanguage() = default; 23292932Sdim 24314564Sdim ~ObjCPlusPlusLanguage() override = default; 25292932Sdim 26314564Sdim lldb::LanguageType GetLanguageType() const override { 27314564Sdim return lldb::eLanguageTypeObjC_plus_plus; 28314564Sdim } 29314564Sdim 30344779Sdim bool IsSourceFile(llvm::StringRef file_path) const override; 31344779Sdim 32344779Sdim const Highlighter *GetHighlighter() const override { return &m_highlighter; } 33344779Sdim 34314564Sdim // Static Functions 35314564Sdim static void Initialize(); 36314564Sdim 37314564Sdim static void Terminate(); 38314564Sdim 39314564Sdim static lldb_private::Language *CreateInstance(lldb::LanguageType language); 40314564Sdim 41314564Sdim static lldb_private::ConstString GetPluginNameStatic(); 42314564Sdim 43314564Sdim // PluginInterface protocol 44314564Sdim ConstString GetPluginName() override; 45314564Sdim 46314564Sdim uint32_t GetPluginVersion() override; 47292932Sdim}; 48314564Sdim 49292932Sdim} // namespace lldb_private 50292932Sdim 51292932Sdim#endif // liblldb_CPlusPlusLanguage_h_ 52