tkn.content.append(wsBuf.toString()); wsBuf.delete(0, wsBuf.length());
tkn.content.append(wsBuf); wsBuf.clear();
  private Token simpleTokenLexer(Token tkn, int c) throws IOException {    StringBuffer wsBuf = new StringBuffer();    while (!tkn.isReady) {      if (isEndOfLine(c)) {        // end of record        tkn.type = TT_EORECORD;        tkn.isReady = true;      } else if (isEndOfFile(c)) {        // end of file        tkn.type = TT_EOF;        tkn.isReady = true;      } else if (c == strategy.getDelimiter()) {        // end of token        tkn.type = TT_TOKEN;        tkn.isReady = true;      } else if (c == '\\' && strategy.getUnicodeEscapeInterpretation() && in.lookAhead() == 'u') {        // interpret unicode escaped chars (like \u0070 -> p)        tkn.content.append((char) unicodeEscapeLexer(c));      } else if (isWhitespace(c)) {        // gather whitespaces         // (as long as they are not at the beginning of a token)        if (tkn.content.length() > 0) {          wsBuf.append((char) c);        }      } else {        // prepend whitespaces (if we have)        if (wsBuf.length() > 0) {          // for J2SDK 1.3 compatibility we use toString()          tkn.content.append(wsBuf.toString());          wsBuf.delete(0, wsBuf.length());        }        tkn.content.append((char) c);      }      // get the next char      if (!tkn.isReady) {        c = in.read();      }    }    return tkn;  }