public virtual ISqlNode VisitPrefixOperation(SqlPrefixOperationNode n) { var op = Visit(n.Operator) as SqlOperatorNode; var right = Visit(n.Right); return(n.Update(op, right)); }
public void Optimize_PositiveNumber() { var ast = new SqlPrefixOperationNode { Operator = new SqlOperatorNode("+"), Right = new SqlNumberNode(5) }; var target = new ExpressionOptimizeVisitor(); var result = target.Visit(ast); result.Should().MatchAst(new SqlNumberNode(5)); }
public ISqlNode VisitPrefixOperation(SqlPrefixOperationNode n) { Append(n.Operator, " "); if (n.Right is SqlInfixOperationNode) { Append("(", n.Right, ")"); } else { Visit(n.Right); } return(n); }
public override ISqlNode VisitPrefixOperation(SqlPrefixOperationNode n) { // First make sure we visit the children nodes and reduce those as much as possible n = base.VisitPrefixOperation(n) as SqlPrefixOperationNode; if (n.Right is SqlNumberNode number) { if (n.Operator.Operator == "-") { return(number.MakeNegative()); } if (n.Operator.Operator == "+") { return(n.Right); } if (n.Operator.Operator == "~") { return(number.BitwiseInvert()); } } return(n); }
public override ISqlNode VisitPrefixOperation(SqlPrefixOperationNode n) { ConfirmExpressionOperands(n.Right); return(base.VisitPrefixOperation(n)); }
public override ISqlNode VisitPrefixOperation(SqlPrefixOperationNode n) { _result.AssertNotNull(n, nameof(n.Operator), n.Operator); _result.AssertNotNull(n, nameof(n.Right), n.Right); return(base.VisitPrefixOperation(n)); }