private static void addGroupType(String t, Tokenizer st, Repetition r, GroupBuilder<?> builder) {
GroupBuilder<?> childBuilder = builder.group(r);
String name = st.nextToken();
t = st.nextToken();
OriginalType originalType = null;
if (t.equalsIgnoreCase("(")) {
originalType = OriginalType.valueOf(st.nextToken());
childBuilder.as(originalType);
check(st.nextToken(), ")", "original type ended by )", st);
t = st.nextToken();
}
if (t.equals("=")) {
childBuilder.id(Integer.parseInt(st.nextToken()));
t = st.nextToken();
}
try {
addGroupTypeFields(t, st, childBuilder);
} catch (IllegalArgumentException e) {
throw new IllegalArgumentException("problem reading type: type = group, name = " + name + ", original type = " + originalType, e);
}
childBuilder.named(name);
}