TParserNode *TParser::Expr1(void) { TParserNode *temp = Expr2(); while(1) { if(typToken==PARSER_MULTIPLY) { GetToken(); temp = CreateNode(OP_MULTIPLY, temp, Expr2()); } else if(typToken==PARSER_DIVIDE) { GetToken(); temp = CreateNode(OP_DIVIDE, temp, Expr2()); } else if(typToken==PARSER_PERCENT) { GetToken(); temp = CreateNode(OP_PERCENT, temp, Expr2()); } else break; } return temp; }
TParserNode *TParser::Expr1(NSGuidesOdp::CFormulaManager& pFManager) { TParserNode *temp = Expr2(pFManager); while(1) { if(typToken==PARSER_MULTIPLY) { GetToken(); temp = CreateNode(OP_MULTIPLY, temp, Expr2(pFManager)); } else if(typToken==PARSER_DIVIDE) { GetToken(); temp = CreateNode(OP_DIVIDE, temp, Expr2(pFManager)); } else if(typToken==PARSER_PERCENT) { GetToken(); temp = CreateNode(OP_PERCENT, temp, Expr2(pFManager)); } else break; } return temp; }
TParserNode *TParser::Expr2(void) { TParserNode *temp = Expr3(); while(1) { if(typToken==PARSER_POWER) { GetToken(); temp = CreateNode(OP_POWER, temp, Expr2()); } else break; } return temp; }
TParserNode *TParser::Expr2(NSGuidesOdp::CFormulaManager& pFManager) { TParserNode *temp = Expr3(pFManager); while(1) { if(typToken==PARSER_POWER) { GetToken(); temp = CreateNode(OP_POWER, temp, Expr2(pFManager)); } else break; } return temp; }