1cfca06d7SDimitry Andric //===-- SBLanguageRuntime.cpp ---------------------------------------------===// 25e95aa85SEd Maste // 35f29bb8aSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45f29bb8aSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 55f29bb8aSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65e95aa85SEd Maste // 75e95aa85SEd Maste //===----------------------------------------------------------------------===// 85e95aa85SEd Maste 95e95aa85SEd Maste #include "lldb/API/SBLanguageRuntime.h" 10e81d9d49SDimitry Andric #include "lldb/Target/Language.h" 116f8fc217SDimitry Andric #include "lldb/Utility/Instrumentation.h" 125e95aa85SEd Maste 135e95aa85SEd Maste using namespace lldb; 145e95aa85SEd Maste using namespace lldb_private; 155e95aa85SEd Maste 165e95aa85SEd Maste lldb::LanguageType GetLanguageTypeFromString(const char * string)1714f1b3e8SDimitry AndricSBLanguageRuntime::GetLanguageTypeFromString(const char *string) { 186f8fc217SDimitry Andric LLDB_INSTRUMENT_VA(string); 195f29bb8aSDimitry Andric 20344a3780SDimitry Andric return Language::GetLanguageTypeFromString(llvm::StringRef(string)); 215e95aa85SEd Maste } 225e95aa85SEd Maste 235e95aa85SEd Maste const char * GetNameForLanguageType(lldb::LanguageType language)2414f1b3e8SDimitry AndricSBLanguageRuntime::GetNameForLanguageType(lldb::LanguageType language) { 256f8fc217SDimitry Andric LLDB_INSTRUMENT_VA(language); 265f29bb8aSDimitry Andric 27e81d9d49SDimitry Andric return Language::GetNameForLanguageType(language); 285e95aa85SEd Maste } 29ac9a064cSDimitry Andric LanguageIsCPlusPlus(lldb::LanguageType language)30ac9a064cSDimitry Andricbool SBLanguageRuntime::LanguageIsCPlusPlus(lldb::LanguageType language) { 31ac9a064cSDimitry Andric return Language::LanguageIsCPlusPlus(language); 32ac9a064cSDimitry Andric } 33ac9a064cSDimitry Andric LanguageIsObjC(lldb::LanguageType language)34ac9a064cSDimitry Andricbool SBLanguageRuntime::LanguageIsObjC(lldb::LanguageType language) { 35ac9a064cSDimitry Andric return Language::LanguageIsObjC(language); 36ac9a064cSDimitry Andric } 37ac9a064cSDimitry Andric LanguageIsCFamily(lldb::LanguageType language)38ac9a064cSDimitry Andricbool SBLanguageRuntime::LanguageIsCFamily(lldb::LanguageType language) { 39ac9a064cSDimitry Andric return Language::LanguageIsCFamily(language); 40ac9a064cSDimitry Andric } 41ac9a064cSDimitry Andric SupportsExceptionBreakpointsOnThrow(lldb::LanguageType language)42ac9a064cSDimitry Andricbool SBLanguageRuntime::SupportsExceptionBreakpointsOnThrow( 43ac9a064cSDimitry Andric lldb::LanguageType language) { 44ac9a064cSDimitry Andric if (Language *lang_plugin = Language::FindPlugin(language)) 45ac9a064cSDimitry Andric return lang_plugin->SupportsExceptionBreakpointsOnThrow(); 46ac9a064cSDimitry Andric return false; 47ac9a064cSDimitry Andric } 48ac9a064cSDimitry Andric SupportsExceptionBreakpointsOnCatch(lldb::LanguageType language)49ac9a064cSDimitry Andricbool SBLanguageRuntime::SupportsExceptionBreakpointsOnCatch( 50ac9a064cSDimitry Andric lldb::LanguageType language) { 51ac9a064cSDimitry Andric if (Language *lang_plugin = Language::FindPlugin(language)) 52ac9a064cSDimitry Andric return lang_plugin->SupportsExceptionBreakpointsOnCatch(); 53ac9a064cSDimitry Andric return false; 54ac9a064cSDimitry Andric } 55ac9a064cSDimitry Andric 56ac9a064cSDimitry Andric const char * GetThrowKeywordForLanguage(lldb::LanguageType language)57ac9a064cSDimitry AndricSBLanguageRuntime::GetThrowKeywordForLanguage(lldb::LanguageType language) { 58ac9a064cSDimitry Andric if (Language *lang_plugin = Language::FindPlugin(language)) 59ac9a064cSDimitry Andric return ConstString(lang_plugin->GetThrowKeyword()).AsCString(); 60ac9a064cSDimitry Andric return nullptr; 61ac9a064cSDimitry Andric } 62ac9a064cSDimitry Andric 63ac9a064cSDimitry Andric const char * GetCatchKeywordForLanguage(lldb::LanguageType language)64ac9a064cSDimitry AndricSBLanguageRuntime::GetCatchKeywordForLanguage(lldb::LanguageType language) { 65ac9a064cSDimitry Andric if (Language *lang_plugin = Language::FindPlugin(language)) 66ac9a064cSDimitry Andric return ConstString(lang_plugin->GetCatchKeyword()).AsCString(); 67ac9a064cSDimitry Andric return nullptr; 68ac9a064cSDimitry Andric } 69