evaluate expression using stack