Program: 84074
Project: 84074
Buggy source:
public void tokenize(){
  String code=this.file.getCode();
  int len=code.length();
  StringBuilder buf=new StringBuilder(20);
  Token first=new Token(-1,"String_Node_Str",(byte)0,null,null,0,-1,-1);
  Token prev=first;
  int start=0;
  int lineNumber=1;
  int i;
  char l=0;
  char c=0;
  int type=0;
  int subtype=0;
  boolean addToken=false;
  boolean reparse=true;
  for (i=0; i < len; ++i, l=c) {
    c=code.charAt(i);
    if (c == '\n') {
      lineNumber++;
    }
    if (type == 0) {
      start=i;
      if (isWhitespace(c)) {
        continue;
      }
      int m=getMode(c,code,i);
      type=m & 0xFFFF;
      subtype=m & 0xFFFF0000;
    }
    if (type == TYPE_IDENTIFIER) {
      if (subtype == MOD_DOTS) {
        if (c == '.') {
          buf.append(c);
        }
      }
 else {
        boolean letter=(subtype & MOD_LETTER) != 0;
        boolean symbol=(subtype & MOD_SYMBOL) != 0;
        if (letter) {
          if (c == '_') {
            subtype|=MOD_SYMBOL;
            buf.append(c);
          }
 else           if (isIdentifierPart(c)) {
            subtype=MOD_LETTER;
            buf.append(c);
          }
 else           if (!symbol) {
            addToken=true;
          }
        }
        if (symbol) {
          if (c == '_') {
            subtype|=MOD_LETTER;
            buf.append(c);
          }
 else           if (isIdentifierSymbol(c)) {
            subtype=MOD_SYMBOL;
            buf.append(c);
          }
 else           if (!letter) {
            addToken=true;
          }
        }
      }
    }
 else     if (type == TYPE_SYMBOL) {
      buf.append(c);
      addToken=true;
      reparse=false;
    }
 else     if (type == TYPE_BRACKET) {
      buf.append(c);
      addToken=true;
      reparse=false;
    }
 else     if (type == TYPE_COMMENT) {
      if (subtype == MOD_LINE) {
        if (c == '\n') {
          type=0;
          continue;
        }
      }
 else       if (subtype == MOD_BLOCK) {
        if (l == '*' && c == '/') {
          type=0;
          continue;
        }
      }
    }
 else     if (type == TYPE_INT || type == TYPE_LONG) {
      if (c == '.') {
        type=TYPE_FLOAT;
        buf.append('.');
      }
 else       if (c == 'l' || c == 'L') {
        type=TYPE_LONG;
        addToken=true;
        reparse=false;
      }
 else       if (subtype == MOD_DEC) {
        if (isDigit(c)) {
          buf.append(c);
        }
 else         if (c == 'f' || c == 'F') {
          type=TYPE_FLOAT;
          addToken=true;
          reparse=false;
        }
 else         if (c == 'd' || c == 'D') {
          type=TYPE_FLOAT;
          addToken=true;
          reparse=false;
        }
 else {
          addToken=true;
        }
      }
 else       if (subtype == MOD_BIN) {
        if (c == 'b' || isBinDigit(c)) {
          buf.append(c);
        }
 else {
          addToken=true;
        }
      }
 else       if (subtype == MOD_OCT) {
        if (isOctDigit(c)) {
          buf.append(c);
        }
 else {
          addToken=true;
        }
      }
 else       if (subtype == MOD_HEX) {
        if (c == 'x' || isHexDigit(c)) {
          buf.append(c);
        }
 else {
          addToken=true;
        }
      }
    }
 else     if (type == TYPE_FLOAT || type == TYPE_DOUBLE) {
      if (c == 'x') {
        subtype=MOD_HEX;
        buf.append(c);
      }
 else       if (c == 'f' || c == 'F') {
        addToken=true;
        reparse=false;
      }
 else       if (c == 'd' || c == 'D') {
        type=TYPE_DOUBLE;
        addToken=true;
        reparse=false;
      }
 else       if (isDigit(c) || c == '.' || c == 'e') {
        buf.append(c);
      }
 else {
        addToken=true;
      }
    }
 else     if (type == TYPE_STRING) {
      if (c == '"' && buf.length() > 0) {
        buf.append('"');
        addToken=true;
        reparse=false;
      }
 else {
        buf.append(c);
      }
    }
 else     if (type == TYPE_CHAR) {
      if (c == '\'' && buf.length() > 0) {
        buf.append('\'');
        addToken=true;
        reparse=false;
      }
 else {
        buf.append(c);
      }
    }
    if (addToken) {
      prev=this.addToken(prev,buf,type | subtype,lineNumber,start,i);
      addToken=false;
      type=0;
      if (reparse) {
        i--;
      }
 else {
        reparse=true;
      }
    }
  }
  if (buf.length() > 0) {
    this.addToken(prev,buf,type,lineNumber,start,i);
  }
  this.first=first.next();
}

