|  | s4g
    0.9.2
    высокоуровневый, императивный, процедурный, встраиваемый, скриптовый язык программирования общего назначения, написанный на C++. | 
виртуальная машина Подробнее...
#include <s4g_vm.h>
| Открытые типы | |
| typedef void(s4g_VM::* | opfunc) () | 
| тип функции исполняющей байт код | |
| Открытые члены | |
| void | clear () | 
| очистка рабочих данных  Подробнее... | |
| int | run (s4g_Stack< s4g_Command > *pCommands, s4g_Table *pCurrTable) | 
| запуск работы машины с установкой стека команд и окружения, нулевые параметры установят предыдущие значения | |
| void | returnPrevState () | 
| возвращаем предыдущее состояние машины, в случае когда функция отработала все свои команды | |
| bool | precondStackExe (int iCountExpected, const char *szFuncName) | 
| проверка на наличие необходимого количества элементов в стеке исполнения iCountExpected, если нет тогда выдаем ошибку | |
| const char * | getCurrExeFile (char *szStr=0) | 
| возвращает текущий файл код которого выполняется | |
| int | getCurrExeStr (char *szStr=0) | 
| возвращает текущий номер строки в файле код которого выполняется | |
| const char * | getCurrExeFunc (char *szStr=0) | 
| возвращает текущию функцию которая выполняется | |
| const char * | stackTrace () | 
| возвращает строку с трассировкой стека | |
| void | setError (const char *szStr) | 
| установка текста ошибки, прекращение работы машины | |
| const char * | getError () | 
| возвращает текст ошибки | |
| bool | hasError () | 
| установлена ли ошибка машине? | |
| int | getStackArgsSize () | 
| возвращает количество аргументов вызываемой С++ функции | |
| s4g_Variable * | getArgFromStackArgs (int iNum) | 
| возвращает аргумент из стека аргументов для вызываемой C++ функции, по номеру (1 ... N) | |
| void | pushStackExecute (s4g_Variable *pVar) | 
| запихнуть в стек исполнения значение | |
| void | popStackExecute (int iCount=1) | 
| вытолкнуть со стека исполнения данные | |
| s4g_Variable * | getStackExecute (int iNum) | 
| возвращает переменную со стека исполнения | |
| int | getSizeStackExecute () | 
| возвращает размер стека исполнения | |
| S4G_TYPE | getTypeLastCall () | 
| возвращает тип последней исполняемой/исполненной функции | |
| Функции для исполнения байт кода | |
| void | comObjectNew () | 
| S4G_VM_COMMAND_OBJECT_NEW | |
| void | comVarNew () | 
| S4G_VM_COMMAND_VAR_NEW | |
| void | comFetch () | 
| S4G_VM_COMMAND_FETCH | |
| void | comFetchIdx () | 
| S4G_VM_COMMAND_FETCH_IDX | |
| void | comAccess () | 
| S4G_VM_COMMAND_ACCESS | |
| void | comStore () | 
| S4G_VM_COMMAND_STORE | |
| void | comArrayNew () | 
| S4G_VM_COMMAND_ARRAY_NEW | |
| void | comClassNew () | 
| S4G_VM_COMMAND_CLASS_NEW | |
| void | comClassParentAdd () | 
| S4G_VM_COMMAND_CLASS_PARENT_ADD | |
| void | comClassVarAdd () | 
| S4G_VM_COMMAND_CLASS_VAR_ADD | |
| void | comClassMethodAdd () | 
| S4G_VM_COMMAND_CLASS_METHOD_ADD | |
| void | comTableNew () | 
| S4G_VM_COMMAND_TABLE_NEW | |
| void | comTableInsert () | 
| S4G_VM_COMMAND_TABLE_INSERT | |
| void | comTableAppend () | 
| S4G_VM_COMMAND_TABLE_APPEND | |
| void | comHalt () | 
| S4G_VM_COMMAND_HALT | |
| void | comDoubleTop () | 
| S4G_VM_COMMAND_DOUBLE_TOP | |
| void | comPush () | 
| S4G_VM_COMMAND_PUSH | |
| void | comPop () | 
| S4G_VM_COMMAND_POP | |
| void | comPrecall () | 
| S4G_VM_COMMAND_PRECALL | |
| void | comCall () | 
| S4G_VM_COMMAND_CALL | |
| void | comArithmeticAdd () | 
| S4G_VM_COMMAND_ARITHMETIC_ADD | |
| void | comArithmeticSub () | 
| S4G_VM_COMMAND_ARITHMETIC_SUB | |
| void | comArithmeticMul () | 
| S4G_VM_COMMAND_ARITHMETIC_MUL | |
| void | comArithmeticDiv () | 
| S4G_VM_COMMAND_ARITHMETIC_DIV | |
| void | comArithmeticMod () | 
| #S4G_VM_COMMAND_ARITHMETIC_MOD | |
| void | comJump () | 
| S4G_VM_COMMAND_JUMP | |
| void | comJumpZero () | 
| S4G_VM_COMMAND_JZ | |
| void | comJumpNonZero () | 
| S4G_VM_COMMAND_JNZ | |
| void | comLogicNeqt () | 
| S4G_VM_COMMAND_LOGIC_NEQT | |
| void | comLogicEq () | 
| S4G_VM_COMMAND_LOGIC_EQ | |
| void | comLogicNeq () | 
| S4G_VM_COMMAND_LOGIC_NEQ | |
| void | comLogicGe () | 
| S4G_VM_COMMAND_LOGIC_GE | |
| void | comLogicLe () | 
| S4G_VM_COMMAND_LOGIC_LE | |
| void | comLogicGt () | 
| S4G_VM_COMMAND_LOGIC_GT | |
| void | comLogicLt () | 
| S4G_VM_COMMAND_LOGIC_LT | |
| void | comLogicNot () | 
| S4G_VM_COMMAND_LOGIC_NOT | |
| void | comLogicEqt () | 
| S4G_VM_COMMAND_LOGIC_EQT | |
| void | comBitXor () | 
| #S4G_VM_COMMAND_BIT_XOR | |
| void | comBitNot () | 
| #S4G_VM_COMMAND_BIT_NOT | |
| void | comBitShiftR () | 
| #S4G_VM_COMMAND_BIT_SHIFTR | |
| void | comBitShiftL () | 
| #S4G_VM_COMMAND_BIT_SHIFTL | |
| void | comBitAnd () | 
| #S4G_VM_COMMAND_BIT_AND | |
| void | comBitOr () | 
| #S4G_VM_COMMAND_BIT_OR | |
| void | comBlockNew () | 
| S4G_VM_COMMAND_BLOCK_NEW | |
| void | comBlockDel () | 
| S4G_VM_COMMAND_BLOCK_DEL | |
| void | comTopContextClear () | 
| S4G_VM_COMMAND_TOPCONTEXT_CLEAR | |
| void | comPreincr () | 
| S4G_VM_COMMAND_PREINCR | |
| void | comPostincr () | 
| S4G_VM_COMMAND_POSTINCR | |
| void | comPredecr () | 
| S4G_VM_COMMAND_PREDECR | |
| void | comPostdecr () | 
| S4G_VM_COMMAND_POSTDECR | |
| Открытые атрибуты | |
| opfunc | m_aOpFunc [S4G_VM_COMMAND_LAST] | 
| массив функций исполняющих байт код (сделано для быстрого доступа) | |
| Защищенные данные | |
| bool | m_canExecute | 
| можно ли выполнять код ( run при удачном запуске установит ее в true) | |
| S4G_TYPE | typeLastCallFunc | 
| тип последней исполняемой/исполненной функции | |
| s4g_Stack< s4g_Command > * | m_pCurrArrCommand | 
| текущий указатель на стэк команд в исполнении | |
| ID | m_idCurrPos2ArrCommand | 
| текущее положение в текущем стеке исполнения m_pCurrArrCommand. | |
| s4g_Table * | m_pGtable | 
| глобальное пространство имен _g. | |
| s4g_Variable * | m_pGvar | 
| переменная хранящая в себе глобальное пространство имен | |
| s4g_Table * | m_pCurrTable | 
| текущее установленное пространство имен, если выполняется функция то пространство имен функции | |
| s4g_Stack< s4g_Variable *, S4G_VM_MAX_SIZE_STACK_EXE > | m_oStackExecute | 
| стек выполнения | |
| String | m_sStackTrace | 
| строка для трассировки стека | |
| int | m_iError | 
| есть ли ошибка? -1 есть, остальное все в норме | |
| char | m_szError [1024] | 
| строка ошибки | |
| s4g_Command * | m_pCurrCommand | 
| текущая команда с данными | |
| S4G_VM_COMMAND | m_vm_command | 
| текущая команда машины | |
| s4g_Variable * | pVarCurrArg | 
| аргумент текущей команды | |
| s4g_Stack< s4g_CallData * > | m_aStackBloks | 
| стэк блоков с сохраненным предыдущим состоянием | |
| int | m_iCountCurrOpenBlocks | 
| количество текущих открытых блоков, именно текущих, потому что нужно их котролировать и внутри функции | |
| s4g_Stack< s4g_Variable *, 64 > | m_aStackArgs | 
| стек аргументов вызванной в даннй момент Си функции | |
| s4g_Stack< s4g_CallData * > | m_aStackCall | 
| стэк вызовов с сохраненным предыдущим состоянием | |
| s4g_Stack< s4g_PrecallData *, S4G_MAX_CALL+1 > | m_aStackSizesStackExe | 
| хранит размер стека исполнения на момент добавления значения  Подробнее... | |
| MemAlloc< s4g_CallData, S4G_RESERVE_BLOCKS_MEM > | m_oMemCallData | 
| резерваци памяти для s4g_CallData. | |
виртуальная машина
| void s4g_VM::clear | ( | ) | 
очистка рабочих данных
| 
 | protected | 
хранит размер стека исполнения на момент добавления значения