private int next() throws IOException {
        if ((character = reader.read()) != -1) {
            col.incrementAndGet();

            if (character == 0x0A) { // new line
                row.incrementAndGet();
                col.set(-1);

            } else if (character == 0x09) { // new tab
                col.addAndGet(TAB_SIZE - 1L);

            }
            
            return character;
        }
        
        throw unexpectedEndOfStreamException();
    }
Internal class that parses a stream of JSON characters into an object
representation.
<p>
This implementation includes a line and column counter that makes it easier
to debug an erroneous JSON string. These might add additional overhead to the
parsing time and should therefore only be used if the input is expected to
have errors.

@author Emil Forslund
@since  1.0.0
common-parent/json/src/main/java/com/speedment/common/json/internal/JsonDeserializer.java