Fixed version (ground truth):
public void tokenize(){
  String code=this.file.getCode();
  int len=code.length();
  StringBuilder buf=new StringBuilder(20);
  Token first=new Token(-1,"String_Node_Str",(byte)0,null,null,0,-1,-1);
  Token prev=first;
  int start=0;
  int lineNumber=1;
  int i;
  char l=0;
  char c=0;
  int type=0;
  int subtype=0;
  boolean addToken=false;
  boolean reparse=true;
  for (i=0; i < len; ++i, l=c) {
    c=code.charAt(i);
    if (c == '\n') {
      lineNumber++;
    }
    if (type == 0) {
      start=i;
      if (isWhitespace(c)) {
        continue;
      }
      int m=getMode(c,code,i);
      type=m & 0xFFFF;
      subtype=m & 0xFFFF0000;
    }
    if (type == TYPE_IDENTIFIER) {
      if (subtype == MOD_DOTS) {
        if (c == '.') {
          buf.append(c);
        }
      }
 else {
        boolean letter=(subtype & MOD_LETTER) != 0;
        boolean symbol=(subtype & MOD_SYMBOL) != 0;
        if (letter) {
          if (c == '_' || c == '$' || c == '@') {
            subtype|=MOD_SYMBOL;
            buf.append(c);
          }
 else           if (isIdentifierPart(c)) {
            subtype=MOD_LETTER;
            buf.append(c);
          }
 else           if (!symbol) {
            addToken=true;
          }
        }
        if (symbol) {
          if (c == '_' || c == '$' || c == '@') {
            subtype|=MOD_LETTER;
            buf.append(c);
          }
 else           if (isIdentifierSymbol(c)) {
            subtype=MOD_SYMBOL;
            buf.append(c);
          }
 else           if (!letter) {
            addToken=true;
          }
        }
      }
    }
 else     if (type == TYPE_SYMBOL) {
      buf.append(c);
      addToken=true;
      reparse=false;
    }
 else     if (type == TYPE_BRACKET) {
      buf.append(c);
      addToken=true;
      reparse=false;
    }
 else     if (type == TYPE_COMMENT) {
      if (subtype == MOD_LINE) {
        if (c == '\n') {
          type=0;
          continue;
        }
      }
 else       if (subtype == MOD_BLOCK) {
        if (l == '*' && c == '/') {
          type=0;
          continue;
        }
      }
    }
 else     if (type == TYPE_INT || type == TYPE_LONG) {
      if (c == '.') {
        type=TYPE_FLOAT;
        buf.append('.');
      }
 else       if (c == 'l' || c == 'L') {
        type=TYPE_LONG;
        addToken=true;
        reparse=false;
      }
 else       if (subtype == MOD_DEC) {
        if (isDigit(c)) {
          buf.append(c);
        }
 else         if (c == 'f' || c == 'F') {
          type=TYPE_FLOAT;
          addToken=true;
          reparse=false;
        }
 else         if (c == 'd' || c == 'D') {
          type=TYPE_FLOAT;
          addToken=true;
          reparse=false;
        }
 else {
          addToken=true;
        }
      }
 else       if (subtype == MOD_BIN) {
        if (c == 'b' || isBinDigit(c)) {
          buf.append(c);
        }
 else {
          addToken=true;
        }
      }
 else       if (subtype == MOD_OCT) {
        if (isOctDigit(c)) {
          buf.append(c);
        }
 else {
          addToken=true;
        }
      }
 else       if (subtype == MOD_HEX) {
        if (c == 'x' || isHexDigit(c)) {
          buf.append(c);
        }
 else {
          addToken=true;
        }
      }
    }
 else     if (type == TYPE_FLOAT || type == TYPE_DOUBLE) {
      if (c == 'x') {
        subtype=MOD_HEX;
        buf.append(c);
      }
 else       if (c == 'f' || c == 'F') {
        addToken=true;
        reparse=false;
      }
 else       if (c == 'd' || c == 'D') {
        type=TYPE_DOUBLE;
        addToken=true;
        reparse=false;
      }
 else       if (isDigit(c) || c == '.' || c == 'e') {
        buf.append(c);
      }
 else {
        addToken=true;
      }
    }
 else     if (type == TYPE_STRING) {
      if (c == '"' && buf.length() > 0) {
        buf.append('"');
        addToken=true;
        reparse=false;
      }
 else {
        buf.append(c);
      }
    }
 else     if (type == TYPE_CHAR) {
      if (c == '\'' && buf.length() > 0) {
        buf.append('\'');
        addToken=true;
        reparse=false;
      }
 else {
        buf.append(c);
      }
    }
    if (addToken) {
      prev=this.addToken(prev,buf,type | subtype,lineNumber,start,i);
      addToken=false;
      type=0;
      if (reparse) {
        i--;
      }
 else {
        reparse=true;
      }
    }
  }
  if (buf.length() > 0) {
    this.addToken(prev,buf,type,lineNumber,start,i);
  }
  this.first=first.next();
}