Program: 12233
Project: 12233
Buggy source:
private boolean determine_type_of_constituent_string(){
  PossibleSymbolTypes possibleType=determine_possible_symbol_types_for_string(lexeme.string);
  if (possibleType.possible_var) {
    lexeme.type=LexemeType.VARIABLE;
    return true;
  }
  if (possibleType.possible_ic) {
    try {
      lexeme.type=LexemeType.INTEGER;
      lexeme.int_val=Integer.valueOf(lexeme.string);
    }
 catch (    NumberFormatException e) {
      printer.print("String_Node_Str" + lexeme.string + "String_Node_Str");
      print_location_of_most_recent_lexeme();
      lexeme.int_val=0;
      return false;
    }
    return true;
  }
  if (possibleType.possible_fc) {
    try {
      lexeme.type=LexemeType.FLOAT;
      lexeme.float_val=Double.valueOf(lexeme.string);
    }
 catch (    NumberFormatException e) {
      printer.print("String_Node_Str" + lexeme.string + "String_Node_Str");
      print_location_of_most_recent_lexeme();
      lexeme.float_val=0.0f;
      return false;
    }
    return true;
  }
  if (allow_ids && possibleType.possible_id) {
    try {
      lexeme.id_letter=Character.toUpperCase(lexeme.string.charAt(0));
      lexeme.type=LexemeType.IDENTIFIER;
      lexeme.id_number=Integer.valueOf(lexeme.string.substring(1));
    }
 catch (    NumberFormatException e) {
      printer.print("String_Node_Str");
      print_location_of_most_recent_lexeme();
      lexeme.id_number=0;
      return false;
    }
    return true;
  }
  if (possibleType.possible_sc) {
    lexeme.type=LexemeType.SYM_CONSTANT;
    if (printer.isPrintWarnings()) {
      if (lexeme.at(0) == '<') {
        if (lexeme.at(1) == '<') {
          printer.print("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
          print_location_of_most_recent_lexeme();
        }
 else {
          printer.print("String_Node_Str" + lexeme + "String_Node_Str"+ "String_Node_Str");
          print_location_of_most_recent_lexeme();
        }
      }
 else {
        if (lexeme.at(lexeme.length() - 1) == '>') {
          if (lexeme.at(lexeme.length() - 2) == '>') {
            printer.print("String_Node_Str" + lexeme + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
            print_location_of_most_recent_lexeme();
          }
 else {
            printer.print("String_Node_Str" + lexeme + "String_Node_Str"+ "String_Node_Str");
            print_location_of_most_recent_lexeme();
          }
        }
      }
    }
    return true;
  }
  lexeme.type=LexemeType.QUOTED_STRING;
  return true;
}

Fixed version (ground truth):
private boolean determine_type_of_constituent_string(){
  PossibleSymbolTypes possibleType=determine_possible_symbol_types_for_string(lexeme.string);
  if (possibleType.possible_var) {
    lexeme.type=LexemeType.VARIABLE;
    return true;
  }
  if (possibleType.possible_ic) {
    try {
      lexeme.type=LexemeType.INTEGER;
      if (lexeme.string.charAt(0) != '+') {
        lexeme.int_val=Integer.valueOf(lexeme.string);
      }
 else {
        lexeme.int_val=Integer.valueOf(lexeme.string.substring(1));
      }
    }
 catch (    NumberFormatException e) {
      printer.print("String_Node_Str" + lexeme.string + "String_Node_Str");
      print_location_of_most_recent_lexeme();
      lexeme.int_val=0;
      return false;
    }
    return true;
  }
  if (possibleType.possible_fc) {
    try {
      lexeme.type=LexemeType.FLOAT;
      lexeme.float_val=Double.valueOf(lexeme.string);
    }
 catch (    NumberFormatException e) {
      printer.print("String_Node_Str" + lexeme.string + "String_Node_Str");
      print_location_of_most_recent_lexeme();
      lexeme.float_val=0.0f;
      return false;
    }
    return true;
  }
  if (allow_ids && possibleType.possible_id) {
    try {
      lexeme.id_letter=Character.toUpperCase(lexeme.string.charAt(0));
      lexeme.type=LexemeType.IDENTIFIER;
      lexeme.id_number=Integer.valueOf(lexeme.string.substring(1));
    }
 catch (    NumberFormatException e) {
      printer.print("String_Node_Str");
      print_location_of_most_recent_lexeme();
      lexeme.id_number=0;
      return false;
    }
    return true;
  }
  if (possibleType.possible_sc) {
    lexeme.type=LexemeType.SYM_CONSTANT;
    if (printer.isPrintWarnings()) {
      if (lexeme.at(0) == '<') {
        if (lexeme.at(1) == '<') {
          printer.print("String_Node_Str" + "String_Node_Str" + "String_Node_Str");
          print_location_of_most_recent_lexeme();
        }
 else {
          printer.print("String_Node_Str" + lexeme + "String_Node_Str"+ "String_Node_Str");
          print_location_of_most_recent_lexeme();
        }
      }
 else {
        if (lexeme.at(lexeme.length() - 1) == '>') {
          if (lexeme.at(lexeme.length() - 2) == '>') {
            printer.print("String_Node_Str" + lexeme + "String_Node_Str"+ "String_Node_Str"+ "String_Node_Str");
            print_location_of_most_recent_lexeme();
          }
 else {
            printer.print("String_Node_Str" + lexeme + "String_Node_Str"+ "String_Node_Str");
            print_location_of_most_recent_lexeme();
          }
        }
      }
    }
    return true;
  }
  lexeme.type=LexemeType.QUOTED_STRING;
  return true;
}