Main { (@ static public void main(String args[]) throws Exception { A iA = A.parse(System.in); iA.f1(); System.out.println(); System.out.println("My traversal Done"); // System.out.println("method f1 done " + r1); // int r2 = iA.f2(); // System.out.println(); // System.out.println("method f2 done " + r2); } @) } A { void f1() via C to D(TraceVisitor); // void f1() via =>X,C to D(DisplayVisitor); // int f2() bypassing B to C (Count_C_Visitor, DisplayVisitor); } /* Count_C_Visitor { (@ int c; @) init (@ c=0; @) before C (@ c++; @) return int (@ c; @) }*/