
public class Test {

  public static void main(String[] args) {

    Expression e = new AddExp(new IntExp(1), new IntExp(2));
    PrettyPrint pp = new PrettyPrint();

    e.accept(pp);
    System.out.println("");

    Expression e2 = new AddExp(e,e);
    e2.accept(pp);
    System.out.println("");

    Evaluator evaluator = new Evaluator();
    e.accept(pp);
    e.accept(evaluator);
    System.out.println(" = " + evaluator.finalValue());

    e2.accept(pp);
    e2.accept(evaluator);
    System.out.println(" = " + evaluator.finalValue());

    PostOrder po = new PostOrder();
    e.accept(po);
    System.out.print("\n");

    e2.accept(po);
    System.out.print("\n");

  }

}
