xref: /src/contrib/llvm-project/lldb/source/API/SBLanguageRuntime.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
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 Andric SBLanguageRuntime::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 Andric SBLanguageRuntime::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 Andric bool SBLanguageRuntime::LanguageIsCPlusPlus(lldb::LanguageType language) {
31ac9a064cSDimitry Andric   return Language::LanguageIsCPlusPlus(language);
32ac9a064cSDimitry Andric }
33ac9a064cSDimitry Andric 
LanguageIsObjC(lldb::LanguageType language)34ac9a064cSDimitry Andric bool SBLanguageRuntime::LanguageIsObjC(lldb::LanguageType language) {
35ac9a064cSDimitry Andric   return Language::LanguageIsObjC(language);
36ac9a064cSDimitry Andric }
37ac9a064cSDimitry Andric 
LanguageIsCFamily(lldb::LanguageType language)38ac9a064cSDimitry Andric bool SBLanguageRuntime::LanguageIsCFamily(lldb::LanguageType language) {
39ac9a064cSDimitry Andric   return Language::LanguageIsCFamily(language);
40ac9a064cSDimitry Andric }
41ac9a064cSDimitry Andric 
SupportsExceptionBreakpointsOnThrow(lldb::LanguageType language)42ac9a064cSDimitry Andric bool 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 Andric bool 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 Andric SBLanguageRuntime::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 Andric SBLanguageRuntime::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