question: public String line ( ) throws IOException { StringBuilder buffer = new StringBuilder ( ) ; while ( true ) { if ( buffer . length ( ) > Hash . MAX ) { throw new IOException ( "Line too long." ) ; } int a = real ( ) ; if ( a == '\0' ) { return buffer . toString ( ) ; } if ( a == '\r' ) { int b = real ( ) ; if ( b == '\n' ) { return buffer . toString ( ) ; } else if ( b > - 1 ) { buffer . append ( ( char ) a ) ; buffer . append ( ( char ) b ) ; } } else if ( a > - 1 ) { buffer . append ( ( char ) a ) ; } } }
target:  Reads a \r\n terminated line of text from the input.