abstract class AstNode { public void harvest( Visitor v ) { int i; if ( arg == null ) return; this.visit( v ); for ( i=0; i<arg.length; i++ ) if ( arg[i]!=null ) { arg[i].harvest( v ); } } public void visit( Visitor v ) { v.action( this ); } }