12c1f46dcSZachary Turner //===-- ScriptInterpreterNone.cpp -------------------------------*- C++ -*-===// 22c1f46dcSZachary Turner // 32c1f46dcSZachary Turner // The LLVM Compiler Infrastructure 42c1f46dcSZachary Turner // 52c1f46dcSZachary Turner // This file is distributed under the University of Illinois Open Source 62c1f46dcSZachary Turner // License. See LICENSE.TXT for details. 72c1f46dcSZachary Turner // 82c1f46dcSZachary Turner //===----------------------------------------------------------------------===// 92c1f46dcSZachary Turner 102c1f46dcSZachary Turner #include "ScriptInterpreterNone.h" 112c1f46dcSZachary Turner #include "lldb/Core/Debugger.h" 122c1f46dcSZachary Turner #include "lldb/Core/PluginManager.h" 132c1f46dcSZachary Turner #include "lldb/Core/StreamFile.h" 142c1f46dcSZachary Turner #include "lldb/Core/StringList.h" 152c1f46dcSZachary Turner #include "lldb/Interpreter/CommandInterpreter.h" 16*bf9a7730SZachary Turner #include "lldb/Utility/Stream.h" 172c1f46dcSZachary Turner 182c1f46dcSZachary Turner #include <mutex> 192c1f46dcSZachary Turner 202c1f46dcSZachary Turner using namespace lldb; 212c1f46dcSZachary Turner using namespace lldb_private; 222c1f46dcSZachary Turner 232c1f46dcSZachary Turner ScriptInterpreterNone::ScriptInterpreterNone(CommandInterpreter &interpreter) 24b9c1b51eSKate Stone : ScriptInterpreter(interpreter, eScriptLanguageNone) {} 252c1f46dcSZachary Turner 26b9c1b51eSKate Stone ScriptInterpreterNone::~ScriptInterpreterNone() {} 272c1f46dcSZachary Turner 28b9c1b51eSKate Stone bool ScriptInterpreterNone::ExecuteOneLine(const char *command, 29b9c1b51eSKate Stone CommandReturnObject *, 30b9c1b51eSKate Stone const ExecuteScriptOptions &) { 312c1f46dcSZachary Turner m_interpreter.GetDebugger().GetErrorFile()->PutCString( 322c1f46dcSZachary Turner "error: there is no embedded script interpreter in this mode.\n"); 332c1f46dcSZachary Turner return false; 342c1f46dcSZachary Turner } 352c1f46dcSZachary Turner 36b9c1b51eSKate Stone void ScriptInterpreterNone::ExecuteInterpreterLoop() { 372c1f46dcSZachary Turner m_interpreter.GetDebugger().GetErrorFile()->PutCString( 382c1f46dcSZachary Turner "error: there is no embedded script interpreter in this mode.\n"); 392c1f46dcSZachary Turner } 402c1f46dcSZachary Turner 41b9c1b51eSKate Stone void ScriptInterpreterNone::Initialize() { 422c1f46dcSZachary Turner static std::once_flag g_once_flag; 432c1f46dcSZachary Turner 44b9c1b51eSKate Stone std::call_once(g_once_flag, []() { 45b9c1b51eSKate Stone PluginManager::RegisterPlugin(GetPluginNameStatic(), 46b9c1b51eSKate Stone GetPluginDescriptionStatic(), 472c1f46dcSZachary Turner lldb::eScriptLanguageNone, CreateInstance); 482c1f46dcSZachary Turner }); 492c1f46dcSZachary Turner } 502c1f46dcSZachary Turner 51b9c1b51eSKate Stone void ScriptInterpreterNone::Terminate() {} 522c1f46dcSZachary Turner 532c1f46dcSZachary Turner lldb::ScriptInterpreterSP 54b9c1b51eSKate Stone ScriptInterpreterNone::CreateInstance(CommandInterpreter &interpreter) { 552c1f46dcSZachary Turner return std::make_shared<ScriptInterpreterNone>(interpreter); 562c1f46dcSZachary Turner } 572c1f46dcSZachary Turner 58b9c1b51eSKate Stone lldb_private::ConstString ScriptInterpreterNone::GetPluginNameStatic() { 592c1f46dcSZachary Turner static ConstString g_name("script-none"); 602c1f46dcSZachary Turner return g_name; 612c1f46dcSZachary Turner } 622c1f46dcSZachary Turner 63b9c1b51eSKate Stone const char *ScriptInterpreterNone::GetPluginDescriptionStatic() { 642c1f46dcSZachary Turner return "Null script interpreter"; 652c1f46dcSZachary Turner } 662c1f46dcSZachary Turner 67b9c1b51eSKate Stone lldb_private::ConstString ScriptInterpreterNone::GetPluginName() { 682c1f46dcSZachary Turner return GetPluginNameStatic(); 692c1f46dcSZachary Turner } 702c1f46dcSZachary Turner 71b9c1b51eSKate Stone uint32_t ScriptInterpreterNone::GetPluginVersion() { return 1; } 72