private void fetchMoreTokens(){
  scanToNextToken();
  stalePossibleSimpleKeys();
  unwindIndent(reader.getColumn());
  char ch=reader.peek();
switch (ch) {
case '\0':
    fetchStreamEnd();
  return;
case '%':
if (checkDirective()) {
  fetchDirective();
  return;
}
break;
case '-':
if (checkDocumentStart()) {
fetchDocumentStart();
return;
}
 else if (checkBlockEntry()) {
fetchBlockEntry();
return;
}
break;
case '.':
if (checkDocumentEnd()) {
fetchDocumentEnd();
return;
}
break;
case '[':
fetchFlowSequenceStart();
return;
case '{':
fetchFlowMappingStart();
return;
case ']':
fetchFlowSequenceEnd();
return;
case '}':
fetchFlowMappingEnd();
return;
case ',':
fetchFlowEntry();
return;
case '?':
if (checkKey()) {
fetchKey();
return;
}
break;
case ':':
if (checkValue()) {
fetchValue();
return;
}
break;
case '*':
fetchAlias();
return;
case '&':
fetchAnchor();
return;
case '!':
fetchTag();
return;
case '|':
if (this.flowLevel == 0) {
fetchLiteral();
return;
}
break;
case '>':
if (this.flowLevel == 0) {
fetchFolded();
return;
}
break;
case '\'':
fetchSingle();
return;
case '"':
fetchDouble();
return;
}
if (checkPlain()) {
fetchPlain();
return;
}
String chRepresentation=String.valueOf(ch);
for (Character s : ESCAPE_REPLACEMENTS.keySet()) {
String v=ESCAPE_REPLACEMENTS.get(s);
if (v.equals(chRepresentation)) {
chRepresentation="\\" + s;
break;
}
}
if (ch == '\t') chRepresentation+="(TAB)";
String text=String.format("found character '%s' that cannot start any token. (Do not use %s for indentation)",chRepresentation,chRepresentation);
throw new ScannerException("while scanning for the next token",null,text,reader.getMark());
}

private void fetchMoreTokens ( ) { scanToNextToken ( ) ; stalePossibleSimpleKeys ( ) ; unwindIndent ( reader . getColumn ( ) ) ; char ch = reader . peek ( ) ; switch ( ch ) { case '\0' : fetchStreamEnd ( ) ; return ; case '%' : if ( checkDirective ( ) ) { fetchDirective ( ) ; return ; } break ; case '-' : if ( checkDocumentStart ( ) ) { fetchDocumentStart ( ) ; return ; } else if ( checkBlockEntry ( ) ) { fetchBlockEntry ( ) ; return ; } break ; case '.' : if ( checkDocumentEnd ( ) ) { fetchDocumentEnd ( ) ; return ; } break ; case '[' : fetchFlowSequenceStart ( ) ; return ; case '{' : fetchFlowMappingStart ( ) ; return ; case ']' : fetchFlowSequenceEnd ( ) ; return ; case '}' : fetchFlowMappingEnd ( ) ; return ; case ',' : fetchFlowEntry ( ) ; return ; case '?' : if ( checkKey ( ) ) { fetchKey ( ) ; return ; } break ; case ':' : if ( checkValue ( ) ) { fetchValue ( ) ; return ; } break ; case '*' : fetchAlias ( ) ; return ; case '&' : fetchAnchor ( ) ; return ; case '!' : fetchTag ( ) ; return ; case '|' : if ( this . flowLevel == 0 ) { fetchLiteral ( ) ; return ; } break ; case '>' : if ( this . flowLevel == 0 ) { fetchFolded ( ) ; return ; } break ; case '\'' : fetchSingle ( ) ; return ; case '"' : fetchDouble ( ) ; return ; } if ( checkPlain ( ) ) { fetchPlain ( ) ; return ; } String chRepresentation = String . valueOf ( ch ) ; for ( Character s : ESCAPE_REPLACEMENTS . keySet ( ) ) { String v = ESCAPE_REPLACEMENTS . get ( s ) ; if ( v . equals ( chRepresentation ) ) { chRepresentation = "\\" + s ; break ; } } if ( ch == '\t' ) chRepresentation += "(TAB)" ; String text = String . format ( "found character '%s' that cannot start any token. (Do not use %s for indentation)" , chRepresentation , chRepresentation ) ; throw new ScannerException ( "while scanning for the next token" , null , text , reader . getMark ( ) ) ; }
fetch one or more tokens from the streamreader .
