TypeFrameModelingVisitor visitor = new RefComparisonTypeFrameModelingVisitor(methodGen.getConstantPool(), lookupFailureCallback); TypeAnalysis analysis = new TypeAnalysis(methodGen, new DepthFirstSearch(cfg).search(), typeMerger, visitor); return analysis;
TypeFrameModelingVisitor visitor = new RefComparisonTypeFrameModelingVisitor(methodGen.getConstantPool(), lookupFailureCallback); TypeAnalysis analysis = new TypeAnalysis(methodGen, dfs, typeMerger, visitor); Dataflow<TypeFrame, TypeAnalysis> dataflow = new Dataflow<TypeFrame, TypeAnalysis>(cfg, analysis); dataflow.execute();  return dataflow;
	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]);	}