switch (ch) {
case '<':
// scan for closing '>' while ignoring commas
for (int depth = 1; depth > 0;) {
if (++offset == length) {
throw new ParseException("Mismatched brackets; expected '<' to match subsequent '>'");
}
char ich = typeArgContents.charAt(offset);
if (ich == '<') {
++depth;
} else if (ich == '>') {
--depth;
}
}
break;
case '>':
throw new ParseException("No matching '<' for '>'");
case ',':
String typeArgComponent = typeArgContents.substring(start, offset);
parseTypeArgComponent(typeArgList, typeArgComponent);
start = offset + 1;
break;