12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #ifndef SCRIPT_H
- #define SCRIPT_H
- #include <stdbool.h>
- #include "vm/Arrays.h"
- #include "vm/ByteCode.h"
- #define SCRIPT_STACK_SIZE 1000
- #define SCRIPT_ERROR_SIZE 256
- typedef struct {
- char error[SCRIPT_ERROR_SIZE];
- ByteCode* code;
- int readIndex;
- char stack[SCRIPT_STACK_SIZE];
- int stackIndex;
- int stackVarIndex;
- int line;
- Arrays arrays;
- } Script;
- Script* sInit(ByteCode* code);
- void sDelete(Script* sc);
- void sRun(Script* sc);
- void sError(Script* sc, const char* format, ...);
- bool sPopInt32(Script* sc, int32* i);
- bool sPushInt32(Script* sc, int32 i);
- bool sPopInt64(Script* sc, int64* i);
- bool sPushInt64(Script* sc, int64 i);
- bool sPopFloat(Script* sc, float* f);
- bool sPushFloat(Script* sc, float f);
- bool sPopBool(Script* sc, bool* b);
- bool sPushBool(Script* sc, bool b);
- bool sPopPointer(Script* sc, Pointer* p);
- bool sPushPointer(Script* sc, Pointer* p);
- bool sPushNullPointer(Script* sc);
- void* sCheckAddress(Script* sc, Pointer* p, int length);
- bool sGetPointerLength(Script* sc, Pointer* p, int32* length);
- #endif
|