if (isTopLevel) for (int i = 0; i < typeDeclarations.length ; i++) trash = typeDeclarations[i].accept(this);
if (TopLevelDeclaration != null) trash = TopLevelDeclaration.accept(this);
    public Object visitCompilationUnit(JCompilationUnit self,                                     JPackageName packageName,                                     JPackageImport[] importedPackages,                                     JClassImport[] importedClasses,                                     JTypeDeclaration[] typeDeclarations)    {	/* The beginning of the visit! */		//install a try to catch all runtime errors and report the line	//number	try {	    blockStart("CompilationUnit", self);	    boolean isTopLevel = false;	    	    /*if (packageName.getName().length() > 0)	      packageName.accept(this);*/	    	    /*for (int i = 0; i < importedPackages.length ; i++)	      importedPackages[i].accept(this);*/	    	    /*  for (int i = 0; i < importedClasses.length ; i++)		importedClasses[i].accept(this);*/	    //check to see if this is the top level compilation unit	    //by checking all of the class declarations	    for (int i = 0; i < typeDeclarations.length ; i++) {		if (typeDeclarations[i] instanceof JClassDeclaration) {		    JClassDeclaration decl = (JClassDeclaration)			typeDeclarations[i];		    if (decl.getSourceClass().getSuperClass().			getIdent().equals("StreamIt")) {			if (isTopLevel)			    at.dms.util.Utils.fail(printLine(decl) + 						   "Top level stream already twice.");			isTopLevel = true;		    }		}	    }	    	    //visit the file only if it is the top level!!!!	    if (isTopLevel)	    		for (int i = 0; i < typeDeclarations.length ; i++)		    trash = typeDeclarations[i].accept(this);	    	    	    	    /* the end of the visit */	}	catch (Throwable t) {	    System.err.println("Error at or around line " + lineNumber);	    System.err.println("Stack Trace:\n");	    t.printStackTrace();	    System.exit(-1);	}				return topLevel;    }