Program: 169129
Project: 169129
Buggy source:
public final Filter simpleFilter() throws RecognitionException {
  Filter filter=null;
  Filter a=null;
  try {
    int alt100=2;
    int LA100_0=input.LA(1);
    if ((LA100_0 == ID)) {
      alt100=1;
    }
 else     if ((LA100_0 == LPARAN)) {
      alt100=2;
    }
 else {
      NoViableAltException nvae=new NoViableAltException("String_Node_Str",100,0,input);
      throw nvae;
    }
switch (alt100) {
case 1:
{
        int alt96=2;
        int LA96_0=input.LA(1);
        if ((LA96_0 == ID)) {
          int LA96_1=input.LA(2);
          if ((LA96_1 == WS)) {
            int LA96_2=input.LA(3);
            if ((LA96_2 == LIKE)) {
              alt96=2;
            }
 else             if ((LA96_2 == EQUALS)) {
              alt96=1;
            }
 else {
              int nvaeMark=input.mark();
              try {
                for (int nvaeConsume=0; nvaeConsume < 3 - 1; nvaeConsume++) {
                  input.consume();
                }
                NoViableAltException nvae=new NoViableAltException("String_Node_Str",96,2,input);
                throw nvae;
              }
  finally {
                input.rewind(nvaeMark);
              }
            }
          }
 else           if ((LA96_1 == EQUALS)) {
            alt96=1;
          }
 else {
            int nvaeMark=input.mark();
            try {
              input.consume();
              NoViableAltException nvae=new NoViableAltException("String_Node_Str",96,1,input);
              throw nvae;
            }
  finally {
              input.rewind(nvaeMark);
            }
          }
        }
 else {
          NoViableAltException nvae=new NoViableAltException("String_Node_Str",96,0,input);
          throw nvae;
        }
switch (alt96) {
case 1:
{
            pushFollow(FOLLOW_selectorFilter_in_simpleFilter1663);
            a=selectorFilter();
            state._fsp--;
          }
        break;
case 2:
{
        pushFollow(FOLLOW_regexFilter_in_simpleFilter1669);
        a=regexFilter();
        state._fsp--;
      }
    break;
}
filter=a;
}
break;
case 2:
{
{
match(input,LPARAN,FOLLOW_LPARAN_in_simpleFilter1679);
int alt97=2;
int LA97_0=input.LA(1);
if ((LA97_0 == WS)) {
alt97=1;
}
switch (alt97) {
case 1:
{
  match(input,WS,FOLLOW_WS_in_simpleFilter1681);
}
break;
}
int alt98=2;
int LA98_0=input.LA(1);
if ((LA98_0 == ID)) {
int LA98_1=input.LA(2);
if ((LA98_1 == WS)) {
int LA98_2=input.LA(3);
if ((LA98_2 == LIKE)) {
alt98=2;
}
 else if ((LA98_2 == EQUALS)) {
alt98=1;
}
 else {
int nvaeMark=input.mark();
try {
  for (int nvaeConsume=0; nvaeConsume < 3 - 1; nvaeConsume++) {
    input.consume();
  }
  NoViableAltException nvae=new NoViableAltException("String_Node_Str",98,2,input);
  throw nvae;
}
  finally {
  input.rewind(nvaeMark);
}
}
}
 else if ((LA98_1 == EQUALS)) {
alt98=1;
}
 else {
int nvaeMark=input.mark();
try {
input.consume();
NoViableAltException nvae=new NoViableAltException("String_Node_Str",98,1,input);
throw nvae;
}
  finally {
input.rewind(nvaeMark);
}
}
}
 else {
NoViableAltException nvae=new NoViableAltException("String_Node_Str",98,0,input);
throw nvae;
}
switch (alt98) {
case 1:
{
pushFollow(FOLLOW_selectorFilter_in_simpleFilter1687);
a=selectorFilter();
state._fsp--;
}
break;
case 2:
{
pushFollow(FOLLOW_regexFilter_in_simpleFilter1693);
a=regexFilter();
state._fsp--;
}
break;
}
int alt99=2;
int LA99_0=input.LA(1);
if ((LA99_0 == WS)) {
alt99=1;
}
switch (alt99) {
case 1:
{
match(input,WS,FOLLOW_WS_in_simpleFilter1696);
}
break;
}
match(input,RPARAN,FOLLOW_RPARAN_in_simpleFilter1699);
}
filter=a;
}
break;
}
}
 catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
 finally {
}
return filter;
}

