public void visitFrame(final int type, final int nLocal,
			final Object[] local, final int nStack, final Object[] stack) {
		buf.setLength(0);
		switch (type) {
		case Opcodes.F_NEW:
		case Opcodes.F_FULL:
			declareFrameTypes(nLocal, local);
			declareFrameTypes(nStack, stack);
			if (type == Opcodes.F_NEW) {
				buf.append("mv.visitFrame(Opcodes.F_NEW, ");
			} else {
				buf.append("mv.visitFrame(Opcodes.F_FULL, ");
			}
			buf.append(nLocal).append(", new Object[] {");
			appendFrameTypes(nLocal, local);
			buf.append("}, ").append(nStack).append(", new Object[] {");
			appendFrameTypes(nStack, stack);
			buf.append('}');
			break;
		case Opcodes.F_APPEND:
			declareFrameTypes(nLocal, local);
			buf.append("mv.visitFrame(Opcodes.F_APPEND,").append(nLocal)
					.append(", new Object[] {");
			appendFrameTypes(nLocal, local);
			buf.append("}, 0, null");
			break;
		case Opcodes.F_CHOP:
			buf.append("mv.visitFrame(Opcodes.F_CHOP,").append(nLocal)
					.append(", null, 0, null");
			break;
		case Opcodes.F_SAME:
			buf.append("mv.visitFrame(Opcodes.F_SAME, 0, null, 0, null");
			break;
		case Opcodes.F_SAME1:
			declareFrameTypes(1, stack);
			buf.append("mv.visitFrame(Opcodes.F_SAME1, 0, null, 1, new Object[] {");
			appendFrameTypes(1, stack);
			buf.append('}');
			break;
		}
		buf.append(");\n");
		text.add(buf.toString());
	}