public void moveToLeftParenthesisBackwardsSkippingNestedWithPredicate(@NotNull SyntaxElement leftParenthesis,
                                                                        @NotNull SyntaxElement rightParenthesis,
                                                                        @NotNull Predicate<? super SemanticEditorPosition> terminationCondition) {
    while (!myIterator.atEnd()) {
      if (terminationCondition.test(this)) {
        break;
      }
      if (rightParenthesis.equals(map(myIterator.getTokenType()))) {
        moveBeforeParentheses(leftParenthesis, rightParenthesis);
        continue;
      }
      else if (leftParenthesis.equals(map(myIterator.getTokenType()))) {
        break;
      }
      myIterator.retreat();
    }
  }
public void moveToLeftParenthesisBackwardsSkippingNestedWithPredicate(@NotNull SyntaxElement leftParenthesis,
                                                                        @NotNull SyntaxElement rightParenthesis,
                                                                        @NotNull Predicate<? super SemanticEditorPosition> terminationCondition)