Tecnicamente:
devi realizzare un parser ricorsivo discendente per analizzare l'espressione, quindi usare lo stack per fare la valutazione dove per valutare (3 + 5*6) dovresti avere:
push 3
push 5
push 6
multiply // pop 6, pop 5 , push 5*6
add // pop 30, pop 3, push 3+30
pop // estrae il risultato