1*67de8962SJonas Devlieghere //===-- ScriptInterpreterLua.h ----------------------------------*- C++ -*-===//
2*67de8962SJonas Devlieghere //
3*67de8962SJonas Devlieghere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*67de8962SJonas Devlieghere // See https://llvm.org/LICENSE.txt for license information.
5*67de8962SJonas Devlieghere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*67de8962SJonas Devlieghere //
7*67de8962SJonas Devlieghere //===----------------------------------------------------------------------===//
8*67de8962SJonas Devlieghere 
9*67de8962SJonas Devlieghere #ifndef liblldb_ScriptInterpreterLua_h_
10*67de8962SJonas Devlieghere #define liblldb_ScriptInterpreterLua_h_
11*67de8962SJonas Devlieghere 
12*67de8962SJonas Devlieghere #include "lldb/Interpreter/ScriptInterpreter.h"
13*67de8962SJonas Devlieghere 
14*67de8962SJonas Devlieghere namespace lldb_private {
15*67de8962SJonas Devlieghere 
16*67de8962SJonas Devlieghere class ScriptInterpreterLua : public ScriptInterpreter {
17*67de8962SJonas Devlieghere public:
18*67de8962SJonas Devlieghere   ScriptInterpreterLua(Debugger &debugger);
19*67de8962SJonas Devlieghere 
20*67de8962SJonas Devlieghere   ~ScriptInterpreterLua() override;
21*67de8962SJonas Devlieghere 
22*67de8962SJonas Devlieghere   bool ExecuteOneLine(
23*67de8962SJonas Devlieghere       llvm::StringRef command, CommandReturnObject *result,
24*67de8962SJonas Devlieghere       const ExecuteScriptOptions &options = ExecuteScriptOptions()) override;
25*67de8962SJonas Devlieghere 
26*67de8962SJonas Devlieghere   void ExecuteInterpreterLoop() override;
27*67de8962SJonas Devlieghere 
28*67de8962SJonas Devlieghere   // Static Functions
29*67de8962SJonas Devlieghere   static void Initialize();
30*67de8962SJonas Devlieghere 
31*67de8962SJonas Devlieghere   static void Terminate();
32*67de8962SJonas Devlieghere 
33*67de8962SJonas Devlieghere   static lldb::ScriptInterpreterSP CreateInstance(Debugger &debugger);
34*67de8962SJonas Devlieghere 
35*67de8962SJonas Devlieghere   static lldb_private::ConstString GetPluginNameStatic();
36*67de8962SJonas Devlieghere 
37*67de8962SJonas Devlieghere   static const char *GetPluginDescriptionStatic();
38*67de8962SJonas Devlieghere 
39*67de8962SJonas Devlieghere   // PluginInterface protocol
40*67de8962SJonas Devlieghere   lldb_private::ConstString GetPluginName() override;
41*67de8962SJonas Devlieghere 
42*67de8962SJonas Devlieghere   uint32_t GetPluginVersion() override;
43*67de8962SJonas Devlieghere };
44*67de8962SJonas Devlieghere 
45*67de8962SJonas Devlieghere } // namespace lldb_private
46*67de8962SJonas Devlieghere 
47*67de8962SJonas Devlieghere #endif // liblldb_ScriptInterpreterLua_h_
48