| CTPP2Compiler.hpp | | CTPP2Compiler.hpp | |
| | | | |
| skipping to change at line 190 | | skipping to change at line 190 | |
| @param iArgNum - number of arguments | | @param iArgNum - number of arguments | |
| @param oDebugInfo - debug information object | | @param oDebugInfo - debug information object | |
| @return instruction pointer if success, -1 if any error occured | | @return instruction pointer if success, -1 if any error occured | |
| */ | | */ | |
| INT_32 ExecuteSyscall(CCHAR_P szSyscallName, | | INT_32 ExecuteSyscall(CCHAR_P szSyscallName, | |
| const UINT_32 iSyscallNameLength, | | const UINT_32 iSyscallNameLength, | |
| const UINT_32 iArgNum, | | const UINT_32 iArgNum, | |
| const VMDebugInfo & oDebugInfo = VMDebugInfo(
)); | | const VMDebugInfo & oDebugInfo = VMDebugInfo(
)); | |
| | | | |
| /** | | /** | |
|
| | | @brief Prepare before push hash or array variable | |
| | | @param oDebugInfo - debug information object | |
| | | @return instruction pointer if success, -1 if any error occured | |
| | | */ | |
| | | INT_32 PreparePushComplexVariable(const VMDebugInfo & oDebugInfo); | |
| | | | |
| | | /** | |
| | | @brief Clear after push hash or array variable | |
| | | @param oDebugInfo - debug information object | |
| | | @return instruction pointer if success, -1 if any error occured | |
| | | */ | |
| | | INT_32 ClearPushComplexVariable(const VMDebugInfo & oDebugInfo); | |
| | | | |
| | | /** | |
| @brief Push variable into stack | | @brief Push variable into stack | |
| @param szVariableName - variable name | | @param szVariableName - variable name | |
| @param iVariableNameLength - Length of variable name | | @param iVariableNameLength - Length of variable name | |
| @param oDebugInfo - debug information object | | @param oDebugInfo - debug information object | |
| @return instruction pointer if success, -1 if any error occured | | @return instruction pointer if success, -1 if any error occured | |
| */ | | */ | |
| INT_32 PushVariable(CCHAR_P szVariableName, | | INT_32 PushVariable(CCHAR_P szVariableName, | |
| const UINT_32 iVariableNameLength, | | const UINT_32 iVariableNameLength, | |
| const VMDebugInfo & oDebugInfo = VMDebugInfo())
; | | const VMDebugInfo & oDebugInfo = VMDebugInfo())
; | |
| | | | |
| | | | |
| skipping to change at line 411 | | skipping to change at line 425 | |
| const UINT_32 iNSLength, | | const UINT_32 iNSLength, | |
| const VMDebugInfo & oDebugInfo); | | const VMDebugInfo & oDebugInfo); | |
| | | | |
| /** | | /** | |
| @brief Push variable into stack | | @brief Push variable into stack | |
| @param szNS - namespace | | @param szNS - namespace | |
| @param iNSLength - namespace length | | @param iNSLength - namespace length | |
| @param szVariableName - variable name | | @param szVariableName - variable name | |
| @param iVariableNameLength - variable name length | | @param iVariableNameLength - variable name length | |
| @param oDebugInfo - debug information object | | @param oDebugInfo - debug information object | |
|
| | | @param bNoPushVariable - don't push variable, but return 0 | |
| @return instruction pointer if success, -1 if any error occured | | @return instruction pointer if success, -1 if any error occured | |
| */ | | */ | |
| INT_32 PushScopedVariable(CCHAR_P szNS, | | INT_32 PushScopedVariable(CCHAR_P szNS, | |
| const UINT_32 iNSLength, | | const UINT_32 iNSLength, | |
| CCHAR_P szName, | | CCHAR_P szName, | |
| const UINT_32 iNameLength, | | const UINT_32 iNameLength, | |
| CCHAR_P szFullVariable, | | CCHAR_P szFullVariable, | |
| const UINT_32 iFullVariableLength, | | const UINT_32 iFullVariableLength, | |
|
| const VMDebugInfo & oDebugInfo); | | const VMDebugInfo & oDebugInfo, | |
| | | bool bNoPushVariable); | |
| | | | |
| /** | | /** | |
| @brief Push variable on stack into stack | | @brief Push variable on stack into stack | |
| @param iStackPos - stack position | | @param iStackPos - stack position | |
| @param oDebugInfo - debug information object | | @param oDebugInfo - debug information object | |
| @return instruction pointer if success, -1 if any error occured | | @return instruction pointer if success, -1 if any error occured | |
| */ | | */ | |
| INT_32 PushStackVariable(const INT_32 iStackPos, | | INT_32 PushStackVariable(const INT_32 iStackPos, | |
| const VMDebugInfo & oDebugInfo = VMDebugIn
fo()); | | const VMDebugInfo & oDebugInfo = VMDebugIn
fo()); | |
| | | | |
| /** | | /** | |
|
| | | @brief Indirect hash call | |
| | | @param oDebugInfo - debug information object | |
| | | @return instruction pointer if success, -1 if any error occured | |
| | | */ | |
| | | INT_32 IndirectHashCall(const VMDebugInfo & oDebugInfo); | |
| | | | |
| | | /** | |
| | | @brief Indirect array call | |
| | | @param oDebugInfo - debug information object | |
| | | @return instruction pointer if success, -1 if any error occured | |
| | | */ | |
| | | INT_32 IndirectArrayCall(const VMDebugInfo & oDebugInfo); | |
| | | | |
| | | /** | |
| @brief Unconditional jump | | @brief Unconditional jump | |
| @param iIP - new instruction pointer | | @param iIP - new instruction pointer | |
| @param oDebugInfo - debug information object | | @param oDebugInfo - debug information object | |
| @return instruction pointer if success, -1 if any error occured | | @return instruction pointer if success, -1 if any error occured | |
| */ | | */ | |
| INT_32 UncondJump(const UINT_32 iIP, | | INT_32 UncondJump(const UINT_32 iIP, | |
| const VMDebugInfo & oDebugInfo = VMDebugInfo()); | | const VMDebugInfo & oDebugInfo = VMDebugInfo()); | |
| /** | | /** | |
| @brief Jump if NOT Equal | | @brief Jump if NOT Equal | |
| @param iIP - new instruction pointer | | @param iIP - new instruction pointer | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 31 lines changed or added | |
|
| CTPP2Parser.hpp | | CTPP2Parser.hpp | |
| | | | |
| skipping to change at line 245 | | skipping to change at line 245 | |
| IncludeMapType oParamTranslationMap; | | IncludeMapType oParamTranslationMap; | |
| | | | |
| /** Template source name */ | | /** Template source name */ | |
| STLW::string sSourceName; | | STLW::string sSourceName; | |
| /** Template source name ID */ | | /** Template source name ID */ | |
| UINT_32 iSourceNameId; | | UINT_32 iSourceNameId; | |
| /** Foreach flag */ | | /** Foreach flag */ | |
| bool bInForeach; | | bool bInForeach; | |
| /** Recursion level */ | | /** Recursion level */ | |
| INT_32 iRecursionLevel; | | INT_32 iRecursionLevel; | |
|
| | | /** Complex variable flag */ | |
| | | bool bInsideComplexVariable; | |
| | | /** No push variable on stack */ | |
| | | bool bNoPushVariable; | |
| | | /** No map variable */ | |
| | | bool bNoMapVariable; | |
| | | | |
| // Simple tokens: open and close tags, operators, variables, strings
and numbers //////////////////////////////////////////////////////////////
//////////////////// | | // Simple tokens: open and close tags, operators, variables, strings
and numbers //////////////////////////////////////////////////////////////
//////////////////// | |
| | | | |
| /** | | /** | |
| @brief Open tag ([Tt][Mm][Pp][Ll]) | | @brief Open tag ([Tt][Mm][Pp][Ll]) | |
| @param szData - current stream position | | @param szData - current stream position | |
| @param szEnd - end of stream position | | @param szEnd - end of stream position | |
| @return NULL if sequence not found or pointer to end of sequence | | @return NULL if sequence not found or pointer to end of sequence | |
| */ | | */ | |
| CCharIterator IsOpenTag(CCharIterator szData, CCharIterator szEnd); | | CCharIterator IsOpenTag(CCharIterator szData, CCharIterator szEnd); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 6 lines changed or added | |
|
| CTPP2VMOpcodes.h | | CTPP2VMOpcodes.h | |
| | | | |
| skipping to change at line 100 | | skipping to change at line 100 | |
| // String ops. ///////// 0x-3X----- ///////////////////////////////////////
///////////////////////// | | // String ops. ///////// 0x-3X----- ///////////////////////////////////////
///////////////////////// | |
| #define CONCAT 0x03100000 // Concatenate strings | | #define CONCAT 0x03100000 // Concatenate strings | |
| | | | |
| // Register ops. /////// 0x-4------ ///////////////////////////////////////
////////////////////////// | | // Register ops. /////// 0x-4------ ///////////////////////////////////////
////////////////////////// | |
| #define MOV 0x04010000 // Move value (register-to-register and
stack-to-register) | | #define MOV 0x04010000 // Move value (register-to-register and
stack-to-register) | |
| #define MOVIINT 0x04020000 // Move indirect ARRAY to register | | #define MOVIINT 0x04020000 // Move indirect ARRAY to register | |
| #define MOVISTR 0x04030000 // Move indirect HASH to register | | #define MOVISTR 0x04030000 // Move indirect HASH to register | |
| #define IMOVINT 0x04040000 // Move register to indirect ARRAY | | #define IMOVINT 0x04040000 // Move register to indirect ARRAY | |
| #define IMOVSTR 0x04050000 // Move register to indirect HASH | | #define IMOVSTR 0x04050000 // Move register to indirect HASH | |
| #define MOVSIZE 0x04060000 // Move size of array or hash to regist
er | | #define MOVSIZE 0x04060000 // Move size of array or hash to regist
er | |
|
| #define MOVIREG 0x04070000 // Move indirect ARRAY from REGISTER po | | #define MOVIREGI 0x04070000 // Move indirect ARRAY from REGISTER po | |
| inted by REGISTER to another register | | inted by REGISTER to another register | |
| | | #define MOVIREGS 0x04080000 // Move indirect HASH from REGISTER poi | |
| | | nted by REGISTER to another register | |
| | | | |
| // Comparison ops. ///// 0x-5-X---- ///////////////////////////////////////
/////////////////////////// | | // Comparison ops. ///// 0x-5-X---- ///////////////////////////////////////
/////////////////////////// | |
| #define CMP 0x05010000 // Compare values, arithmetic | | #define CMP 0x05010000 // Compare values, arithmetic | |
| #define SCMP 0x05020000 // Compare values, strging | | #define SCMP 0x05020000 // Compare values, strging | |
| | | | |
| // Comparison flags //// 0x000X0000 ///////////////////////////////////////
/////////////////////////// | | // Comparison flags //// 0x000X0000 ///////////////////////////////////////
/////////////////////////// | |
| #define FL_NE 0x00010000 // Not Equal, NO flags | | #define FL_NE 0x00010000 // Not Equal, NO flags | |
| #define FL_EQ 0x00020000 // Equal | | #define FL_EQ 0x00020000 // Equal | |
| #define FL_LT 0x00040000 // Less | | #define FL_LT 0x00040000 // Less | |
| #define FL_GT 0x00080000 // Greater | | #define FL_GT 0x00080000 // Greater | |
| | | | |
| skipping to change at line 143 | | skipping to change at line 144 | |
| #define RJGE (RJG | RJE) // Jump if >= | | #define RJGE (RJG | RJE) // Jump if >= | |
| | | | |
| #define RJEVEN (RJXX | FL_PF) // Jump if Result is Even | | #define RJEVEN (RJXX | FL_PF) // Jump if Result is Even | |
| #define RJODD (RJXX | FL_NPF) // Jump if Result is ODD | | #define RJODD (RJXX | FL_NPF) // Jump if Result is ODD | |
| | | | |
| // Other ops. ////////// 0x-8-X---- ///////////////////////////////////////
///////////////////////// | | // Other ops. ////////// 0x-8-X---- ///////////////////////////////////////
///////////////////////// | |
| #define CLEAR 0x08010000 // Clear register | | #define CLEAR 0x08010000 // Clear register | |
| #define OUTPUT 0x08020000 // Direct output a value to output coll
ector | | #define OUTPUT 0x08020000 // Direct output a value to output coll
ector | |
| #define REPLACE 0x08030000 // Replace variable in stack or registe
r | | #define REPLACE 0x08030000 // Replace variable in stack or registe
r | |
| #define EXIST 0x08040000 // Check existence of operand | | #define EXIST 0x08040000 // Check existence of operand | |
|
| | | #define REPLINT 0x08050000 // Replace ARRAY variable in stack with | |
| | | it's element | |
| | | #define REPLSTR 0x08060000 // Replace HASH variable in stack with | |
| | | it's element | |
| | | #define XCHG 0x08070000 // Swap 2 values | |
| | | #define DEFINED 0x08080000 // check undef value | |
| | | | |
| // Sources ///////////// 0x-------X ///////////////////////////////////////
/////////////////////////// | | // Sources ///////////// 0x-------X ///////////////////////////////////////
/////////////////////////// | |
| #define ARG_SRC_AR 0x00000000 // AR is source register | | #define ARG_SRC_AR 0x00000000 // AR is source register | |
| #define ARG_SRC_BR 0x00000001 // BR is source register | | #define ARG_SRC_BR 0x00000001 // BR is source register | |
| #define ARG_SRC_CR 0x00000002 // CR is source register | | #define ARG_SRC_CR 0x00000002 // CR is source register | |
| #define ARG_SRC_DR 0x00000003 // DR is source register | | #define ARG_SRC_DR 0x00000003 // DR is source register | |
| #define ARG_SRC_ER 0x00000004 // ER is source register | | #define ARG_SRC_ER 0x00000004 // ER is source register | |
| #define ARG_SRC_FR 0x00000005 // FR is source register | | #define ARG_SRC_FR 0x00000005 // FR is source register | |
| #define ARG_SRC_GR 0x00000006 // GR is source register | | #define ARG_SRC_GR 0x00000006 // GR is source register | |
| #define ARG_SRC_HR 0x00000007 // HR is source register | | #define ARG_SRC_HR 0x00000007 // HR is source register | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 10 lines changed or added | |
|