class LoopFinder {
  private final Map<Chain, Set<Set<Object>>> chainToLoop = new HashMap<Chain, Set<Set<Object>>>();

  LoopFinder(PegGraph peg) {
    Chain chain = peg.getMainPegChain();
    DfsForBackEdge dfsForBackEdge = new DfsForBackEdge(chain, peg);
    Map<Object, Object> backEdges = dfsForBackEdge.getBackEdges();
    LoopBodyFinder lbf = new LoopBodyFinder(backEdges, peg);
    Set<Set<Object>> loopBody = lbf.getLoopBody();
    testLoops(loopBody);
    chainToLoop.put(chain, loopBody);

  }

  private void testLoops(Set<Set<Object>> loopBody) {<FILL_FUNCTION_BODY>}

}

    System.out.println("====loops===");
    Iterator<Set<Object>> it = loopBody.iterator();
    while (it.hasNext()) {
      Set loop = it.next();
      Iterator loopIt = loop.iterator();
      System.out.println("---loop---");
      while (loopIt.hasNext()) {
        JPegStmt o = (JPegStmt) loopIt.next();
        Tag tag = (Tag) o.getTags().get(0);
        System.out.println(tag + " " + o);
      }
    }
    System.out.println("===end===loops===");
  
<no_super_class>