modified ExpressionParser