Program: 37606
Project: 37606
Buggy source:
/** 
 * 与えられたソースについて、一連の実行を行う。
 * @param src Reader型で表されたソース
 * @param unitName ファイル名。インラインコードのキャッシュはこの名前ベースで管理される。
 */
private static void run(Reader src,String unitName){
  if (Env.preProcess0) {
    src=preProcess0(src);
  }
  try {
    Env.clearErrors();
    compile.structure.Membrane m=null;
    try {
      LMNParser lp=new LMNParser(src);
      m=lp.parse();
    }
 catch (    ParseException e) {
      Env.p("String_Node_Str");
      Env.e(e.getMessage());
      System.exit(1);
    }
    if (Env.fType) {
      if (!analyseTypes(m)) {
        System.exit(1);
      }
    }
    Ruleset rs=RulesetCompiler.compileMembrane(m,unitName);
    if (Env.getErrorCount() > 0) {
      Env.e("String_Node_Str");
      System.exit(1);
    }
    if (Env.compileRule) {
      try {
        List<Ruleset> rulesets=m.rulesets;
        InterpretedRuleset r=(InterpretedRuleset)rulesets.get(0);
        r.rules.get(0).showDetail();
      }
 catch (      Exception e) {
        Env.e("String_Node_Str");
        System.exit(1);
      }
    }
 else {
      showIL((InterpretedRuleset)rs,m);
    }
    if (Env.compileonly) {
      for (      String libName : Module.loaded) {
        compile.structure.Membrane mem=(compile.structure.Membrane)Module.memNameTable.get(libName);
        for (        Ruleset r : mem.rulesets) {
          ((InterpretedRuleset)r).showDetail();
        }
      }
      Module.showModuleList();
      Inline.initInline();
      Inline.showInlineList();
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    System.exit(1);
  }
}

Fixed version (ground truth):
/** 
 * 与えられたソースについて、一連の実行を行う。
 * @param src Reader型で表されたソース
 * @param unitName ファイル名。インラインコードのキャッシュはこの名前ベースで管理される。
 */
private static void run(Reader src,String unitName){
  if (Env.preProcess0) {
    src=preProcess0(src);
  }
  try {
    Env.clearErrors();
    compile.structure.Membrane m=null;
    try {
      LMNParser lp=new LMNParser(src);
      m=lp.parse();
    }
 catch (    ParseException e) {
      Env.p("String_Node_Str");
      Env.e(e.getMessage());
      System.exit(1);
    }
    if (Env.fType) {
      if (!analyseTypes(m)) {
        System.exit(1);
      }
    }
    Ruleset rs=RulesetCompiler.compileMembrane(m,unitName);
    if (Env.getErrorCount() > 0) {
      Env.e("String_Node_Str");
      System.exit(1);
    }
    if (Env.compileRule) {
      try {
        List<Ruleset> rulesets=m.rulesets;
        InterpretedRuleset r=(InterpretedRuleset)rulesets.get(0);
        r.rules.get(0).showDetail();
      }
 catch (      Exception e) {
        Env.e("String_Node_Str");
        System.exit(1);
      }
      System.exit(0);
    }
 else {
      showIL((InterpretedRuleset)rs,m);
    }
    if (Env.compileonly) {
      for (      String libName : Module.loaded) {
        compile.structure.Membrane mem=(compile.structure.Membrane)Module.memNameTable.get(libName);
        for (        Ruleset r : mem.rulesets) {
          ((InterpretedRuleset)r).showDetail();
        }
      }
      Module.showModuleList();
      Inline.initInline();
      Inline.showInlineList();
      System.exit(0);
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
    System.exit(1);
  }
}