case 'N':
(doingLocals ? locals : stack).add(5);
case 'U':
(doingLocals ? locals : stack).add(6);
case 'L':
(doingLocals ? locals : stack).add(new CustomLabel(toint(part
.substring(1))));
case '[':
default:
(doingLocals ? locals : stack).add(args[i]);
}
}
if (done) {
break;
}
}
}
return new FrameNode(args[1].equalsIgnoreCase("new") ? F_NEW : F_FULL,
locals.size(), locals.toArray(), stack.size(), stack.toArray());
}
case "APPEND": {
boolean done = false;
List<Object> locals = new ArrayList<Object>();
for (int i = 2; i < args.length; i++) {
String part = args[i];
if (part.length() > 0) {
if (part.charAt(0) == '[') {
part = part.substring(1);
} else if (part.endsWith("]")) {
done = true;
part = part.substring(0, part.length() - 1);
}
if (!part.contains("/")) {
switch (Character.toUpperCase(part.charAt(0))) {
case 'T':
locals.add(0);
case 'I':
locals.add(1);
case 'F':
locals.add(2);
case 'D':
locals.add(3);
case 'J':
locals.add(4);
case 'N':
locals.add(5);
case 'U':
locals.add(6);
case 'L':
locals.add(new CustomLabel(toint(part.substring(1))));
case '[':
default:
locals.add(part);
}
} else {