public override void Visit(AdditionExpression ae)
 {
     // todo
     sb.Append("(");
     ae.LHS.Accept(this);
     sb.Append("+");
     ae.RHS.Accept(this);
     sb.Append(")");
 }
        static void Main(string[] args)
        {
            var simple = new AdditionExpression(
                new Value(2),
                new MultiplicationExpression(
                    new Value(3),
                    new Value(4)));
            var ep = new ExpressionPrinter();

            ep.Visit(simple);

            Console.WriteLine(ep);
            Console.ReadKey();
        }
 public abstract void Visit(AdditionExpression ae);