private int[] getTopLevelBraketIndexes(String piece, CodeReformatorKernel crk) {
    int[] ret = new int[2];
    ret[0] = -1;
    ret[1] = -1;

    StateOfPosition[] stateOfPositions = crk.getStatesOfPosition(piece);

    int bra = piece.indexOf("(");
    while (-1 != bra) {
      crk.getStatesOfPosition(piece);

      if (0 == bra || stateOfPositions[bra - 1].isTopLevel) {
        ret[0] = bra;
        break; // break when first braket found
      }
      if (bra < piece.length() - 1) {
        bra = piece.indexOf("(", bra + 1);
      } else {
        break;
      }
    }

    if (-1 == ret[0]) {
      return ret;
    }

    int ket = piece.indexOf(")", bra);
    while (-1 != ket) {
      if (ket == piece.length() - 1 || stateOfPositions[ket].isTopLevel) {
        // the next top level ket is the counterpart to bra
        ret[1] = ket;
        break;
      }
      if (ket < piece.length() - 1) {
        ket = piece.indexOf(")", ket + 1);
      } else {
        break;
      }
    }
    return ret;
  }
  private boolean hasTopLevelColon(String piece, CodeReformatorKernel crk) {
    int ix = piece.indexOf(",");
    StateOfPosition[] stateOfPositions = crk.getStatesOfPosition(piece);

    while (-1 != ix) {
      if (stateOfPositions[ix].isTopLevel) {
        return true;
      }
      if (ix < piece.length() - 1) {
        ix = piece.indexOf(",", ix + 1);
      } else {
        break;
      }
    }

    return false;
  }
  boolean hasCommentEndingWithLineFeed(String in) {
    CodeReformatorKernel dum =
        new CodeReformatorKernel(_statementSeparator, new PieceMarkerSpec[0], _commentSpecs);
    StateOfPosition[] sops = dum.getStatesOfPosition(in);

    boolean inComment = false;
    for (int i = 0; i < sops.length; ++i) {
      if (!inComment && -1 < sops[i].commentIndex) {
        if (-1 < _commentSpecs[sops[i].commentIndex].commentEnd.indexOf('\n')) {
          return true;
        }
        inComment = true;
      }
      if (-1 == sops[i].commentIndex) {
        inComment = false;
      }
    }
    return false;
  }