1dda28197Spatrick //===-- ObjCPlusPlusLanguage.cpp ------------------------------------------===// 2061da546Spatrick // 3061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4061da546Spatrick // See https://llvm.org/LICENSE.txt for license information. 5061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6061da546Spatrick // 7061da546Spatrick //===----------------------------------------------------------------------===// 8061da546Spatrick 9061da546Spatrick #include "ObjCPlusPlusLanguage.h" 10061da546Spatrick 11061da546Spatrick #include "lldb/Core/PluginManager.h" 12061da546Spatrick #include "lldb/Utility/ConstString.h" 13061da546Spatrick 14061da546Spatrick using namespace lldb; 15061da546Spatrick using namespace lldb_private; 16061da546Spatrick LLDB_PLUGIN_DEFINE(ObjCPlusPlusLanguage)17dda28197SpatrickLLDB_PLUGIN_DEFINE(ObjCPlusPlusLanguage) 18dda28197Spatrick 19061da546Spatrick bool ObjCPlusPlusLanguage::IsSourceFile(llvm::StringRef file_path) const { 20061da546Spatrick const auto suffixes = {".h", ".mm"}; 21061da546Spatrick for (auto suffix : suffixes) { 22*be691f3bSpatrick if (file_path.endswith_insensitive(suffix)) 23061da546Spatrick return true; 24061da546Spatrick } 25061da546Spatrick return false; 26061da546Spatrick } 27061da546Spatrick Initialize()28061da546Spatrickvoid ObjCPlusPlusLanguage::Initialize() { 29061da546Spatrick PluginManager::RegisterPlugin(GetPluginNameStatic(), "Objective-C++ Language", 30061da546Spatrick CreateInstance); 31061da546Spatrick } 32061da546Spatrick Terminate()33061da546Spatrickvoid ObjCPlusPlusLanguage::Terminate() { 34061da546Spatrick PluginManager::UnregisterPlugin(CreateInstance); 35061da546Spatrick } 36061da546Spatrick 37061da546Spatrick // Static Functions CreateInstance(lldb::LanguageType language)38061da546SpatrickLanguage *ObjCPlusPlusLanguage::CreateInstance(lldb::LanguageType language) { 39061da546Spatrick switch (language) { 40061da546Spatrick case lldb::eLanguageTypeObjC_plus_plus: 41061da546Spatrick return new ObjCPlusPlusLanguage(); 42061da546Spatrick default: 43061da546Spatrick return nullptr; 44061da546Spatrick } 45061da546Spatrick } 46