/* Is a unary + or -. */ void eval_exp4(int *value) { register char op; op = '\0'; if(*token=='+' || *token=='-') { op = *token; get_token(); } eval_exp5(value); if(op) if(op=='-') *value = -(*value); }
/* Processa um expoente */ void Parser::eval_exp4(double *answer) { double temp, ex; register int t; eval_exp5(answer); if (*token=='^') { get_token(); eval_exp4(&temp); ex = *answer; if (temp == 0.0) { *answer = 1.0; return; } *answer = pow (ex,double (temp)); } }
// Is a unary +, -, ++, or --. void eval_exp4(int &value) { char op; char temp; op = '\0'; if (*token == '+' || *token == '-' || *token == INC || *token == DEC) { temp = *token; op = *token; get_token(); if (temp == INC) assign_var(token, find_var(token) + 1); if (temp == DEC) assign_var(token, find_var(token) - 1); } eval_exp5(value); if (op == '-') value = -(value); }
// Process an exponent void parser::eval_exp4(double &result) { double temp, ex; register int t; eval_exp5(result); if(*token== '^') { get_token(); eval_exp4(temp); ex = result; if(temp==0.0) { result = 1.0; return; } for(t=(int)temp-1; t>0; --t) result = result * (double)ex; } }