try {
if (type.equalsIgnoreCase("group")) {
Type[] fields = readGroupTypeFields(t, st);
return new GroupType(r, name, originalType, fields);
} else {
PrimitiveTypeName p = asPrimitive(type, st);
check(t, ";", "field ended by ';'", st);
return new PrimitiveType(r, p, typeLength, name, originalType);
}
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("problem reading type: type = " + type + ", name = " + name + ", original type = " + originalType, e);