public static AssignExpression Assign(AccessableExpression left, Expression right) { if (left == null) { throw new ArgumentNullException(nameof(left)); } if (right == null) { throw new ArgumentNullException(nameof(right)); } return(new AssignExpression(left, right)); }
public static BinaryExpression DivideAssign(AccessableExpression left, Expression right) => new AssignExpression(ExpressionType.DivideAssign, left, Divide(left, right));
public static BinaryExpression ModuloAssign(AccessableExpression left, Expression right) => new AssignExpression(ExpressionType.ModuloAssign, left, Modulo(left, right));
public static BinaryExpression SubtractAssign(AccessableExpression left, Expression right) => new AssignExpression(ExpressionType.SubtractAssign, left, Subtract(left, right));
public static BinaryExpression MultiplyAssign(AccessableExpression left, Expression right) => new AssignExpression(ExpressionType.MultiplyAssign, left, Multiply(left, right));
public static BinaryExpression AddAssign(AccessableExpression left, Expression right) => new AssignExpression(ExpressionType.AddAssign, left, Add(left, right));
public static UnaryExpression PostDecrement(AccessableExpression left) => new AddAssignExpression(ExpressionType.PostDecrement, left, Constant(-1));
internal AddAssignExpression(ExpressionType expressionType, AccessableExpression left, Expression value) : base(expressionType, left, null) { this.value = value; }
internal AssignExpression(ExpressionType expressionType, AccessableExpression left, Expression right, bool isPre = false) : base(expressionType, left, right, null) { this.isPre = isPre; }
internal AssignExpression(AccessableExpression left, Expression right) : this(ExpressionType.Assign, left, right) { }