Program: 96740
Project: 96740
Buggy source:
public final ApplicabilityGrammarParser.feature_applicability_return feature_applicability() throws RecognitionException {
  ApplicabilityGrammarParser.feature_applicability_return retval=new ApplicabilityGrammarParser.feature_applicability_return();
  retval.start=input.LT(1);
  CommonTree root_0=null;
  Token string_literal10=null;
  Token char_literal12=null;
  ApplicabilityGrammarParser.feature_expressions_return feature_expressions11=null;
  CommonTree string_literal10_tree=null;
  CommonTree char_literal12_tree=null;
  try {
{
      root_0=(CommonTree)adaptor.nil();
      string_literal10=(Token)match(input,10,FOLLOW_10_in_feature_applicability148);
      string_literal10_tree=(CommonTree)adaptor.create(string_literal10);
      adaptor.addChild(root_0,string_literal10_tree);
      int cnt4=0;
      loop4:       do {
        int alt4=2;
        int LA4_0=input.LA(1);
        if (((LA4_0 >= OR && LA4_0 <= AND))) {
          alt4=1;
        }
switch (alt4) {
case 1:
{
            pushFollow(FOLLOW_feature_expressions_in_feature_applicability150);
            feature_expressions11=feature_expressions();
            state._fsp--;
            adaptor.addChild(root_0,feature_expressions11.getTree());
          }
        break;
default :
      if (cnt4 >= 1)       break loop4;
    EarlyExitException eee=new EarlyExitException(4,input);
  throw eee;
}
cnt4++;
}
 while (true);
char_literal12=(Token)match(input,9,FOLLOW_9_in_feature_applicability153);
char_literal12_tree=(CommonTree)adaptor.create(char_literal12);
adaptor.addChild(root_0,char_literal12_tree);
}
retval.stop=input.LT(-1);
retval.tree=(CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree,retval.start,retval.stop);
}
 catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree=(CommonTree)adaptor.errorNode(input,retval.start,input.LT(-1),re);
}
 finally {
}
return retval;
}

Fixed version (ground truth):
public final ApplicabilityGrammarParser.feature_applicability_return feature_applicability() throws RecognitionException {
  ApplicabilityGrammarParser.feature_applicability_return retval=new ApplicabilityGrammarParser.feature_applicability_return();
  retval.start=input.LT(1);
  CommonTree root_0=null;
  Token string_literal10=null;
  Token char_literal12=null;
  ApplicabilityGrammarParser.feature_expressions_return feature_expressions11=null;
  CommonTree string_literal10_tree=null;
  CommonTree char_literal12_tree=null;
  try {
{
      root_0=(CommonTree)adaptor.nil();
      string_literal10=(Token)match(input,10,FOLLOW_10_in_feature_applicability148);
      string_literal10_tree=(CommonTree)adaptor.create(string_literal10);
      adaptor.addChild(root_0,string_literal10_tree);
      int cnt4=0;
      loop4:       do {
        int alt4=2;
        int LA4_0=input.LA(1);
        if (((LA4_0 >= OR && LA4_0 <= AND))) {
          alt4=1;
        }
switch (alt4) {
case 1:
{
            pushFollow(FOLLOW_feature_expressions_in_feature_applicability150);
            feature_expressions11=feature_expressions();
            state._fsp--;
            adaptor.addChild(root_0,feature_expressions11.getTree());
          }
        break;
default :
      if (cnt4 >= 1) {
        break loop4;
      }
    EarlyExitException eee=new EarlyExitException(4,input);
  throw eee;
}
cnt4++;
}
 while (true);
char_literal12=(Token)match(input,9,FOLLOW_9_in_feature_applicability153);
char_literal12_tree=(CommonTree)adaptor.create(char_literal12);
adaptor.addChild(root_0,char_literal12_tree);
}
retval.stop=input.LT(-1);
retval.tree=(CommonTree)adaptor.rulePostProcessing(root_0);
adaptor.setTokenBoundaries(retval.tree,retval.start,retval.stop);
}
 catch (RecognitionException re) {
reportError(re);
recover(input,re);
retval.tree=(CommonTree)adaptor.errorNode(input,retval.start,input.LT(-1),re);
}
 finally {
}
return retval;
}