question: public void process ( ) throws IOException { section = null ; try { counterdr = new LineNumberReader ( new BufferedReader ( new InputStreamReader ( in , Charset . forName ( "UTF-8" ) ) ) ) ; reader = new MemoPushbackReader ( counterdr ) ; listener . setup ( ) ; Token tok ; skipWhitespace ( true ) ; flushWhitespace ( ) ; while ( ( tok = peekToken ( ) ) != Token . eof ) { switch ( tok ) { case section : handleSection ( ) ; break ; case option : if ( section != null ) { handleOption ( ) ; } else { throw new InvalidPropertiesFormatException ( "Option without section in configuration file at line " + ( counterdr . getLineNumber ( ) + 1 ) ) ; } break ; case comment : skipToNextLine ( ) ; listener . onComment ( reader . getAndClearMemo ( ) ) ; break ; case eol : skipToNextLine ( ) ; listener . onWhitespace ( reader . getAndClearMemo ( ) ) ; break ; default : throw new InvalidPropertiesFormatException ( "Unexpected token in configuration file at line " + ( counterdr . getLineNumber ( ) + 1 ) ) ; } skipWhitespace ( true ) ; flushWhitespace ( ) ; } listener . cleanup ( ) ; } finally { if ( reader != null ) { reader . close ( ) ; } } }
target:  Starts the actual processing of the input