/* MUAHAHAHAHA PHEAR */ #include #include #include #include int eval(char *w) { int i=0,a=0,m=1; for(;*w;w++) { if(*w>='0'&&*w<='9') i=i*10+(*w-'0'); else if(*w=='(') { char *u; int c=0; for(u=w;*u;u++) { if(*u=='(')c++; if(*u==')')c--; if(!c) { *u='\0'; i=eval(w+1); w=u; break; } } } else switch(*w) { case'+': m*=i; i=0; a+=m; m=1; break; case'*': m*=i; i=0;; break; case' ': break; default: exit(-1); } } return a+m*i; } int main(int argc,char *argv[]) { if(!argv[1]) return -1; printf("%i\n",eval(argv[1])); return 0; }