xref: /freebsd-src/contrib/llvm-project/lldb/source/API/SBLanguageRuntime.cpp (revision 0fca6ea1d4eea4c934cfff25ac9ee8ad6fe95583)
1 //===-- SBLanguageRuntime.cpp ---------------------------------------------===//
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-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #include "lldb/API/SBLanguageRuntime.h"
10 #include "lldb/Target/Language.h"
11 #include "lldb/Utility/Instrumentation.h"
12 
13 using namespace lldb;
14 using namespace lldb_private;
15 
16 lldb::LanguageType
17 SBLanguageRuntime::GetLanguageTypeFromString(const char *string) {
18   LLDB_INSTRUMENT_VA(string);
19 
20   return Language::GetLanguageTypeFromString(llvm::StringRef(string));
21 }
22 
23 const char *
24 SBLanguageRuntime::GetNameForLanguageType(lldb::LanguageType language) {
25   LLDB_INSTRUMENT_VA(language);
26 
27   return Language::GetNameForLanguageType(language);
28 }
29 
30 bool SBLanguageRuntime::LanguageIsCPlusPlus(lldb::LanguageType language) {
31   return Language::LanguageIsCPlusPlus(language);
32 }
33 
34 bool SBLanguageRuntime::LanguageIsObjC(lldb::LanguageType language) {
35   return Language::LanguageIsObjC(language);
36 }
37 
38 bool SBLanguageRuntime::LanguageIsCFamily(lldb::LanguageType language) {
39   return Language::LanguageIsCFamily(language);
40 }
41 
42 bool SBLanguageRuntime::SupportsExceptionBreakpointsOnThrow(
43     lldb::LanguageType language) {
44   if (Language *lang_plugin = Language::FindPlugin(language))
45     return lang_plugin->SupportsExceptionBreakpointsOnThrow();
46   return false;
47 }
48 
49 bool SBLanguageRuntime::SupportsExceptionBreakpointsOnCatch(
50     lldb::LanguageType language) {
51   if (Language *lang_plugin = Language::FindPlugin(language))
52     return lang_plugin->SupportsExceptionBreakpointsOnCatch();
53   return false;
54 }
55 
56 const char *
57 SBLanguageRuntime::GetThrowKeywordForLanguage(lldb::LanguageType language) {
58   if (Language *lang_plugin = Language::FindPlugin(language))
59     return ConstString(lang_plugin->GetThrowKeyword()).AsCString();
60   return nullptr;
61 }
62 
63 const char *
64 SBLanguageRuntime::GetCatchKeywordForLanguage(lldb::LanguageType language) {
65   if (Language *lang_plugin = Language::FindPlugin(language))
66     return ConstString(lang_plugin->GetCatchKeyword()).AsCString();
67   return nullptr;
68 }
69