/* is a unary + or - */ void level5(int *result) { register char op;
op = 0; if ((token_type==DELIMITER) && *token == '+' *token == '-' ) { op = *token; get_token(); } level6(result); if (op) unary(op,result); }
/* process parenthesized expression */ void level6(int *result) { if ((*token == '(') && (token_type == DELIMITER)) { get_token(); level2(result); if (*token!=')') serror(1); get_token(); } else primitive(result); }
/* find value of number or variable */ void primitive(int *result) { switch (token_type) { case VARIABLE: *result = find_var(token); get_token(); return;