1//===-- ScriptInterpreterLua.h ----------------------------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8 9#ifndef liblldb_ScriptInterpreterLua_h_ 10#define liblldb_ScriptInterpreterLua_h_ 11 12#include "lldb/Interpreter/ScriptInterpreter.h" 13 14namespace lldb_private { 15class Lua; 16class ScriptInterpreterLua : public ScriptInterpreter { 17public: 18 ScriptInterpreterLua(Debugger &debugger); 19 20 ~ScriptInterpreterLua() override; 21 22 bool ExecuteOneLine( 23 llvm::StringRef command, CommandReturnObject *result, 24 const ExecuteScriptOptions &options = ExecuteScriptOptions()) override; 25 26 void ExecuteInterpreterLoop() override; 27 28 virtual bool 29 LoadScriptingModule(const char *filename, bool init_session, 30 lldb_private::Status &error, 31 StructuredData::ObjectSP *module_sp = nullptr) override; 32 33 // Static Functions 34 static void Initialize(); 35 36 static void Terminate(); 37 38 static lldb::ScriptInterpreterSP CreateInstance(Debugger &debugger); 39 40 static lldb_private::ConstString GetPluginNameStatic(); 41 42 static const char *GetPluginDescriptionStatic(); 43 44 // PluginInterface protocol 45 lldb_private::ConstString GetPluginName() override; 46 47 uint32_t GetPluginVersion() override; 48 49 Lua &GetLua(); 50 51 llvm::Error EnterSession(lldb::user_id_t debugger_id); 52 llvm::Error LeaveSession(); 53 54private: 55 std::unique_ptr<Lua> m_lua; 56 bool m_session_is_active = false; 57}; 58 59} // namespace lldb_private 60 61#endif // liblldb_ScriptInterpreterLua_h_ 62