//--------------------------------------------------------------------- public override Expression Visit(ExponentationExpression exponentationExpression) { ArrayIndexExpression left = exponentationExpression.Left as ArrayIndexExpression; ConstantExpression right = exponentationExpression.Right as ConstantExpression; if (left == null || right == null || right.Value != 2) { return(base.Visit(exponentationExpression)); } this.DidAnyOptimization = true; return(new MultiplyExpression(exponentationExpression.Token as Operation, left, left)); }
public override bool Visit(ExponentationExpression exponentationExpression) => this.VisitBinaryCore(exponentationExpression, "pow");
public override LE.Expression Visit(ExponentationExpression exponentationExpression) => this.VisitBinaryCore(exponentationExpression, LE.Expression.Power);