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)); }
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)); }
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); }
public Bitmap Visit(UnaryMinusExpression expr) { return(expr.Parameter.Accept(this)); }
public ISet <DescriptorKind> Visit(UnaryMinusExpression expression) { return(_unaryMinusRule.Transfer(expression, this)); }
public override int?VisitUnaryMinusExpression(UnaryMinusExpression unaryMinusExpression) { return(-unaryMinusExpression.Operand.Accept(this)); }
public IEnumerable <Expression> Visit(UnaryMinusExpression expression) { return(Visit(expression.Expression)); }
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)); }
public virtual void VisitUnaryMinusExpression(UnaryMinusExpression unaryMinusExpression) { DefaultVisit(unaryMinusExpression); }
public void Visit(UnaryMinusExpression expression) { expression.Expression.Accept(this); }