public void Visit(AdditionExpression ae) { _sb.Append("("); ae.Left.Accept(this); _sb.Append(" + "); ae.Right.Accept(this); _sb.Append(")"); }
public void Visit(AdditionExpression exp) { exp.Left.Accept(this); var a = Result; exp.Right.Accept(this); var b = Result; Result = a + b; }
public void Test_using_the_calculator_visitor() { var exp = new AdditionExpression( new DoubleExpression(1.0), new AdditionExpression( new DoubleExpression(2.0), new DoubleExpression(3.0)) ); var calc = new ExpressionCalculator(); calc.Visit(exp); Assert.AreEqual(6, calc.Result); }
public void Test_using_the_print_visitor() { var exp = new AdditionExpression( new DoubleExpression(1.0), new AdditionExpression( new DoubleExpression(2.0), new DoubleExpression(3.0)) ); var printer = new ExpressionPrinter(); printer.Visit(exp); string result = printer.ToString(); Assert.False(string.IsNullOrEmpty(result)); }