internal MSAst Operator(ExpressionType op, MSAst left, MSAst right) { var returnType = ((op == ExpressionType.IsTrue) || (op == ExpressionType.IsFalse)) ? typeof(bool) : typeof(object); if (right == null) { return(MSAst.Dynamic( _binder.UnaryOperation(op), returnType, left)); } return(MSAst.Dynamic( _binder.BinaryOperation(op), returnType, left, right)); }