public void Visit(AdditionExpression3 ae) { sb.Append("("); ae.Left.Accept(this); sb.Append("+"); ae.Right.Accept(this); sb.Append(")"); }
public void Visit(AdditionExpression3 ae) { ae.Left.Accept(this); var a = Result; ae.Right.Accept(this); var b = Result; Result = a + b; }
public void Run() { var e = new AdditionExpression3( new DoubleExpression3(4), new AdditionExpression3( new DoubleExpression3(5), new DoubleExpression3(6) ) ); //var sb = new StringBuilder(); var ep = new ExpressionPrinter3(); ep.Visit(e); Console.WriteLine(ep); var cal = new ExpressionCalculator(); cal.Visit(e); Console.WriteLine($"{ep} = {cal.Result}"); }