Expression evaluator using shunting-yard algorithm and RPN.