Beispiel #1
0
        //---------------------------------------------------------------------
        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));
        }
Beispiel #2
0
 public override bool Visit(ExponentationExpression exponentationExpression) => this.VisitBinaryCore(exponentationExpression, "pow");
Beispiel #3
0
 public override LE.Expression Visit(ExponentationExpression exponentationExpression) => this.VisitBinaryCore(exponentationExpression, LE.Expression.Power);