public XToken getNextToken(){
if(read && tokens!=null){
if(tokens.isEmpty()){
tokens = null;
}else{
XToken token = tokens.remove(0);
if(tokens.isEmpty())
tokens = null;
return token;
}
}
if(!read && tokens!=null && tokens.size()>i){
return tokens.get(i++);
}
XToken token = parser.readNextToken();
if(!read && tokens!=null){
tokens.add(token);
}
return token;
}