Fixed version (ground truth):
public final Filter simpleFilter() throws RecognitionException {
  Filter filter=null;
  Filter a=null;
  try {
    int alt101=2;
    int LA101_0=input.LA(1);
    if ((LA101_0 == ID)) {
      alt101=1;
    }
 else     if ((LA101_0 == LPARAN)) {
      alt101=2;
    }
 else {
      NoViableAltException nvae=new NoViableAltException("String_Node_Str",101,0,input);
      throw nvae;
    }
switch (alt101) {
case 1:
{
        int alt97=2;
        int LA97_0=input.LA(1);
        if ((LA97_0 == ID)) {
          int LA97_1=input.LA(2);
          if ((LA97_1 == WS)) {
            int LA97_2=input.LA(3);
            if ((LA97_2 == LIKE)) {
              alt97=2;
            }
 else             if ((LA97_2 == EQUALS)) {
              alt97=1;
            }
 else {
              int nvaeMark=input.mark();
              try {
                for (int nvaeConsume=0; nvaeConsume < 3 - 1; nvaeConsume++) {
                  input.consume();
                }
                NoViableAltException nvae=new NoViableAltException("String_Node_Str",97,2,input);
                throw nvae;
              }
  finally {
                input.rewind(nvaeMark);
              }
            }
          }
 else           if ((LA97_1 == EQUALS)) {
            alt97=1;
          }
 else {
            int nvaeMark=input.mark();
            try {
              input.consume();
              NoViableAltException nvae=new NoViableAltException("String_Node_Str",97,1,input);
              throw nvae;
            }
  finally {
              input.rewind(nvaeMark);
            }
          }
        }
 else {
          NoViableAltException nvae=new NoViableAltException("String_Node_Str",97,0,input);
          throw nvae;
        }
switch (alt97) {
case 1:
{
            pushFollow(FOLLOW_selectorFilter_in_simpleFilter1694);
            a=selectorFilter();
            state._fsp--;
          }
        break;
case 2:
{
        pushFollow(FOLLOW_regexFilter_in_simpleFilter1700);
        a=regexFilter();
        state._fsp--;
      }
    break;
}
filter=a;
}
break;
case 2:
{
{
match(input,LPARAN,FOLLOW_LPARAN_in_simpleFilter1710);
int alt98=2;
int LA98_0=input.LA(1);
if ((LA98_0 == WS)) {
alt98=1;
}
switch (alt98) {
case 1:
{
  match(input,WS,FOLLOW_WS_in_simpleFilter1712);
}
break;
}
int alt99=2;
int LA99_0=input.LA(1);
if ((LA99_0 == ID)) {
int LA99_1=input.LA(2);
if ((LA99_1 == WS)) {
int LA99_2=input.LA(3);
if ((LA99_2 == LIKE)) {
alt99=2;
}
 else if ((LA99_2 == EQUALS)) {
alt99=1;
}
 else {
int nvaeMark=input.mark();
try {
  for (int nvaeConsume=0; nvaeConsume < 3 - 1; nvaeConsume++) {
    input.consume();
  }
  NoViableAltException nvae=new NoViableAltException("String_Node_Str",99,2,input);
  throw nvae;
}
  finally {
  input.rewind(nvaeMark);
}
}
}
 else if ((LA99_1 == EQUALS)) {
alt99=1;
}
 else {
int nvaeMark=input.mark();
try {
input.consume();
NoViableAltException nvae=new NoViableAltException("String_Node_Str",99,1,input);
throw nvae;
}
  finally {
input.rewind(nvaeMark);
}
}
}
 else {
NoViableAltException nvae=new NoViableAltException("String_Node_Str",99,0,input);
throw nvae;
}
switch (alt99) {
case 1:
{
pushFollow(FOLLOW_selectorFilter_in_simpleFilter1718);
a=selectorFilter();
state._fsp--;
}
break;
case 2:
{
pushFollow(FOLLOW_regexFilter_in_simpleFilter1724);
a=regexFilter();
state._fsp--;
}
break;
}
int alt100=2;
int LA100_0=input.LA(1);
if ((LA100_0 == WS)) {
alt100=1;
}
switch (alt100) {
case 1:
{
match(input,WS,FOLLOW_WS_in_simpleFilter1727);
}
break;
}
match(input,RPARAN,FOLLOW_RPARAN_in_simpleFilter1730);
}
filter=a;
}
break;
}
}
 catch (RecognitionException re) {
reportError(re);
recover(input,re);
}
 finally {
}
return filter;
}