26 #include <luabind/object.hpp> 31 #if defined(_WIN32) && defined(HR_ENGINE_SHARED) 33 # define MR_DllDeclare __declspec( dllexport ) 35 # define MR_DllDeclare __declspec( dllimport ) 38 # define MR_DllDeclare 73 Core &operator=(
const Core&) =
delete;
77 virtual Core *Reset();
78 void ActivateSandbox();
81 static int ErrorFunc(lua_State *L);
84 using outs_t = std::list<std::shared_ptr<std::ostream>>;
87 OutHandle AddOutput(std::shared_ptr<std::ostream> out);
88 void RemoveOutput(
const OutHandle &handle);
90 std::string GetVersionString()
const;
104 const std::string &name = DEFAULT_CHUNK_NAME) :
105 src(src), name(name) { }
128 static void PrintFromStack(lua_State *state,
int n);
147 PrintFromStack(state, n);
153 void Print(
const std::string &s);
156 void Compile(
const Chunk &chunk);
167 template<
class ReturnPolicy = Pr
intReturn>
169 ReturnPolicy rp = ReturnPolicy())
171 return rp(state, Call(numParams, helpHandler));
177 Invoke(numParams, helpHandler);
194 template<
class ReturnPolicy = Pr
intReturn>
196 ReturnPolicy rp = ReturnPolicy())
203 Invoke(0, helpHandler, rp);
208 void ReqHelp(
const std::string &className);
209 void ReqHelp(
const std::string &className,
const std::string &methodName);
212 std::unique_ptr<luabind::object>
NIL;
214 void LoadClassHelp(
const std::string &className);
215 static std::string PopError(lua_State *state);
217 static int LPrint(lua_State *state);
218 static int LSandboxedFunction(lua_State *state);
225 const std::string, std::shared_ptr<Help::Class>>;
Generic script engine exception.
Definition: ScriptExn.h:41
Exception to signal that the current chunk is incomplete.
Definition: Core.h:54
int operator()(lua_State *, int n) const
Definition: Core.h:133
Chunk(const std::string &src, const std::string &name=DEFAULT_CHUNK_NAME)
Constructor.
Definition: Core.h:103
outs_t::iterator OutHandle
Definition: Core.h:86
IncompleteExn(const std::string &s)
Definition: Core.h:59
lua_State * state
Definition: Core.h:123
int operator()(lua_State *state, int n) const
Definition: Core.h:145
std::list< std::shared_ptr< std::ostream >> outs_t
Definition: Core.h:84
std::string src
Definition: Core.h:112
Return policy that leaves the return values on the stack.
Definition: Core.h:131
int initStack
Definition: Core.h:124
Return policy that calls Lua's print() function on each value.
Definition: Core.h:143
lua_State * GetState() const
Definition: Core.h:76
helpClasses_t helpClasses
Definition: Core.h:226
Abstract base class for handlers of help requests.
Definition: HelpHandler.h:45
int Invoke(int numParams=0, Help::HelpHandler *helpHandler=nullptr, ReturnPolicy rp=ReturnPolicy())
Pop a function off the stack and execute it, printing any return values.
Definition: Core.h:168
std::map< const std::string, std::shared_ptr< Help::Class >> helpClasses_t
Definition: Core.h:225
std::string name
Definition: Core.h:113
outs_t outs
Definition: Core.h:221
Help::HelpHandler * curHelpHandler
Definition: Core.h:223
Ensures that the Lua stack is unchanged in a block.
Definition: Core.h:118
std::unordered_map< std::string, std::string > map
Definition: SdlDisplay.cpp:115
static const std::string DEFAULT_CHUNK_NAME
Definition: Core.h:155
void CallAndPrint(int numParams=0, Help::HelpHandler *helpHandler=nullptr)
Definition: Core.h:175
Definition: Announcement.h:24
void Execute(const Chunk &chunk, Help::HelpHandler *helpHandler=nullptr, ReturnPolicy rp=ReturnPolicy())
Safely compile and execute a chunk of code.
Definition: Core.h:195
lua_State * state
Definition: Core.h:222
#define MR_DllDeclare
Definition: Core.h:38
std::unique_ptr< luabind::object > NIL
Definition: Core.h:212
A script environment.
Definition: Core.h:66