final RepositoryLookupFailureCallback lookupFailureCallback = new RepositoryLookupFailureCallback() { public void reportMissingClass(ClassNotFoundException ex) { ex.printStackTrace(); } };
DataflowTestDriver<TypeFrame, TypeAnalysis> driver = new DataflowTestDriver<TypeFrame, TypeAnalysis>() { public Dataflow<TypeFrame, TypeAnalysis> createDataflow(ClassContext classContext, Method method) throws CFGBuilderException, DataflowAnalysisException {
	public static void main(String[] argv) throws Exception {		if (argv.length != 1) {			System.err.println("Usage: " + FindRefComparison.class.getName() + " <class file>");			System.exit(1);		}		final RepositoryLookupFailureCallback lookupFailureCallback = new RepositoryLookupFailureCallback() {			public void reportMissingClass(ClassNotFoundException ex) {				ex.printStackTrace();			}		};		DataflowTestDriver<TypeFrame, TypeAnalysis> driver = new DataflowTestDriver<TypeFrame, TypeAnalysis>() {			public TypeAnalysis createAnalysis(MethodGen methodGen, CFG cfg) {				TypeMerger typeMerger = new RefComparisonTypeMerger(lookupFailureCallback);				TypeFrameModelingVisitor visitor = new RefComparisonTypeFrameModelingVisitor(methodGen.getConstantPool(), lookupFailureCallback);				TypeAnalysis analysis = new TypeAnalysis(methodGen, new DepthFirstSearch(cfg).search(), typeMerger, visitor);				return analysis;			}		};		driver.execute(argv[0]);	}