Program: 37617
Project: 37617
Buggy source:
/** 
 * LMNtal syntax �Ǥη������ɽ�� printAll �᥽�åɤ����������
 */
void printAllLMNSyntax(){
  Env.p("String_Node_Str");
  for (  String memname : sortedMemNames) {
    FixedCounts fcs=memnameToCounts.get(memname);
    String memNameLMN=memname.equals("String_Node_Str") ? "String_Node_Str" : memname;
    Env.p(memNameLMN + "String_Node_Str");
    for (    Functor f : sortedFunctors) {
      if (TypeEnv.outOfPassiveFunctor(f) != TypeEnv.ACTIVE)       continue;
      Map<Functor,TypeVarConstraint[]> functorToArgumentTypes=memnameToFunctorTypes.get(memname);
      boolean flagNoCount=false;
      if (fcs == null)       flagNoCount=true;
      IntervalCount fc=null;
      if (!flagNoCount) {
        fc=fcs.functorToCount.get(f);
        if (fc == null)         continue;
        if (fc.min.compare(new NumCount(0)) == 0 && fc.max.compare(new NumCount(0)) == 0) {
          continue;
        }
      }
      StringBuffer texp=new StringBuffer("String_Node_Str");
      texp.append("String_Node_Str");
      texp.append(f.getQuotedAtomName());
      texp.append("String_Node_Str");
      texp.append(f.getArity());
      texp.append("String_Node_Str");
      if (f.getArity() > 0) {
        if (functorToArgumentTypes != null && functorToArgumentTypes.containsKey(f)) {
          TypeVarConstraint[] argtypes=functorToArgumentTypes.get(f);
          for (int i=0; i < argtypes.length; i++) {
            if (i != 0)             texp.append("String_Node_Str");
            texp.append(argtypes[i].shortString());
          }
        }
 else {
          for (int i=0; i < f.getArity(); i++) {
            if (i != 0)             texp.append("String_Node_Str");
            texp.append("String_Node_Str");
          }
        }
      }
      texp.append("String_Node_Str");
      if (flagNoCount)       texp.append("String_Node_Str");
 else       texp.append(fc);
      texp.append("String_Node_Str");
      Env.p(texp);
    }
    if (fcs != null) {
      for (      String childname : sortedMemNames) {
        if (fcs.memnameToCount.containsKey(childname)) {
          IntervalCount fc=fcs.memnameToCount.get(childname);
          if (fc == null)           continue;
          String cname=childname.equals("String_Node_Str") ? "String_Node_Str" : childname;
          Env.p("String_Node_Str" + cname + "String_Node_Str"+ fc+ "String_Node_Str");
        }
      }
    }
    Env.p("String_Node_Str");
  }
  Env.p("String_Node_Str");
}

Fixed version (ground truth):
/** 
 * LMNtal syntax �Ǥη������ɽ�� printAll �᥽�åɤ����������
 */
void printAllLMNSyntax(){
  Env.p("String_Node_Str");
  for (  String memname : sortedMemNames) {
    FixedCounts fcs=memnameToCounts.get(memname);
    String memNameLMN=memname.equals("String_Node_Str") ? "String_Node_Str" : memname;
    Env.p(memNameLMN + "String_Node_Str");
    for (    Functor f : sortedFunctors) {
      if (TypeEnv.outOfPassiveFunctor(f) != TypeEnv.ACTIVE)       continue;
      Map<Functor,TypeVarConstraint[]> functorToArgumentTypes=memnameToFunctorTypes.get(memname);
      boolean flagNoCount=false;
      if (fcs == null)       flagNoCount=true;
      IntervalCount fc=null;
      if (!flagNoCount) {
        fc=fcs.functorToCount.get(f);
        if (fc == null)         continue;
        if (fc.min.compare(new NumCount(0)) == 0 && fc.max.compare(new NumCount(0)) == 0) {
          continue;
        }
      }
      StringBuffer texp=new StringBuffer("String_Node_Str");
      texp.append("String_Node_Str");
      texp.append(f.getQuotedAtomName());
      texp.append("String_Node_Str");
      texp.append(f.getArity());
      texp.append("String_Node_Str");
      if (f.getArity() > 0) {
        if (functorToArgumentTypes != null && functorToArgumentTypes.containsKey(f)) {
          TypeVarConstraint[] argtypes=functorToArgumentTypes.get(f);
          for (int i=0; i < argtypes.length; i++) {
            if (i != 0)             texp.append("String_Node_Str");
            texp.append(argtypes[i].shortStringLMNSyntax());
          }
        }
 else {
          for (int i=0; i < f.getArity(); i++) {
            if (i != 0)             texp.append("String_Node_Str");
            texp.append("String_Node_Str");
          }
        }
      }
      texp.append("String_Node_Str");
      if (flagNoCount)       texp.append("String_Node_Str");
 else       texp.append(fc);
      texp.append("String_Node_Str");
      Env.p(texp);
    }
    if (fcs != null) {
      for (      String childname : sortedMemNames) {
        if (fcs.memnameToCount.containsKey(childname)) {
          IntervalCount fc=fcs.memnameToCount.get(childname);
          if (fc == null)           continue;
          String cname=childname.equals("String_Node_Str") ? "String_Node_Str" : childname;
          Env.p("String_Node_Str" + cname + "String_Node_Str"+ fc+ "String_Node_Str");
        }
      }
    }
    Env.p("String_Node_Str");
  }
  Env.p("String_Node_Str");
}