WeaselClass genericClass;
if(token.tokenType == WeaselTokenType.KEYWORD && token.param == WeaselKeyWord.EXTENDS){
ListIterator<WeaselToken> li;
genericListClass.add(lwtge = new WeaselTreeGenericElement(li = tokenParser.listIterator()));
if(lwtge.close){
genericList.add(new WeaselGenericInformation(generic, lwtge.getWeaselClass(interpreter), -1));
break;
}
token = li.next();
genericClass = lwtge.getWeaselClass(interpreter);
}else{
genericClass = interpreter.baseTypes.getObjectClass();
genericListClass.add(null);
lwtge = null;
}
genericList.add(new WeaselGenericInformation(generic, genericClass, -1));
}while(token.tokenType == WeaselTokenType.COMMA);
if(!(lwtge!=null && lwtge.close) && !(token.tokenType==WeaselTokenType.OPERATOR && token.param == WeaselOperator.GREATER)){
throw new WeaselCompilerException(token.line, "WeaselCompiler.expect > at end of generic declaration but got %s", token);
}
}else{