blob: b64f0f81e00111633a8743fb45a9fd063029d8cd [file] [log] [blame]
Eugene Zelenko8d15f332015-10-20 01:10:59 +00001//===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===//
Enrico Granata5f9d3102015-08-27 21:33:50 +00002//
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
Raphael Isemann566afa02018-08-02 00:30:15 +000013#include "Plugins/Language/ClangCommon/ClangHighlighter.h"
Enrico Granata5f9d3102015-08-27 21:33:50 +000014#include "lldb/Target/Language.h"
Kate Stoneb9c1b512016-09-06 20:57:50 +000015#include "lldb/lldb-private.h"
Enrico Granata5f9d3102015-08-27 21:33:50 +000016
17namespace lldb_private {
Kate Stoneb9c1b512016-09-06 20:57:50 +000018
19class ObjCPlusPlusLanguage : public Language {
Raphael Isemann566afa02018-08-02 00:30:15 +000020 ClangHighlighter m_highlighter;
21
Enrico Granata5f9d3102015-08-27 21:33:50 +000022public:
Kate Stoneb9c1b512016-09-06 20:57:50 +000023 ObjCPlusPlusLanguage() = default;
Eugene Zelenko8d15f332015-10-20 01:10:59 +000024
Kate Stoneb9c1b512016-09-06 20:57:50 +000025 ~ObjCPlusPlusLanguage() override = default;
Eugene Zelenko8d15f332015-10-20 01:10:59 +000026
Kate Stoneb9c1b512016-09-06 20:57:50 +000027 lldb::LanguageType GetLanguageType() const override {
28 return lldb::eLanguageTypeObjC_plus_plus;
29 }
30
Raphael Isemann566afa02018-08-02 00:30:15 +000031 bool IsSourceFile(llvm::StringRef file_path) const override;
32
33 const Highlighter *GetHighlighter() const override { return &m_highlighter; }
34
Kate Stoneb9c1b512016-09-06 20:57:50 +000035 //------------------------------------------------------------------
36 // Static Functions
37 //------------------------------------------------------------------
38 static void Initialize();
39
40 static void Terminate();
41
42 static lldb_private::Language *CreateInstance(lldb::LanguageType language);
43
44 static lldb_private::ConstString GetPluginNameStatic();
45
46 //------------------------------------------------------------------
47 // PluginInterface protocol
48 //------------------------------------------------------------------
49 ConstString GetPluginName() override;
50
51 uint32_t GetPluginVersion() override;
Enrico Granata5f9d3102015-08-27 21:33:50 +000052};
Kate Stoneb9c1b512016-09-06 20:57:50 +000053
Enrico Granata5f9d3102015-08-27 21:33:50 +000054} // namespace lldb_private
55
Eugene Zelenko8d15f332015-10-20 01:10:59 +000056#endif // liblldb_CPlusPlusLanguage_h_