* use std::shared_ptr<T> on Symbol*
* fix a bug that evaluator canot eval 1 + 2 * 3 expression

* add a ParseException test code