writer.write("])");
} else if (ai instanceof MethodInsnNode) {
MethodInsnNode n = ((MethodInsnNode)ai);
writer.write("\n\t\t\t\tmethod(" + n.getOpcode() + ", \"" + escape(n.owner) + "\", \"" + escape(n.name) + "\", \"" + escape(n.desc) + "\")");
} else if (ai instanceof MultiANewArrayInsnNode) {
MultiANewArrayInsnNode n = ((MultiANewArrayInsnNode)ai);
writer.write("\n\t\t\t\tmultiANewArray(\"" + escape(n.desc) + "\", " + n.dims + ")");
} else if (ai instanceof TableSwitchInsnNode) {
TableSwitchInsnNode n = ((TableSwitchInsnNode)ai);
writer.write("\n\t\t\t\ttableSwitch(" + n.min + ", " + n.max + ", " + getLabelIndex(n.dflt) + ", [");
boolean firstCase = true;
for (LabelNode l : (List<LabelNode>)n.labels) {
if (firstCase) { firstCase = false; } else { writer.write(", "); }
writer.write("" + getLabelIndex(l));
}
writer.write("])");
} else if (ai instanceof TypeInsnNode) {
TypeInsnNode n = ((TypeInsnNode)ai);
writer.write("\n\t\t\t\t\\type(" + n.getOpcode() + ", \"" + escape(n.desc) + "\")");
} else {
if (!(ai instanceof FrameNode)) {
throw new RuntimeException("Error: Unsupported instruction encountered (" + ai.getClass() + ").");
}
first = true;