1 //===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJCPLUSPLUS_OBJCPLUSPLUSLANGUAGE_H
10 #define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJCPLUSPLUS_OBJCPLUSPLUSLANGUAGE_H
12 #include "Plugins/Language/ClangCommon/ClangHighlighter.h"
13 #include "lldb/Target/Language.h"
14 #include "lldb/lldb-private.h"
16 namespace lldb_private
{
18 class ObjCPlusPlusLanguage
: public Language
{
19 ClangHighlighter m_highlighter
;
22 ObjCPlusPlusLanguage() = default;
24 ~ObjCPlusPlusLanguage() override
= default;
26 lldb::LanguageType
GetLanguageType() const override
{
27 return lldb::eLanguageTypeObjC_plus_plus
;
30 llvm::StringRef
GetUserEntryPointName() const override
{ return "main"; }
32 llvm::StringRef
GetNilReferenceSummaryString() override
{ return "nil"; }
34 bool IsSourceFile(llvm::StringRef file_path
) const override
;
36 const Highlighter
*GetHighlighter() const override
{ return &m_highlighter
; }
39 static void Initialize();
41 static void Terminate();
43 static lldb_private::Language
*CreateInstance(lldb::LanguageType language
);
45 llvm::StringRef
GetInstanceVariableName() override
{ return "self"; }
47 virtual std::optional
<bool>
48 GetBooleanFromString(llvm::StringRef str
) const override
;
50 static llvm::StringRef
GetPluginNameStatic() { return "objcplusplus"; }
52 // PluginInterface protocol
53 llvm::StringRef
GetPluginName() override
{ return GetPluginNameStatic(); }
56 } // namespace lldb_private
58 #endif // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJCPLUSPLUS_OBJCPLUSPLUSLANGUAGE_H