| CTPP2Parser.hpp | | CTPP2Parser.hpp | |
| | | | |
| skipping to change at line 84 | | skipping to change at line 84 | |
| const INT_32 iIRecursionLevel = 0); | | const INT_32 iIRecursionLevel = 0); | |
| | | | |
| /** | | /** | |
| @brief Compile CTPP2 template | | @brief Compile CTPP2 template | |
| @param iHalt - if set to 1, add to end of code HLT instruction | | @param iHalt - if set to 1, add to end of code HLT instruction | |
| @return 0 if success, -1 if any error occured | | @return 0 if success, -1 if any error occured | |
| */ | | */ | |
| INT_32 Compile(const UINT_32 & iHalt = 1); | | INT_32 Compile(const UINT_32 & iHalt = 1); | |
| | | | |
| /** | | /** | |
|
| @brief Set parameter names translation map | | | |
| @param oIParamTranslationMap - translation map | | | |
| */ | | | |
| void SetParamMap(const IncludeMapType & oIParamTranslationMap); | | | |
| | | | |
| /** | | | |
| @brief A destructor | | @brief A destructor | |
| */ | | */ | |
| ~CTPP2Parser() throw(); | | ~CTPP2Parser() throw(); | |
| private: | | private: | |
| typedef STLW::map<STLW::string, UINT_32> BlockArgMapType; | | typedef STLW::map<STLW::string, UINT_32> BlockArgMapType; | |
| | | | |
| typedef STLW::map<STLW::string, UINT_32> BlockArgSizeMapType; | | typedef STLW::map<STLW::string, UINT_32> BlockArgSizeMapType; | |
| | | | |
| enum eCTPP2Operator { UNDEF = 0, | | enum eCTPP2Operator { UNDEF = 0, | |
| TMPL_var = 1, | | TMPL_var = 1, | |
| TMPL_if = 2, | | TMPL_if = 2, | |
| TMPL_unless = 3, | | TMPL_unless = 3, | |
| TMPL_else = 4, | | TMPL_else = 4, | |
| TMPL_elsif = 5, | | TMPL_elsif = 5, | |
|
| TMPL_loop = 6, | | // TMPL_loop = 6, // Obsolete | |
| TMPL_foreach = 7, | | TMPL_foreach = 7, | |
| TMPL_include = 8, | | TMPL_include = 8, | |
| TMPL_call = 9, | | TMPL_call = 9, | |
| TMPL_udf = 10, | | TMPL_udf = 10, | |
| TMPL_comment = 11, | | TMPL_comment = 11, | |
| TMPL_break = 12, | | TMPL_break = 12, | |
| TMPL_block = 13, | | TMPL_block = 13, | |
| TMPL_verbose = 14 }; | | TMPL_verbose = 14 }; | |
| | | | |
| enum eCTPP2ExprOperator { EXPR_UNDEF = 0, | | enum eCTPP2ExprOperator { EXPR_UNDEF = 0, | |
| | | | |
| skipping to change at line 166 | | skipping to change at line 160 | |
| CCHAR_P keyword; | | CCHAR_P keyword; | |
| /** keyword length */ | | /** keyword length */ | |
| UINT_32 keyword_length; | | UINT_32 keyword_length; | |
| /** keyword corresponding operator */ | | /** keyword corresponding operator */ | |
| eCTPP2Operator keyword_operator; | | eCTPP2Operator keyword_operator; | |
| }; | | }; | |
| /** Keywords table */ | | /** Keywords table */ | |
| static CTPP2Keyword aKeywords[]; | | static CTPP2Keyword aKeywords[]; | |
| | | | |
| /** | | /** | |
|
| @class CTPP2LoopKeyword CTPP2Parser.hpp <CTPP2Parser.hpp> | | | |
| @brief CTPP2 reserverd words for loops | | | |
| */ | | | |
| struct CTPP2LoopKeyword | | | |
| { | | | |
| /** keyword */ | | | |
| CCHAR_P keyword; | | | |
| /** keyword length */ | | | |
| UINT_32 keyword_length; | | | |
| /** keyword corresponding operator */ | | | |
| UINT_32 keyword_operator; | | | |
| }; | | | |
| | | | |
| /** Loop modifiers */ | | | |
| static CTPP2LoopKeyword aLoopKeywords []; | | | |
| | | | |
| /** | | | |
| @struct CTPP2Relation CTPP2Parser.hpp <CTPP2Parser.hpp> | | @struct CTPP2Relation CTPP2Parser.hpp <CTPP2Parser.hpp> | |
| @brief CTPP2 Relation | | @brief CTPP2 Relation | |
| */ | | */ | |
| struct CTPP2Relation | | struct CTPP2Relation | |
| { | | { | |
| /** keyword */ | | /** keyword */ | |
| CCHAR_P keyword; | | CCHAR_P keyword; | |
| /** keyword length */ | | /** keyword length */ | |
| UINT_32 keyword_length; | | UINT_32 keyword_length; | |
| /** keyword corresponding operator */ | | /** keyword corresponding operator */ | |
| eCTPP2Relation keyword_operator; | | eCTPP2Relation keyword_operator; | |
| }; | | }; | |
| | | | |
| /** Relations */ | | /** Relations */ | |
| static CTPP2Relation aCTPP2Relations []; | | static CTPP2Relation aCTPP2Relations []; | |
| | | | |
|
| /** | | | |
| @struct CTPP2LoopContextVar CTPP2Parser.hpp <CTPP2Parser.hpp> | | | |
| @brief CTPP2 Loop context variable | | | |
| */ | | | |
| struct CTPP2LoopContextVar | | | |
| { | | | |
| /** keyword */ | | | |
| CCHAR_P keyword; | | | |
| /** keyword length */ | | | |
| UINT_32 keyword_length; | | | |
| /** keyword corresponding operator */ | | | |
| eCTPP2LoopContextVar keyword_operator; | | | |
| }; | | | |
| | | | |
| /** Loop context variable */ | | | |
| static CTPP2LoopContextVar aLoopContextVars []; | | | |
| | | | |
| /** Current operator */ | | /** Current operator */ | |
| eCTPP2Operator eBreakFound; | | eCTPP2Operator eBreakFound; | |
| | | | |
| /** Temp. buffer */ | | /** Temp. buffer */ | |
| STLW::string sTMPBuf; | | STLW::string sTMPBuf; | |
| /** Parsed integer value */ | | /** Parsed integer value */ | |
| INT_64 iIntData; | | INT_64 iIntData; | |
| /** Parsed floating value */ | | /** Parsed floating value */ | |
| W_FLOAT dFloatData; | | W_FLOAT dFloatData; | |
| /** Type of parsed value */ | | /** Type of parsed value */ | |
| | | | |
| skipping to change at line 239 | | skipping to change at line 199 | |
| CTPP2SourceLoader * pSourceLoader; | | CTPP2SourceLoader * pSourceLoader; | |
| /** Compiler */ | | /** Compiler */ | |
| CTPP2Compiler * pCTPP2Compiler; | | CTPP2Compiler * pCTPP2Compiler; | |
| /** Syscalls */ | | /** Syscalls */ | |
| StaticText & oSyscalls; | | StaticText & oSyscalls; | |
| /** Static data segment */ | | /** Static data segment */ | |
| StaticData & oStaticData; | | StaticData & oStaticData; | |
| /** Static text segment */ | | /** Static text segment */ | |
| StaticText & oStaticText; | | StaticText & oStaticText; | |
| | | | |
|
| /** Translation map */ | | | |
| 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 */ | | /** Complex variable flag */ | |
| bool bInsideComplexVariable; | | bool bInsideComplexVariable; | |
|
| /** No push variable on stack */ | | | |
| bool bNoPushVariable; | | | |
| /** No map variable */ | | | |
| bool bNoMapVariable; | | | |
| /** enable/disable verbose mode */ | | /** enable/disable verbose mode */ | |
| bool bVerboseMode; | | bool bVerboseMode; | |
| /** Block flag */ | | /** Block flag */ | |
| bool bInBlock; | | bool bInBlock; | |
| /** Current block arguments */ | | /** Current block arguments */ | |
| BlockArgMapType mCurrentBlock; | | BlockArgMapType mCurrentBlock; | |
| /** Map of number of arguments of blocks */ | | /** Map of number of arguments of blocks */ | |
| BlockArgSizeMapType mBlockArgSizes; | | BlockArgSizeMapType mBlockArgSizes; | |
| | | | |
|
| | | /** JMP points for TMPL_break */ | |
| | | STLW::vector<STLW::vector<INT_32> > vBreakJMPPoints; | |
| | | | |
| // 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); | |
| | | | |
| /** | | /** | |
| @brief Close tag (/[Tt][Mm][Pp][Ll]) | | @brief Close 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 IsCloseTag(CCharIterator szData, CCharIterator szEnd); | | CCharIterator IsCloseTag(CCharIterator szData, CCharIterator szEnd); | |
| | | | |
| /** | | /** | |
|
| @brief Operator (var | if | else | unless | loop | foreach | udf |
comment | call | break) | | @brief Operator (var | if | else | unless | foreach | udf | commen
t | call | break) | |
| @param szData - current stream position | | @param szData - current stream position | |
| @param szEnd - end of stream position | | @param szEnd - end of stream position | |
| @param oOperatorType - operator type | | @param oOperatorType - operator type | |
| @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 IsOperator(CCharIterator szData, CCharIterator szEnd,
eCTPP2Operator & oOperatorType); | | CCharIterator IsOperator(CCharIterator szData, CCharIterator szEnd,
eCTPP2Operator & oOperatorType); | |
| | | | |
| /** | | /** | |
| @brief Function [a-zA-Z_][a-zA-Z0-9_]( Expr [, Expr2 ... ] ) | | @brief Function [a-zA-Z_][a-zA-Z0-9_]( Expr [, Expr2 ... ] ) | |
| @param szData - current stream position | | @param szData - current stream position | |
| | | | |
| skipping to change at line 335 | | skipping to change at line 291 | |
| | | | |
| /** | | /** | |
| @brief CTPP2 string "blah-blah \" clah-clah " | 'blah-blah \' clah
-clah ' | | @brief CTPP2 string "blah-blah \" clah-clah " | 'blah-blah \' clah
-clah ' | |
| @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 IsString(CCharIterator szData, CCharIterator szEnd); | | CCharIterator IsString(CCharIterator szData, CCharIterator szEnd); | |
| | | | |
| /** | | /** | |
|
| @brief CTPP2 old fashion string blah-blah.clah-clah | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @return NULL if sequence not found or pointer to end of sequenc | | | |
| */ | | | |
| CCharIterator IsStringCompatOldVersion(CCharIterator szData, CCharIt | | | |
| erator szEnd); | | | |
| | | | |
| /** | | | |
| @brief Number [-]0-9[. [0-9] ] [E [+-] 0-9] | | @brief Number [-]0-9[. [0-9] ] [E [+-] 0-9] | |
| @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 IsNum(CCharIterator szData, CCharIterator szEnd); | | CCharIterator IsNum(CCharIterator szData, CCharIterator szEnd); | |
| | | | |
| /** | | /** | |
| @brief Parse Float value | | @brief Parse Float value | |
| @param szData - current stream position | | @param szData - current stream position | |
| @param szEnd - end of stream position | | @param szEnd - end of stream position | |
| */ | | */ | |
| void ParseFloat(CCharIterator & szData, CCharIterator & szEnd); | | void ParseFloat(CCharIterator & szData, CCharIterator & szEnd); | |
| | | | |
| /** | | /** | |
|
| @brief CTPP2 Loop contextual variable (__first__ | __last__ | __in | | | |
| ner__ | __odd__ | __even__ | __counter__ | __size__ ) | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @param eContextVariable - contextual variable that was found | | | |
| @return NULL if sequence not found or pointer to end of sequence | | | |
| */ | | | |
| CCharIterator IsContextVar(CCharIterator szData, CCharIterator szEnd | | | |
| , eCTPP2LoopContextVar & eContextVariable); | | | |
| | | | |
| /** | | | |
| @brief Loop operator keyword (__global_vars__ | __context_vars__ | | | | |
| __no_global_vars__ | __no_context_vars__ ) | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @param iLoopKeyword - keyword name | | | |
| @return NULL if sequence not found or pointer to end of sequence | | | |
| */ | | | |
| CCharIterator IsLoopKeyword(CCharIterator szData, CCharIterator szEn | | | |
| d, UINT_32 & iLoopKeyword); | | | |
| | | | |
| /** | | | |
| @brief Foreach operator keyword (as) | | @brief Foreach operator keyword (as) | |
| @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 IsForeachKeyword(CCharIterator szData, CCharIterator s
zEnd); | | CCharIterator IsForeachKeyword(CCharIterator szData, CCharIterator s
zEnd); | |
| | | | |
| /** | | /** | |
| @brief White space (Tab | ' ') | | @brief White space (Tab | ' ') | |
| @param szData - current stream position | | @param szData - current stream position | |
| | | | |
| skipping to change at line 523 | | skipping to change at line 453 | |
| /** | | /** | |
| @brief CTPP2 reverse branch expression; <TMPL_unless UnlessExpr
> | | @brief CTPP2 reverse branch expression; <TMPL_unless UnlessExpr
> | |
| @param szData - current stream position | | @param szData - current stream position | |
| @param szEnd - end of stream position | | @param szEnd - end of stream position | |
| @param eResultOperator - Result operand of expression | | @param eResultOperator - Result operand of expression | |
| @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 IsUnlessExpr(CCharIterator szData, CCharIterator szEnd
, eCTPP2ExprOperator & eResultOperator); | | CCharIterator IsUnlessExpr(CCharIterator szData, CCharIterator szEnd
, eCTPP2ExprOperator & eResultOperator); | |
| | | | |
| /** | | /** | |
|
| @brief CTPP2 loop expression; <TMPL_loop LoopExpr> | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @param iRetPoint - return point instruction number [out] | | | |
| @return NULL if sequence not found or pointer to end of sequence | | | |
| */ | | | |
| CCharIterator IsLoopExpr(CCharIterator szData, CCharIterator szEnd, | | | |
| UINT_32 & iRetPoint); | | | |
| | | | |
| /** | | | |
| @brief Foreach expression <TMPL_loop ForeachExpr> | | @brief Foreach expression <TMPL_loop ForeachExpr> | |
| @param szData - current stream position | | @param szData - current stream position | |
| @param szEnd - end of stream position | | @param szEnd - end of stream position | |
| @param iRetPoint - return point instruction number [out] | | @param iRetPoint - return point instruction number [out] | |
| @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 IsForeachExpr(CCharIterator szData, CCharIterator szEn
d, UINT_32 & iRetPoint); | | CCharIterator IsForeachExpr(CCharIterator szData, CCharIterator szEn
d, UINT_32 & iRetPoint); | |
| | | | |
|
| /** | | | |
| @brief Break expression; <TMPL_break BreakExpr> | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @param iRetPoint - return point instruction number | | | |
| @return NULL if sequence not found or pointer to end of sequence | | | |
| */ | | | |
| CCharIterator IsBreakExpr(CCharIterator szData, CCharIterator szEnd, | | | |
| UINT_32 & iRetPoint); | | | |
| | | | |
| // Operators ///////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//////////////////// | | // Operators ///////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//////////////////// | |
| | | | |
| /** | | /** | |
| @brief Variable/Function/Exression output operator<TMPL_var Exp
r> | | @brief Variable/Function/Exression output operator<TMPL_var Exp
r> | |
| @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 VarOperator(CCharIterator szData, CCharIterator szEnd)
; | | CCharIterator VarOperator(CCharIterator szData, CCharIterator szEnd)
; | |
| | | | |
| | | | |
| skipping to change at line 576 | | skipping to change at line 488 | |
| | | | |
| /** | | /** | |
| @brief Reverse branch operator <TMPL_unless IfExpr> blah-bla
h-blah [ <TMPL_else> clah-clah-clah ] </TMPL_unless> | | @brief Reverse branch operator <TMPL_unless IfExpr> blah-bla
h-blah [ <TMPL_else> clah-clah-clah ] </TMPL_unless> | |
| @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 UnlessOperator(CCharIterator szData, CCharIterator szE
nd); | | CCharIterator UnlessOperator(CCharIterator szData, CCharIterator szE
nd); | |
| | | | |
| /** | | /** | |
|
| @brief Loop operator <TMPL_loop Expr> blah-blah-blah </TMP | | | |
| L_loop> | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @return NULL if sequence not found or pointer to end of sequence | | | |
| */ | | | |
| CCharIterator LoopOperator(CCharIterator szData, CCharIterator szEnd | | | |
| ); | | | |
| | | | |
| /** | | | |
| @brief Foreach operator <TMPL_foreach var_array as var> blah
-blah-blah </TMPL_foreach> | | @brief Foreach operator <TMPL_foreach var_array as var> blah
-blah-blah </TMPL_foreach> | |
| @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 ForeachOperator(CCharIterator szData, CCharIterator sz
End); | | CCharIterator ForeachOperator(CCharIterator szData, CCharIterator sz
End); | |
| | | | |
| /** | | /** | |
| @brief Include operator <TMPL_include Expr> | | @brief Include operator <TMPL_include Expr> | |
| @param szData - current stream position | | @param szData - current stream position | |
| | | | |
| skipping to change at line 631 | | skipping to change at line 535 | |
| CCharIterator BlockOperator(CCharIterator szData, CCharIterator szEn
d); | | CCharIterator BlockOperator(CCharIterator szData, CCharIterator szEn
d); | |
| | | | |
| /** | | /** | |
| @brief Ignore spaces <TMPL_verbose> ..... </TMPL_verbose&g
t; | | @brief Ignore spaces <TMPL_verbose> ..... </TMPL_verbose&g
t; | |
| @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 VerboseOperator(CCharIterator szData, CCharIterator sz
End); | | CCharIterator VerboseOperator(CCharIterator szData, CCharIterator sz
End); | |
| | | | |
|
| | | /** | |
| | | @brief Break operator; <TMPL_break> | |
| | | @param szData - current stream position | |
| | | @param szEnd - end of stream position | |
| | | @return NULL if sequence not found or pointer to end of sequence | |
| | | */ | |
| | | CCharIterator BreakOperator(CCharIterator szData, CCharIterator szEn | |
| | | d); | |
| // Other stuff /////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//////////////////// | | // Other stuff /////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
//////////////////// | |
| | | | |
| /** | | /** | |
| @brief Parse CTPP2 template | | @brief Parse CTPP2 template | |
| @param szData - template start | | @param szData - template start | |
| @param szEnd - template end | | @param szEnd - template end | |
| @return 0 if success, -1 if any error occured | | @return 0 if success, -1 if any error occured | |
| */ | | */ | |
| CCharIterator Parse(CCharIterator szData, CCharIterator szEnd); | | CCharIterator Parse(CCharIterator szData, CCharIterator szEnd); | |
| | | | |
| /** | | /** | |
|
| @brief CTPP2 include map: map { a:b, c:d } | | | |
| @param szData - current stream position | | | |
| @param szEnd - end of stream position | | | |
| @param oIncludeTranslationMap - translation map | | | |
| @return NULL if sequence not found or pointer to end of sequence | | | |
| */ | | | |
| CCharIterator IncludeMap(CCharIterator szData, | | | |
| CCharIterator szEnd, | | | |
| IncludeMapType & oIncludeTranslationMap); | | | |
| | | | |
| /** | | | |
| @brief Store comparison result (if branch) | | @brief Store comparison result (if branch) | |
| @param szData - current position in stream | | @param szData - current position in stream | |
| @param eResultOperator - type of parsed expression | | @param eResultOperator - type of parsed expression | |
| @return instruction pointer to JMP or JXX instrution | | @return instruction pointer to JMP or JXX instrution | |
| */ | | */ | |
| UINT_32 StoreIfComparisonResult(CCharIterator szData, const eCTPP2Ex
prOperator & eResultOperator); | | UINT_32 StoreIfComparisonResult(CCharIterator szData, const eCTPP2Ex
prOperator & eResultOperator); | |
| | | | |
| /** | | /** | |
| @brief Store comparison result (unless branch) | | @brief Store comparison result (unless branch) | |
| @param szData - current position in stream | | @param szData - current position in stream | |
| @param eResultOperator - type of parsed expression | | @param eResultOperator - type of parsed expression | |
| @return instruction pointer to JMP or JXX instrution | | @return instruction pointer to JMP or JXX instrution | |
| */ | | */ | |
| UINT_32 StoreUnlessComparisonResult(CCharIterator szData, const eCTP
P2ExprOperator & eResultOperator); | | UINT_32 StoreUnlessComparisonResult(CCharIterator szData, const eCTP
P2ExprOperator & eResultOperator); | |
| | | | |
| /** | | /** | |
|
| @brief Check translation map | | | |
| @param sParam - parameter to check | | | |
| */ | | | |
| void CheckParamMap(STLW::string & sParam); | | | |
| | | | |
| /** | | | |
| @brief Get printable operator name | | @brief Get printable operator name | |
| @param oOperator operator type | | @param oOperator operator type | |
| @return printable operator name | | @return printable operator name | |
| */ | | */ | |
| CCHAR_P GetOperatorName(const eCTPP2Operator & oOperator); | | CCHAR_P GetOperatorName(const eCTPP2Operator & oOperator); | |
| | | | |
| /** | | /** | |
| @brief Check trailing newline flag | | @brief Check trailing newline flag | |
| @param szData - current stream position | | @param szData - current stream position | |
| @param szEnd - end of stream position | | @param szEnd - end of stream position | |
| | | | |
End of changes. 16 change blocks. |
| 127 lines changed or deleted | | 13 lines changed or added | |
|