question: 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 ( ) ) ; }
target:  Fetch one or more tokens from the StreamReader.