Program: 96734
Project: 96734
Buggy source:
public final ApplicabilityGrammarParser.compound_value_return compound_value() throws RecognitionException {
  ApplicabilityGrammarParser.compound_value_return retval=new ApplicabilityGrammarParser.compound_value_return();
  retval.start=input.LT(1);
  CommonTree root_0=null;
  ApplicabilityGrammarParser.value_return value22=null;
  ApplicabilityGrammarParser.multiple_compounds_return multiple_compounds23=null;
  try {
    int alt9=2;
    int LA9_0=input.LA(1);
    if (((LA9_0 >= OR && LA9_0 <= AND))) {
      alt9=1;
    }
 else     if ((LA9_0 == 12)) {
      alt9=2;
    }
 else {
      NoViableAltException nvae=new NoViableAltException("String_Node_Str",9,0,input);
      throw nvae;
    }
switch (alt9) {
case 1:
{
        root_0=(CommonTree)adaptor.nil();
        int cnt8=0;
        loop8:         do {
          int alt8=2;
          int LA8_0=input.LA(1);
          if (((LA8_0 >= OR && LA8_0 <= AND))) {
            alt8=1;
          }
switch (alt8) {
case 1:
{
              pushFollow(FOLLOW_value_in_compound_value292);
              value22=value();
              state._fsp--;
              adaptor.addChild(root_0,value22.getTree());
            }
          break;
default :
        if (cnt8 >= 1)         break loop8;
      EarlyExitException eee=new EarlyExitException(8,input);
    throw eee;
}
cnt8++;
}
 while (true);
}
break;
case 2:
{
root_0=(CommonTree)adaptor.nil();
pushFollow(FOLLOW_multiple_compounds_in_compound_value297);
multiple_compounds23=multiple_compounds();
state._fsp--;
adaptor.addChild(root_0,multiple_compounds23.getTree());
}
break;
}
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.compound_value_return compound_value() throws RecognitionException {
  ApplicabilityGrammarParser.compound_value_return retval=new ApplicabilityGrammarParser.compound_value_return();
  retval.start=input.LT(1);
  CommonTree root_0=null;
  ApplicabilityGrammarParser.value_return value22=null;
  ApplicabilityGrammarParser.multiple_compounds_return multiple_compounds23=null;
  try {
    int alt9=2;
    int LA9_0=input.LA(1);
    if (((LA9_0 >= OR && LA9_0 <= AND))) {
      alt9=1;
    }
 else     if ((LA9_0 == 12)) {
      alt9=2;
    }
 else {
      NoViableAltException nvae=new NoViableAltException("String_Node_Str",9,0,input);
      throw nvae;
    }
switch (alt9) {
case 1:
{
        root_0=(CommonTree)adaptor.nil();
        int cnt8=0;
        loop8:         do {
          int alt8=2;
          int LA8_0=input.LA(1);
          if (((LA8_0 >= OR && LA8_0 <= AND))) {
            alt8=1;
          }
switch (alt8) {
case 1:
{
              pushFollow(FOLLOW_value_in_compound_value292);
              value22=value();
              state._fsp--;
              adaptor.addChild(root_0,value22.getTree());
            }
          break;
default :
        if (cnt8 >= 1) {
          break loop8;
        }
      EarlyExitException eee=new EarlyExitException(8,input);
    throw eee;
}
cnt8++;
}
 while (true);
}
break;
case 2:
{
root_0=(CommonTree)adaptor.nil();
pushFollow(FOLLOW_multiple_compounds_in_compound_value297);
multiple_compounds23=multiple_compounds();
state._fsp--;
adaptor.addChild(root_0,multiple_compounds23.getTree());
}
break;
}
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;
}