1*2c1f46dcSZachary Turner //===-- ScriptInterpreterNone.cpp -------------------------------*- C++ -*-===// 2*2c1f46dcSZachary Turner // 3*2c1f46dcSZachary Turner // The LLVM Compiler Infrastructure 4*2c1f46dcSZachary Turner // 5*2c1f46dcSZachary Turner // This file is distributed under the University of Illinois Open Source 6*2c1f46dcSZachary Turner // License. See LICENSE.TXT for details. 7*2c1f46dcSZachary Turner // 8*2c1f46dcSZachary Turner //===----------------------------------------------------------------------===// 9*2c1f46dcSZachary Turner 10*2c1f46dcSZachary Turner #include "ScriptInterpreterNone.h" 11*2c1f46dcSZachary Turner #include "lldb/Core/Debugger.h" 12*2c1f46dcSZachary Turner #include "lldb/Core/PluginManager.h" 13*2c1f46dcSZachary Turner #include "lldb/Core/Stream.h" 14*2c1f46dcSZachary Turner #include "lldb/Core/StreamFile.h" 15*2c1f46dcSZachary Turner #include "lldb/Core/StringList.h" 16*2c1f46dcSZachary Turner #include "lldb/Interpreter/CommandInterpreter.h" 17*2c1f46dcSZachary Turner 18*2c1f46dcSZachary Turner #include <mutex> 19*2c1f46dcSZachary Turner 20*2c1f46dcSZachary Turner using namespace lldb; 21*2c1f46dcSZachary Turner using namespace lldb_private; 22*2c1f46dcSZachary Turner 23*2c1f46dcSZachary Turner ScriptInterpreterNone::ScriptInterpreterNone(CommandInterpreter &interpreter) 24*2c1f46dcSZachary Turner : ScriptInterpreter(interpreter, eScriptLanguageNone) 25*2c1f46dcSZachary Turner { 26*2c1f46dcSZachary Turner } 27*2c1f46dcSZachary Turner 28*2c1f46dcSZachary Turner ScriptInterpreterNone::~ScriptInterpreterNone() 29*2c1f46dcSZachary Turner { 30*2c1f46dcSZachary Turner } 31*2c1f46dcSZachary Turner 32*2c1f46dcSZachary Turner bool 33*2c1f46dcSZachary Turner ScriptInterpreterNone::ExecuteOneLine(const char *command, CommandReturnObject *, const ExecuteScriptOptions &) 34*2c1f46dcSZachary Turner { 35*2c1f46dcSZachary Turner m_interpreter.GetDebugger().GetErrorFile()->PutCString( 36*2c1f46dcSZachary Turner "error: there is no embedded script interpreter in this mode.\n"); 37*2c1f46dcSZachary Turner return false; 38*2c1f46dcSZachary Turner } 39*2c1f46dcSZachary Turner 40*2c1f46dcSZachary Turner void 41*2c1f46dcSZachary Turner ScriptInterpreterNone::ExecuteInterpreterLoop() 42*2c1f46dcSZachary Turner { 43*2c1f46dcSZachary Turner m_interpreter.GetDebugger().GetErrorFile()->PutCString( 44*2c1f46dcSZachary Turner "error: there is no embedded script interpreter in this mode.\n"); 45*2c1f46dcSZachary Turner } 46*2c1f46dcSZachary Turner 47*2c1f46dcSZachary Turner void 48*2c1f46dcSZachary Turner ScriptInterpreterNone::Initialize() 49*2c1f46dcSZachary Turner { 50*2c1f46dcSZachary Turner static std::once_flag g_once_flag; 51*2c1f46dcSZachary Turner 52*2c1f46dcSZachary Turner std::call_once(g_once_flag, []() 53*2c1f46dcSZachary Turner { 54*2c1f46dcSZachary Turner PluginManager::RegisterPlugin(GetPluginNameStatic(), GetPluginDescriptionStatic(), 55*2c1f46dcSZachary Turner lldb::eScriptLanguageNone, CreateInstance); 56*2c1f46dcSZachary Turner }); 57*2c1f46dcSZachary Turner } 58*2c1f46dcSZachary Turner 59*2c1f46dcSZachary Turner void 60*2c1f46dcSZachary Turner ScriptInterpreterNone::Terminate() 61*2c1f46dcSZachary Turner { 62*2c1f46dcSZachary Turner } 63*2c1f46dcSZachary Turner 64*2c1f46dcSZachary Turner lldb::ScriptInterpreterSP 65*2c1f46dcSZachary Turner ScriptInterpreterNone::CreateInstance(CommandInterpreter &interpreter) 66*2c1f46dcSZachary Turner { 67*2c1f46dcSZachary Turner return std::make_shared<ScriptInterpreterNone>(interpreter); 68*2c1f46dcSZachary Turner } 69*2c1f46dcSZachary Turner 70*2c1f46dcSZachary Turner lldb_private::ConstString 71*2c1f46dcSZachary Turner ScriptInterpreterNone::GetPluginNameStatic() 72*2c1f46dcSZachary Turner { 73*2c1f46dcSZachary Turner static ConstString g_name("script-none"); 74*2c1f46dcSZachary Turner return g_name; 75*2c1f46dcSZachary Turner } 76*2c1f46dcSZachary Turner 77*2c1f46dcSZachary Turner const char * 78*2c1f46dcSZachary Turner ScriptInterpreterNone::GetPluginDescriptionStatic() 79*2c1f46dcSZachary Turner { 80*2c1f46dcSZachary Turner return "Null script interpreter"; 81*2c1f46dcSZachary Turner } 82*2c1f46dcSZachary Turner 83*2c1f46dcSZachary Turner lldb_private::ConstString 84*2c1f46dcSZachary Turner ScriptInterpreterNone::GetPluginName() 85*2c1f46dcSZachary Turner { 86*2c1f46dcSZachary Turner return GetPluginNameStatic(); 87*2c1f46dcSZachary Turner } 88*2c1f46dcSZachary Turner 89*2c1f46dcSZachary Turner uint32_t 90*2c1f46dcSZachary Turner ScriptInterpreterNone::GetPluginVersion() 91*2c1f46dcSZachary Turner { 92*2c1f46dcSZachary Turner return 1; 93*2c1f46dcSZachary Turner } 94