31 #define S4G_VM_OP_ARIF_ERROR_TYPE1(tval1) \    32     sprintf(this->m_szError, "[%s]:%d - attempt to perform arithmetic on arg #1 (a '%s' value)", getCurrExeFile(), getCurrExeStr(), s4g_GetStrType(tval1->m_pData->m_TypeValue)); \    35 #define S4G_VM_OP_ARIF_ERROR_TYPE2(tval2) \    36     sprintf(this->m_szError, "[%s]:%d - attempt to perform arithmetic on arg #2 (a '%s' value)", getCurrExeFile(), getCurrExeStr(), s4g_GetStrType(tval2->m_pData->m_TypeValue)); \    39 #define S4G_VM_OP_ARIF_ERROR_UNSUN_UNRES(tval2) \    40     sprintf(this->m_szError, "[%s]:%d - unary symbol is unresolved to '%s' type", getCurrExeFile(), getCurrExeStr(), s4g_GetStrType(tval2->m_pData->m_TypeValue)); \    43 #define S4G_VM_OP_ARIF_INCR_DECR_ERR(tval) \    44     sprintf(this->m_szError, "[%s]:%d - expected number type, but got '%s' type", getCurrExeFile(), getCurrExeStr(), s4g_GetStrType(tval->m_pData->m_TypeValue)); \    47 #define S4G_VM_PRECOND_STACKEXE(state, retval) if(!state) return retval;    49 #define S4G_VM_PRECOND_COMMANDARG(arg, funcname) \    53     sprintf(this->m_szError, "[%s]:%d - argument of command is empty, vm function '%s'", getCurrExeFile(), getCurrExeStr(), funcname); \   120     void returnPrevState();
   123     bool precondStackExe(
int iCountExpected, 
const char *szFuncName);
   156     void comClassParentAdd();
   159     void comClassVarAdd();
   162     void comClassMethodAdd();
   169     void comTableInsert();
   172     void comTableAppend();
   196     void comArithmeticAdd();
   199     void comArithmeticSub();
   202     void comArithmeticMul();
   205     void comArithmeticDiv();
   208     void comArithmeticMod();
   218     void comJumpNonZero();
   275     void comTopContextClear();
   301     const char* getCurrExeFile(
char *szStr = 0);
   304     int getCurrExeStr(
char *szStr = 0);
   307     const char* getCurrExeFunc(
char *szStr = 0);
   310     const char* stackTrace();
   315     void setError(
const char *szStr);
   318     const char* getError();
   377     char m_szError[1024];   
 ID m_idContextNew
созданный контекст (id) 
Definition: s4g_vm.h:78
 
int getSizeStackExecute()
возвращает размер стека исполнения 
Definition: s4g_vm.h:339
 
int m_idCurrPos2ArrCommand
позиция в стеке исполняемых команд 
Definition: s4g_vm.h:76
 
S4G_TYPE getTypeLastCall()
возвращает тип последней исполняемой/исполненной функции 
Definition: s4g_vm.h:342
 
S4G_TYPE typeLastCallFunc
тип последней исполняемой/исполненной функции 
Definition: s4g_vm.h:353
 
сформированная команда, готовая к выполнению, возможно содерижит аргумент и дополнительную переменную...
Definition: s4g_types.h:497
 
s4g_Variable * m_pGvar
переменная хранящая в себе глобальное пространство имен 
Definition: s4g_vm.h:365
 
S4G_TYPE
все типы данных которые могут быть использованы в скриптах 
Definition: s4g.h:160
 
структура описывающая сохраненное предыдущее состояние при вызове функции и содержащее имя вызыванной...
Definition: s4g_vm.h:60
 
void popStackExecute(int iCount=1)
вытолкнуть со стека исполнения данные 
Definition: s4g_vm.h:333
 
s4g_Table * m_pTableVars
таблица с переменными (окружением) 
Definition: s4g_vm.h:75
 
s4g_Variable * getStackExecute(int iNum)
возвращает переменную со стека исполнения 
Definition: s4g_vm.h:336
 
s4g_Stack< s4g_Variable *, 64 > m_aStackArgs
стек аргументов вызванной в даннй момент Си функции 
Definition: s4g_vm.h:393
 
int m_iCountCurrOpenBlocks
количество текущих открытых блоков, именно текущих, потому что нужно их котролировать и внутри функци...
Definition: s4g_vm.h:391
 
s4g_Table * m_pCurrTable
текущее установленное пространство имен, если выполняется функция то пространство имен функции ...
Definition: s4g_vm.h:368
 
