public static void lowContinueLabels(Statement stat, HashSet<StatEdge> edges) {

    boolean ok = (stat.type != StatementType.DO);
    if (!ok) {
      DoStatement dostat = (DoStatement)stat;
      ok = dostat.getLoopType() == LoopType.DO ||
           dostat.getLoopType() == LoopType.WHILE ||
           (dostat.getLoopType() == LoopType.FOR && dostat.getIncExprent() == null);
    }

    if (ok) {
      edges.addAll(stat.getPredecessorEdges(EdgeType.CONTINUE));
    }

    if (ok && stat.type == StatementType.DO) {
      for (StatEdge edge : edges) {
        if (stat.containsStatementStrict(edge.getSource())) {

          edge.getDestination().removePredecessor(edge);
          edge.getSource().changeEdgeNode(EdgeDirection.FORWARD, edge, stat);
          stat.addPredecessor(edge);

          stat.addLabeledEdge(edge);
        }
      }
    }

    for (Statement st : stat.getStats()) {
      if (st == stat.getFirst()) {
        lowContinueLabels(st, edges);
      }
      else {
        lowContinueLabels(st, new HashSet<>());
      }
    }
  }
public static void lowContinueLabels(Statement stat, HashSet<StatEdge> edges)