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 14 namespace lldb_private { 15 class Lua; 16 class ScriptInterpreterLua : public ScriptInterpreter { 17 public: 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 // Static Functions 29 static void Initialize(); 30 31 static void Terminate(); 32 33 static lldb::ScriptInterpreterSP CreateInstance(Debugger &debugger); 34 35 static lldb_private::ConstString GetPluginNameStatic(); 36 37 static const char *GetPluginDescriptionStatic(); 38 39 // PluginInterface protocol 40 lldb_private::ConstString GetPluginName() override; 41 42 uint32_t GetPluginVersion() override; 43 44 Lua &GetLua(); 45 46 private: 47 std::unique_ptr<Lua> m_lua; 48 }; 49 50 } // namespace lldb_private 51 52 #endif // liblldb_ScriptInterpreterLua_h_ 53