brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · 229dffe Raw
59 lines · c
1//===-- ObjCPlusPlusLanguage.h ----------------------------------*- C++ -*-===//2//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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_PLUGINS_LANGUAGE_OBJCPLUSPLUS_OBJCPLUSPLUSLANGUAGE_H10#define LLDB_SOURCE_PLUGINS_LANGUAGE_OBJCPLUSPLUS_OBJCPLUSPLUSLANGUAGE_H11 12#include "Plugins/Language/ClangCommon/ClangHighlighter.h"13#include "lldb/Target/Language.h"14#include "lldb/lldb-private.h"15 16namespace lldb_private {17 18class ObjCPlusPlusLanguage : public Language {19  ClangHighlighter m_highlighter;20 21public:22  ObjCPlusPlusLanguage() = default;23 24  ~ObjCPlusPlusLanguage() override = default;25 26  lldb::LanguageType GetLanguageType() const override {27    return lldb::eLanguageTypeObjC_plus_plus;28  }29 30  llvm::StringRef GetUserEntryPointName() const override { return "main"; }31 32  llvm::StringRef GetNilReferenceSummaryString() override { return "nil"; }33 34  bool IsSourceFile(llvm::StringRef file_path) const override;35 36  const Highlighter *GetHighlighter() const override { return &m_highlighter; }37 38  // Static Functions39  static void Initialize();40 41  static void Terminate();42 43  static lldb_private::Language *CreateInstance(lldb::LanguageType language);44 45  llvm::StringRef GetInstanceVariableName() override { return "self"; }46 47  virtual std::optional<bool>48  GetBooleanFromString(llvm::StringRef str) const override;49 50  static llvm::StringRef GetPluginNameStatic() { return "objcplusplus"; }51 52  // PluginInterface protocol53  llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }54};55 56} // namespace lldb_private57 58#endif // LLDB_SOURCE_PLUGINS_LANGUAGE_OBJCPLUSPLUS_OBJCPLUSPLUSLANGUAGE_H59