public void Run()
        {
            var simple = new AdditionExpression7(new Value7(2), new Value7(3));
            var ep     = new ExpressionPrinter7();

            ep.Visit(simple);
            Console.WriteLine(ep.ToString());

            var expr = new MultiplicationExpression7(
                new AdditionExpression7(new Value7(2), new Value7(3)),
                new Value7(4)
                );
            var ep7 = new ExpressionPrinter7();

            ep7.Visit(expr);
            Console.WriteLine(ep7.ToString());
        }
 public abstract void Visit(MultiplicationExpression7 me);
 public override void Visit(MultiplicationExpression7 me)
 {
     me.LHS.Accept(this);
     sb.Append("*");
     me.RHS.Accept(this);
 }