15ffd83dbSDimitry Andric //===-- SBLanguageRuntime.cpp ---------------------------------------------===//
20b57cec5SDimitry Andric //
30b57cec5SDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric //
70b57cec5SDimitry Andric //===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric 
90b57cec5SDimitry Andric #include "lldb/API/SBLanguageRuntime.h"
100b57cec5SDimitry Andric #include "SBReproducerPrivate.h"
110b57cec5SDimitry Andric #include "lldb/Target/Language.h"
120b57cec5SDimitry Andric 
130b57cec5SDimitry Andric using namespace lldb;
140b57cec5SDimitry Andric using namespace lldb_private;
150b57cec5SDimitry Andric 
160b57cec5SDimitry Andric lldb::LanguageType
GetLanguageTypeFromString(const char * string)170b57cec5SDimitry Andric SBLanguageRuntime::GetLanguageTypeFromString(const char *string) {
180b57cec5SDimitry Andric   LLDB_RECORD_STATIC_METHOD(lldb::LanguageType, SBLanguageRuntime,
190b57cec5SDimitry Andric                             GetLanguageTypeFromString, (const char *), string);
200b57cec5SDimitry Andric 
21*5f7ddb14SDimitry Andric   return Language::GetLanguageTypeFromString(llvm::StringRef(string));
220b57cec5SDimitry Andric }
230b57cec5SDimitry Andric 
240b57cec5SDimitry Andric const char *
GetNameForLanguageType(lldb::LanguageType language)250b57cec5SDimitry Andric SBLanguageRuntime::GetNameForLanguageType(lldb::LanguageType language) {
260b57cec5SDimitry Andric   LLDB_RECORD_STATIC_METHOD(const char *, SBLanguageRuntime,
270b57cec5SDimitry Andric                             GetNameForLanguageType, (lldb::LanguageType),
280b57cec5SDimitry Andric                             language);
290b57cec5SDimitry Andric 
300b57cec5SDimitry Andric   return Language::GetNameForLanguageType(language);
310b57cec5SDimitry Andric }
320b57cec5SDimitry Andric 
330b57cec5SDimitry Andric namespace lldb_private {
340b57cec5SDimitry Andric namespace repro {
350b57cec5SDimitry Andric 
360b57cec5SDimitry Andric template <>
RegisterMethods(Registry & R)370b57cec5SDimitry Andric void RegisterMethods<SBLanguageRuntime>(Registry &R) {
380b57cec5SDimitry Andric   LLDB_REGISTER_STATIC_METHOD(lldb::LanguageType, SBLanguageRuntime,
390b57cec5SDimitry Andric                               GetLanguageTypeFromString, (const char *));
400b57cec5SDimitry Andric   LLDB_REGISTER_STATIC_METHOD(const char *, SBLanguageRuntime,
410b57cec5SDimitry Andric                               GetNameForLanguageType, (lldb::LanguageType));
420b57cec5SDimitry Andric }
430b57cec5SDimitry Andric 
440b57cec5SDimitry Andric }
450b57cec5SDimitry Andric }
46