Main { {{ public static void main(String args[]) throws Exception { CompilationUnit a = CompilationUnit.parse(System.in); a.display(); //ClassVisitor cv=new ClassVisitor(); //a.findClassNamed(cv); //a.print(); //FetchMethodVisitor fmv= new FetchMethodVisitor(); //a.findFetchMethod(fmv); //System.out.println("SUCCESS"); } }} } CompilationUnit { void print() to * (PrintVisitor); } CompilationUnit { void display() to * (DisplayVisitor); } CompilationUnit { traversal findClassNamed(ClassVisitor) { to UnmodifiedClassDeclaration; } } //CompilationUnit { //traversal findFetchMethod (FetchMethodVisitor) { //to TravGraphFetchAss; // } //} ClassVisitor { {{ public void makeNewMethod() { md= CBD_MethodDeclaration.parse("public X get_X() { return x; }"); } }} } //FetchMethodVisitor { // before TravGraphFetchAss // {{ // System.out.println("Found the fetch"); // }} //} ClassVisitor { before UnmodifiedClassDeclaration {{ if((host.get_ident().toString()).equals("D")) { System.out.println( "Found class D" ); makeNewMethod(); host.get_classbody().get_classbodydeclarations().addElement(md); } }} }