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"
16bf9a7730SZachary Turner #include "lldb/Utility/Stream.h"
172c1f46dcSZachary Turner 
18*c5f28e2aSKamil Rytarowski #include "llvm/Support/Threading.h"
19*c5f28e2aSKamil Rytarowski 
202c1f46dcSZachary Turner #include <mutex>
212c1f46dcSZachary Turner 
222c1f46dcSZachary Turner using namespace lldb;
232c1f46dcSZachary Turner using namespace lldb_private;
242c1f46dcSZachary Turner 
252c1f46dcSZachary Turner ScriptInterpreterNone::ScriptInterpreterNone(CommandInterpreter &interpreter)
26b9c1b51eSKate Stone     : ScriptInterpreter(interpreter, eScriptLanguageNone) {}
272c1f46dcSZachary Turner 
28b9c1b51eSKate Stone ScriptInterpreterNone::~ScriptInterpreterNone() {}
292c1f46dcSZachary Turner 
30b9c1b51eSKate Stone bool ScriptInterpreterNone::ExecuteOneLine(const char *command,
31b9c1b51eSKate Stone                                            CommandReturnObject *,
32b9c1b51eSKate Stone                                            const ExecuteScriptOptions &) {
332c1f46dcSZachary Turner   m_interpreter.GetDebugger().GetErrorFile()->PutCString(
342c1f46dcSZachary Turner       "error: there is no embedded script interpreter in this mode.\n");
352c1f46dcSZachary Turner   return false;
362c1f46dcSZachary Turner }
372c1f46dcSZachary Turner 
38b9c1b51eSKate Stone void ScriptInterpreterNone::ExecuteInterpreterLoop() {
392c1f46dcSZachary Turner   m_interpreter.GetDebugger().GetErrorFile()->PutCString(
402c1f46dcSZachary Turner       "error: there is no embedded script interpreter in this mode.\n");
412c1f46dcSZachary Turner }
422c1f46dcSZachary Turner 
43b9c1b51eSKate Stone void ScriptInterpreterNone::Initialize() {
44*c5f28e2aSKamil Rytarowski   static llvm::once_flag g_once_flag;
452c1f46dcSZachary Turner 
46*c5f28e2aSKamil Rytarowski   llvm::call_once(g_once_flag, []() {
47b9c1b51eSKate Stone     PluginManager::RegisterPlugin(GetPluginNameStatic(),
48b9c1b51eSKate Stone                                   GetPluginDescriptionStatic(),
492c1f46dcSZachary Turner                                   lldb::eScriptLanguageNone, CreateInstance);
502c1f46dcSZachary Turner   });
512c1f46dcSZachary Turner }
522c1f46dcSZachary Turner 
53b9c1b51eSKate Stone void ScriptInterpreterNone::Terminate() {}
542c1f46dcSZachary Turner 
552c1f46dcSZachary Turner lldb::ScriptInterpreterSP
56b9c1b51eSKate Stone ScriptInterpreterNone::CreateInstance(CommandInterpreter &interpreter) {
572c1f46dcSZachary Turner   return std::make_shared<ScriptInterpreterNone>(interpreter);
582c1f46dcSZachary Turner }
592c1f46dcSZachary Turner 
60b9c1b51eSKate Stone lldb_private::ConstString ScriptInterpreterNone::GetPluginNameStatic() {
612c1f46dcSZachary Turner   static ConstString g_name("script-none");
622c1f46dcSZachary Turner   return g_name;
632c1f46dcSZachary Turner }
642c1f46dcSZachary Turner 
65b9c1b51eSKate Stone const char *ScriptInterpreterNone::GetPluginDescriptionStatic() {
662c1f46dcSZachary Turner   return "Null script interpreter";
672c1f46dcSZachary Turner }
682c1f46dcSZachary Turner 
69b9c1b51eSKate Stone lldb_private::ConstString ScriptInterpreterNone::GetPluginName() {
702c1f46dcSZachary Turner   return GetPluginNameStatic();
712c1f46dcSZachary Turner }
722c1f46dcSZachary Turner 
73b9c1b51eSKate Stone uint32_t ScriptInterpreterNone::GetPluginVersion() { return 1; }
74