// Add or subtract two terms. void eval_exp2(int &value) { char op; int partial_value; char okops[] = { '(', INC, DEC, '-', '+', 0 }; eval_exp3(value); while ((op = *token) == '+' || op == '-') { get_token(); if (token_type == DELIMITER && !strchr(okops, *token)) throw InterpExc(SYNTAX); eval_exp3(partial_value); switch (op) { // add or subtract case '-': value = value - partial_value; break; case '+': value = value + partial_value; break; } } }
/* Суммирование или вычисление двух термов. */ void eval_exp2(int *value) { register char op; int partial_value; eval_exp3(value); while((op = *token) == '+' || op == '-') { get_token(); eval_exp3(&partial_value); switch(op) { /* суммирование или вычитание */ case '-': *value = *value - partial_value; break; case '+': *value = *value + partial_value; break; } } }
/* Add or subtract two terms. */ void eval_exp2(int *value) { register char op; int partial_value; eval_exp3(value); while((op = *token) == '+' || op == '-') { get_token(); eval_exp3(&partial_value); switch(op) { /* add or subtract */ case '-': *value = *value - partial_value; break; case '+': *value = *value + partial_value; break; } } }
/* Soma ou subtrai dois termos */ void Parser::eval_exp2(double *answer) { register char op; double temp; eval_exp3(answer); while((op = *token) == '+' || op == '-') { get_token(); eval_exp3(&temp); switch(op) { case '-': *answer = *answer - temp; break; case '+': *answer = *answer + temp; break; } } }
// Add or subtract two terms. void parser::eval_exp2(double &result) { register char op; double temp; eval_exp3(result); while((op = *token) == '+' || op == '-') { get_token(); eval_exp3(temp); switch(op) { case '-': result = result - temp; break; case '+': result = result + temp; break; } } }