Main { // main program (@ public static void main(String args[]) throws Exception { int result; A aAparsed = A.parse(System.in); // much shorter result = aAparsed.F(); System.out.println("\n*** result ***\n" + result); if(result == 32) { System.out.println("SUCCESS"); } else { System.out.println("FAILURE"); } } @) } A { traversal TestTraversal(TestVisitor t) { bypassing { } to * ; } } A { (@ int F() { TestVisitor t = new TestVisitor(new Integer(0)); this.TestTraversal(t); return t.get_count().intValue(); } @) } TestVisitor { before E (@ count = new Integer(count.intValue() + 1); System.out.println("in E"); @) }