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; }
// change to Main to run. public static void none() { var e = new AdditionExpression3( left: new DoubleExpression3(1), right: new AdditionExpression3( left: new DoubleExpression3(2), right: new DoubleExpression3(3))); var ep = new ExpressionPrinter2(); ep.Visit(e); Console.WriteLine(ep); // Recursive calculation var calc = new ExpressionCalculator(); calc.Visit(e); Console.WriteLine($"{ep} = {calc.Result}"); }