Provides a framework for static code analysis based on the asm.tree package.

Basic usage:

    ClassReader classReader = new ClassReader(bytecode);
    ClassNode classNode = new ClassNode();
    classReader.accept(classNode, ClassReader.SKIP_DEBUG);

    for (MethodNode method : classNode.methods) {
      if (method.instructions.size() > 0) {
        Analyzer analyzer = new Analyzer(new BasicInterpreter());
        analyzer.analyze(classNode.name, method);
        Frame[] frames = analyzer.getFrames();
        // Elements of the frames array now contains info for each instruction
        // from the analyzed method. BasicInterpreter creates BasicValue, that
        // is using simplified type system that distinguishes the UNINITIALZED,
        // INT, FLOAT, LONG, DOUBLE, REFERENCE and RETURNADDRESS types.
        ...
      }
    }

@since ASM 1.4.3