| //===-- SBLanguageRuntime.cpp ---------------------------------------------===// | |
| // | |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. | |
| // See https://llvm.org/LICENSE.txt for license information. | |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| // | |
| //===----------------------------------------------------------------------===// | |
| #include "lldb/API/SBLanguageRuntime.h" | |
| #include "lldb/Target/Language.h" | |
| #include "lldb/Utility/Instrumentation.h" | |
| #include "lldb/Utility/StringPool.h" | |
| using namespace lldb; | |
| using namespace lldb_private; | |
| lldb::LanguageType | |
| SBLanguageRuntime::GetLanguageTypeFromString(const char *string) { | |
| LLDB_INSTRUMENT_VA(string); | |
| return Language::GetLanguageTypeFromString(llvm::StringRef(string)); | |
| } | |
| const char * | |
| SBLanguageRuntime::GetNameForLanguageType(lldb::LanguageType language) { | |
| LLDB_INSTRUMENT_VA(language); | |
| return Language::GetNameForLanguageType(language); | |
| } | |
| bool SBLanguageRuntime::LanguageIsCPlusPlus(lldb::LanguageType language) { | |
| return Language::LanguageIsCPlusPlus(language); | |
| } | |
| bool SBLanguageRuntime::LanguageIsObjC(lldb::LanguageType language) { | |
| return Language::LanguageIsObjC(language); | |
| } | |
| bool SBLanguageRuntime::LanguageIsCFamily(lldb::LanguageType language) { | |
| return Language::LanguageIsCFamily(language); | |
| } | |
| bool SBLanguageRuntime::SupportsExceptionBreakpointsOnThrow( | |
| lldb::LanguageType language) { | |
| if (Language *lang_plugin = Language::FindPlugin(language)) | |
| return lang_plugin->SupportsExceptionBreakpointsOnThrow(); | |
| return false; | |
| } | |
| bool SBLanguageRuntime::SupportsExceptionBreakpointsOnCatch( | |
| lldb::LanguageType language) { | |
| if (Language *lang_plugin = Language::FindPlugin(language)) | |
| return lang_plugin->SupportsExceptionBreakpointsOnCatch(); | |
| return false; | |
| } | |
| const char * | |
| SBLanguageRuntime::GetThrowKeywordForLanguage(lldb::LanguageType language) { | |
| if (Language *lang_plugin = Language::FindPlugin(language)) | |
| return StringPool::GetSystemPool().InternNonEmpty( | |
| lang_plugin->GetThrowKeyword()); | |
| return nullptr; | |
| } | |
| const char * | |
| SBLanguageRuntime::GetCatchKeywordForLanguage(lldb::LanguageType language) { | |
| if (Language *lang_plugin = Language::FindPlugin(language)) | |
| return StringPool::GetSystemPool().InternNonEmpty( | |
| lang_plugin->GetCatchKeyword()); | |
| return nullptr; | |
| } |