Aegisub/vsfilter/include/virtualdub/ScriptInterpreter.h

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