double ExpParser::parse_number() { double ans = 0; switch (token_type) { case NUMBER: // this is a number ans = strtod(token, NULL); getToken(); break; case VARIABLE: // this is a variable ans = eval_variable(token); getToken(); break; default: // syntax error or unexpected end of expression if (token[0] == '\0') { throw Error(row(), col(), 6); } else { throw Error(row(), col(), 7); } break; } return ans; }
void CMPolynomial::level7(double& result) // functions, (), numbers, { // user functions, parameters if (token == LPar || token == LBracket) { get_token(); level1(result); } else if (token == If) result = eval_condition(); else if (token == Function) result = eval_function(); else if (token==Variable||token==VariableOrig) result = eval_variable(token==Variable); else if (token == Constant) result = constants[offset]; /* else if (token == Definition) { result = CMDefinitions::GetDefinitionValue(offset); sdebug << "Definition " << offset << result << ENDL; } */ else if (isspecialfunc(token)) result = eval_special_function(); get_token(); }