S4G_VM_LOCALEXE
локальное состоние работы машины 
Definition: s4g_vm.h:24
 
запуск функции (пвторный запуск уже запущенной машины), при этом машина после завершения функции зака...
Definition: s4g_vm.h:28
 
s4g_Stack< s4g_CallData * > m_aStackCall
стэк вызовов с сохраненным предыдущим состоянием 
Definition: s4g_vm.h:395
 
основной запуск 
Definition: s4g_vm.h:27
 
Заголовочный файл основы взаимодествия хоста со скриптами 
 
void pushStackExecute(s4g_Variable *pVar)
запихнуть в стек исполнения значение 
Definition: s4g_vm.h:330
 
таблица, наиболее распространенный тип в скриптах 
Definition: s4g_types.h:123
 
int m_iStackSize
размер стека исполнения 
Definition: s4g_vm.h:81
 
ID m_idContextLastDeactivated
поледний деактивированный контекст (id) 
Definition: s4g_vm.h:77
 
S4G_VM_COMMAND m_vm_command
текущая команда машины 
Definition: s4g_vm.h:381
 
String m_sStackTrace
строка для трассировки стека 
Definition: s4g_vm.h:374
 
выход, ожидает выхода 
Definition: s4g_vm.h:26
 
int getStackArgsSize()
возвращает количество аргументов вызываемой С++ функции 
Definition: s4g_vm.h:324
 
данные превызова функции 
Definition: s4g_vm.h:88
 
s4g_Variable * getArgFromStackArgs(int iNum)
возвращает аргумент из стека аргументов для вызываемой C++ функции, по номеру (1 ... N) 
Definition: s4g_vm.h:327
 
int m_iSizeStack
размер стека 
Definition: s4g_vm.h:94
 
s4g_Stack< s4g_Command > * m_pCurrArrCommand
команды выполнения 
Definition: s4g_vm.h:74
 
s4g_Stack< s4g_CallData * > m_aStackBloks
стэк блоков с сохраненным предыдущим состоянием 
Definition: s4g_vm.h:386
 
int m_iCountCurrOpenBlocks
количество открытых блоков 
Definition: s4g_vm.h:80
 
S4G_VM_COMMAND
команды виртуальной машины 
Definition: s4g_types.h:411
 
s4g_Stack< s4g_Command > * m_pCurrArrCommand
текущий указатель на стэк команд в исполнении 
Definition: s4g_vm.h:356
 
s4g_Table * m_pGtable
глобальное пространство имен _g. 
Definition: s4g_vm.h:362
 
s4g_Variable * m_pVar
переменная объекта которому принадлежит функция, в случае вызова метода класса, иначе 0...
Definition: s4g_vm.h:97
 
основа взаимодествия 
Definition: s4g_main.h:45
 
s4g_Stack< s4g_Variable *, S4G_VM_MAX_SIZE_STACK_EXE > m_oStackExecute
стек выполнения 
Definition: s4g_vm.h:371
 
s4g_Stack< s4g_PrecallData *, S4G_MAX_CALL+1 > m_aStackSizesStackExe
хранит размер стека исполнения на момент добавления значения 
Definition: s4g_vm.h:400
 
s4g_Variable * pVarCurrArg
аргумент текущей команды 
Definition: s4g_vm.h:382
 
переменная 
Definition: s4g_types.h:101
 
s4g_Command * m_pCurrCommand
текущая команда с данными 
Definition: s4g_vm.h:379
 
bool m_canExecute
можно ли выполнять код ( run при удачном запуске установит ее в true) 
Definition: s4g_vm.h:350
 
ID m_idContextExtern
подставляемый контекст для замыканий (id) 
Definition: s4g_vm.h:79
 
bool hasError()
установлена ли ошибка машине? 
Definition: s4g_vm.h:321
 
ID m_idCurrPos2ArrCommand
текущее положение в текущем стеке исполнения m_pCurrArrCommand. 
Definition: s4g_vm.h:359
 
MemAlloc< s4g_CallData, S4G_RESERVE_BLOCKS_MEM > m_oMemCallData
резерваци памяти для s4g_CallData. 
Definition: s4g_vm.h:402
 
s4g_Variable * m_pVarFunc
переменная со значением функции 
Definition: s4g_vm.h:82
 
виртуальная машина 
Definition: s4g_vm.h:104
 
Заголовочный файл с основными типами данных 
 
int m_iError
есть ли ошибка? -1 есть, остальное все в норме 
Definition: s4g_vm.h:376
 
размер всего массива команд 
Definition: s4g_types.h:481