xref: /llvm-project/lldb/source/Plugins/ScriptInterpreter/Lua/ScriptInterpreterLua.h (revision 4164be7206d740b77b5a7b4b2f859ed122d08c10)
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