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