protected Double readReal() throws IOException, HsqlException {

    String s = readNumberField();

    if (s == null) {
      return null;
    }

    double i = JavaSystem.parseDouble(s);

    if (tokenizer.isGetThis(Token.T_DIVIDE)) {
      s = tokenizer.getString();

      // parse simply to ensure it's a number
      double ii = JavaSystem.parseDouble(s);

      if (i == 0E0) {
        i = Double.NaN;
      } else if (i == -1E0) {
        i = Double.NEGATIVE_INFINITY;
      } else if (i == 1E0) {
        i = Double.POSITIVE_INFINITY;
      }
    }

    return ValuePool.getDouble(Double.doubleToLongBits(i));
  }