1*67de8962SJonas Devlieghere //===-- ScriptInterpreterLua.cpp --------------------------------*- C++ -*-===// 2*67de8962SJonas Devlieghere // 3*67de8962SJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*67de8962SJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information. 5*67de8962SJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*67de8962SJonas Devlieghere // 7*67de8962SJonas Devlieghere //===----------------------------------------------------------------------===// 8*67de8962SJonas Devlieghere 9*67de8962SJonas Devlieghere #include "ScriptInterpreterLua.h" 10*67de8962SJonas Devlieghere #include "lldb/Core/Debugger.h" 11*67de8962SJonas Devlieghere #include "lldb/Core/PluginManager.h" 12*67de8962SJonas Devlieghere #include "lldb/Core/StreamFile.h" 13*67de8962SJonas Devlieghere #include "lldb/Utility/Stream.h" 14*67de8962SJonas Devlieghere #include "lldb/Utility/StringList.h" 15*67de8962SJonas Devlieghere 16*67de8962SJonas Devlieghere #include "llvm/Support/Threading.h" 17*67de8962SJonas Devlieghere 18*67de8962SJonas Devlieghere #include <mutex> 19*67de8962SJonas Devlieghere 20*67de8962SJonas Devlieghere using namespace lldb; 21*67de8962SJonas Devlieghere using namespace lldb_private; 22*67de8962SJonas Devlieghere 23*67de8962SJonas Devlieghere ScriptInterpreterLua::ScriptInterpreterLua(Debugger &debugger) 24*67de8962SJonas Devlieghere : ScriptInterpreter(debugger, eScriptLanguageLua) {} 25*67de8962SJonas Devlieghere 26*67de8962SJonas Devlieghere ScriptInterpreterLua::~ScriptInterpreterLua() {} 27*67de8962SJonas Devlieghere 28*67de8962SJonas Devlieghere bool ScriptInterpreterLua::ExecuteOneLine(llvm::StringRef command, 29*67de8962SJonas Devlieghere CommandReturnObject *, 30*67de8962SJonas Devlieghere const ExecuteScriptOptions &) { 31*67de8962SJonas Devlieghere m_debugger.GetErrorStream().PutCString( 32*67de8962SJonas Devlieghere "error: the lua script interpreter is not yet implemented.\n"); 33*67de8962SJonas Devlieghere return false; 34*67de8962SJonas Devlieghere } 35*67de8962SJonas Devlieghere 36*67de8962SJonas Devlieghere void ScriptInterpreterLua::ExecuteInterpreterLoop() { 37*67de8962SJonas Devlieghere m_debugger.GetErrorStream().PutCString( 38*67de8962SJonas Devlieghere "error: the lua script interpreter is not yet implemented.\n"); 39*67de8962SJonas Devlieghere } 40*67de8962SJonas Devlieghere 41*67de8962SJonas Devlieghere void ScriptInterpreterLua::Initialize() { 42*67de8962SJonas Devlieghere static llvm::once_flag g_once_flag; 43*67de8962SJonas Devlieghere 44*67de8962SJonas Devlieghere llvm::call_once(g_once_flag, []() { 45*67de8962SJonas Devlieghere PluginManager::RegisterPlugin(GetPluginNameStatic(), 46*67de8962SJonas Devlieghere GetPluginDescriptionStatic(), 47*67de8962SJonas Devlieghere lldb::eScriptLanguageLua, CreateInstance); 48*67de8962SJonas Devlieghere }); 49*67de8962SJonas Devlieghere } 50*67de8962SJonas Devlieghere 51*67de8962SJonas Devlieghere void ScriptInterpreterLua::Terminate() {} 52*67de8962SJonas Devlieghere 53*67de8962SJonas Devlieghere lldb::ScriptInterpreterSP 54*67de8962SJonas Devlieghere ScriptInterpreterLua::CreateInstance(Debugger &debugger) { 55*67de8962SJonas Devlieghere return std::make_shared<ScriptInterpreterLua>(debugger); 56*67de8962SJonas Devlieghere } 57*67de8962SJonas Devlieghere 58*67de8962SJonas Devlieghere lldb_private::ConstString ScriptInterpreterLua::GetPluginNameStatic() { 59*67de8962SJonas Devlieghere static ConstString g_name("script-lua"); 60*67de8962SJonas Devlieghere return g_name; 61*67de8962SJonas Devlieghere } 62*67de8962SJonas Devlieghere 63*67de8962SJonas Devlieghere const char *ScriptInterpreterLua::GetPluginDescriptionStatic() { 64*67de8962SJonas Devlieghere return "Lua script interpreter"; 65*67de8962SJonas Devlieghere } 66*67de8962SJonas Devlieghere 67*67de8962SJonas Devlieghere lldb_private::ConstString ScriptInterpreterLua::GetPluginName() { 68*67de8962SJonas Devlieghere return GetPluginNameStatic(); 69*67de8962SJonas Devlieghere } 70*67de8962SJonas Devlieghere 71*67de8962SJonas Devlieghere uint32_t ScriptInterpreterLua::GetPluginVersion() { return 1; } 72