33 lines
980 B
C
33 lines
980 B
C
|
#ifndef f_SYLIA_SCRIPTINTERPRETER_H
|
||
|
#define f_SYLIA_SCRIPTINTERPRETER_H
|
||
|
|
||
|
class CScriptValue;
|
||
|
class CScriptError;
|
||
|
struct CScriptObject;
|
||
|
class IScriptInterpreter;
|
||
|
|
||
|
typedef CScriptValue (*ScriptRootHandlerPtr)(IScriptInterpreter *,char *,void *);
|
||
|
|
||
|
class IScriptInterpreter {
|
||
|
public:
|
||
|
virtual void Destroy() =0;
|
||
|
|
||
|
virtual void SetRootHandler(ScriptRootHandlerPtr, void *) =0;
|
||
|
|
||
|
virtual void ExecuteLine(char *s) =0;
|
||
|
|
||
|
virtual void ScriptError(int e) =0;
|
||
|
virtual char* TranslateScriptError(CScriptError& cse) =0;
|
||
|
virtual char** AllocTempString(long l) =0;
|
||
|
|
||
|
virtual CScriptValue LookupObjectMember(CScriptObject *obj, void *, char *szIdent) = 0;
|
||
|
};
|
||
|
|
||
|
extern "C" __declspec(dllexport) IScriptInterpreter * __stdcall CreateScriptInterpreter();
|
||
|
|
||
|
#define GETPROC_CREATESCRIPTINTERPRETER(hInst) ((IScriptInterpreter *(__stdcall *)())GetProcAddress(hInst, "_CreateScriptInterpreter@0"))
|
||
|
|
||
|
#define EXT_SCRIPT_ERROR(x) (isi->ScriptError((CScriptError::x)))
|
||
|
|
||
|
#endif
|