Exemple #1
0
            public void RightPropertyReturnsPassedRhsInstance()
            {
                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);

                var target = new PlusExpr(lhs, rhs);

                Assert.AreSame(rhs, target.Right);
            }
Exemple #2
0
            public void RightPropertyReturnsPassedRhsInstance()
            {
                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);

                var target = new PlusExpr(lhs, rhs);

                Assert.AreSame(rhs, target.Right);
            }
Exemple #3
0
 public Value Visit(PlusExpr expr, Scope scope)
 {
     return(PerformOperation(expr.Left.Accept(this, scope),
                             expr.Right.Accept(this, scope),
                             (a, b) => a + b,
                             (a, b) => a + b,
                             (a, b) => { throw new InvalidOperationException(); },
                             (a, b) => a + b));
 }
Exemple #4
0
            public void AcceptMethodCallsVisitOnVisitorWithThis()
            {
                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);

                var target = new PlusExpr(lhs, rhs);
                var visitor = new Mock<IExpressionVisitor<string, int>>();

                target.Accept(visitor.Object, 0);

                visitor.Verify(x => x.Visit(target, 0), Times.Once);
            }
Exemple #5
0
            public void AcceptMethodCallsVisitOnVisitorWithThis()
            {
                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);

                var target  = new PlusExpr(lhs, rhs);
                var visitor = new Mock <IExpressionVisitor <string, int> >();

                target.Accept(visitor.Object, 0);

                visitor.Verify(x => x.Visit(target, 0), Times.Once);
            }
Exemple #6
0
            public void AcceptMethodCallsOnlyVisitOnVisitorWithThisAndNoOtherVisitMethods()
            {
                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);

                var target = new PlusExpr(lhs, rhs);
                // throw exception is any other methods called other than the PlusExpr overload.
                var visitor = new Mock<IExpressionVisitor<string, int>>(MockBehavior.Strict);
                visitor.Setup(x => x.Visit(It.IsAny<PlusExpr>(), It.IsAny<int>())).Returns("");

                target.Accept(visitor.Object, 123);
            }
Exemple #7
0
            public void VisitPlusWithDoubleAndIntExpr()
            {
                var target = new TypeCheckingVisitor();

                var lhs        = new ConstantExpr(1.1);
                var rhs        = new ConstantExpr(2);
                var expression = new PlusExpr(lhs, rhs);

                var actual = target.Visit(expression, scope);

                Assert.AreEqual(ValueType.Float, actual);
            }
Exemple #8
0
            public void VisitPlusExpr()
            {
                var target = new EvaluateVisitor();

                var lhs        = new ConstantExpr(1);
                var rhs        = new ConstantExpr(2);
                var expression = new PlusExpr(lhs, rhs);

                var actual = target.Visit(expression, _scope);

                Assert.AreEqual("3", actual.ToString());
            }
Exemple #9
0
            public void VisitPlusExpr()
            {
                var target = new PrintVisitor();

                var lhs        = new ConstantExpr(1);
                var rhs        = new ConstantExpr(2);
                var expression = new PlusExpr(lhs, rhs);

                var actual = target.Visit(expression, scope);

                Assert.AreEqual("1+2", actual);
            }
Exemple #10
0
            public void AcceptMethodCallsOnlyVisitOnVisitorWithThisAndNoOtherVisitMethods()
            {
                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);

                var target = new PlusExpr(lhs, rhs);
                // throw exception is any other methods called other than the PlusExpr overload.
                var visitor = new Mock <IExpressionVisitor <string, int> >(MockBehavior.Strict);

                visitor.Setup(x => x.Visit(It.IsAny <PlusExpr>(), It.IsAny <int>())).Returns("");

                target.Accept(visitor.Object, 123);
            }
            public void VisitPlusWithDoubleAndIntExpr()
            {
                var target = new TypeCheckingVisitor();

                var lhs = new ConstantExpr(1.1);
                var rhs = new ConstantExpr(2);
                var expression = new PlusExpr(lhs, rhs);

                var actual = target.Visit(expression, scope);

                Assert.AreEqual(ValueType.Float, actual);
            }
Exemple #12
0
 /// <summary>
 /// Validate a plus expression.
 /// </summary>
 /// <param name="e">
 ///            is the expression. </param>
 /// <returns> null. </returns>
 public virtual object visit(PlusExpr e)
 {
     printUnExpr("PLUS", e);
     return(null);
 }
Exemple #13
0
 public string Visit(PlusExpr expr, Scope scope)
 {
     return(expr.Left.Accept(this, scope) + "+" + expr.Right.Accept(this, scope));
 }
            public void VisitPlusExpr()
            {
                var target = new PrintVisitor();

                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);
                var expression = new PlusExpr(lhs, rhs);

                var actual = target.Visit(expression, scope);

                Assert.AreEqual("1+2", actual);
            }
Exemple #15
0
 /// <param name="e">
 ///            is the plus expression. </param>
 /// <returns> new add expression </returns>
 public virtual object visit(PlusExpr e)
 {
     e.arg().accept(this);
     return(null);
 }
Exemple #16
0
 public ValueType Visit(PlusExpr expr, Scope scope)
 {
     return(BinaryOperatorTypeCheck(expr, scope));
 }
Exemple #17
0
        /// <param name="e">
        ///            is the plus expression. </param>
        /// <returns> new add expression </returns>
        public virtual object visit(PlusExpr e)
        {
            AddExpr ae = new AddExpr(make_int_lit(0), e.arg());

            return(ae.accept(this));
        }
            public void VisitPlusExpr()
            {
                var target = new EvaluateVisitor();

                var lhs = new ConstantExpr(1);
                var rhs = new ConstantExpr(2);
                var expression = new PlusExpr(lhs, rhs);

                var actual = target.Visit(expression, _scope);

                Assert.AreEqual("3", actual.ToString());
            }