static double evalTerm(Parser *p){ double ret= evalFactor(p); while(p->s[0]=='*' || p->s[0]=='/'){ if(*p->s++ == '*') ret*= evalFactor(p); else ret/= evalFactor(p); } return ret; }
static void evalTerm(Parser *p){ evalFactor(p); while(p->s[0]=='*' || p->s[0]=='/'){ int inv= p->s[0]=='/'; double d; p->s++; evalFactor(p); d= pop(p); if(inv) d= 1.0/d; push(p, d * pop(p)); } }