public void Print(AdditionExpression ae, StringBuilder sb) { sb.Append("("); Print((dynamic)ae.Left, sb); sb.Append("+"); Print((dynamic)ae.Right, sb); sb.Append(")"); }
public static void Run() { Console.WriteLine($"== {typeof(Example).FullName} =="); Expression e = new AdditionExpression( new DoubleExpression(1), new AdditionExpression( new DoubleExpression(2), new DoubleExpression(3))); var ep = new ExpressionPrinter(); var sb = new StringBuilder(); ep.Print((dynamic)e, sb); Console.WriteLine(sb); }