public SimplifiedExpression Visit(UnaryMinusExpression expression)
 {
     if (_expressionDepth > 1)
     {
         var extracted = _GetExpressionExtractedInTemporaryVariable(expression);
         return(new SimplifiedExpression(new VariableExpression(extracted.VariableName), extracted.Instructions.ToList()));
     }
     return(new SimplifiedExpression(expression));
 }
Esempio n. 2
0
        public Expression Visit(UnaryMinusExpression expression)
        {
            var evaluated = expression.Expression.Accept(this);

            if (evaluated is IntegerExpression integer)
            {
                return(new IntegerExpression(-integer.Value));
            }
            return(new UnaryMinusExpression(evaluated));
        }
Esempio n. 3
0
        public void Reduce_UnaryMinusWithConstantOperand()
        {
            _runtime
            .Setup(mock => mock.FindAndCall("-",
                                            It.Is <IExecutionContext>(context =>
                                                                      context.Line == 0 &&
                                                                      context.Column == 0 &&
                                                                      context.Count == 1 &&
                                                                      context[0].Equals(new IntValue(1))
                                                                      )))
            .Returns(new IntValue(-1));

            var expr    = new UnaryMinusExpression(0, 0, new ConstantExpression(0, 4, new IntValue(1)));
            var reduced = expr.Accept(_visitor);

            Assert.IsInstanceOfType(reduced, typeof(ConstantExpression));

            var constant = (ConstantExpression)reduced;

            Assert.AreEqual(-1, ((IntValue)constant.Value).Value);
            Assert.AreEqual(0, constant.Line);
            Assert.AreEqual(0, constant.Column);
        }
Esempio n. 4
0
 public Bitmap Visit(UnaryMinusExpression expr)
 {
     return(expr.Parameter.Accept(this));
 }
Esempio n. 5
0
 public ISet <DescriptorKind> Visit(UnaryMinusExpression expression)
 {
     return(_unaryMinusRule.Transfer(expression, this));
 }
Esempio n. 6
0
 public override int?VisitUnaryMinusExpression(UnaryMinusExpression unaryMinusExpression)
 {
     return(-unaryMinusExpression.Operand.Accept(this));
 }
 public IEnumerable <Expression> Visit(UnaryMinusExpression expression)
 {
     return(Visit(expression.Expression));
 }
Esempio n. 8
0
            public Expression Visit(UnaryMinusExpression expression)
            {
                var visited = expression.Expression.Accept(this);

                return(visited == expression ? expression : new UnaryMinusExpression(visited));
            }
 private bool _AreEqual(UnaryMinusExpression a, UnaryMinusExpression b)
 {
     return(AreEqual(a.Expression, b.Expression));
 }
Esempio n. 10
0
 public virtual void VisitUnaryMinusExpression(UnaryMinusExpression unaryMinusExpression)
 {
     DefaultVisit(unaryMinusExpression);
 }
 public void Visit(UnaryMinusExpression expression)
 {
     expression.Expression.Accept(this);
 }