built an expression tree parser