
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("");

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

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

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

  }

}
