code: public static DateInterval parse(
          CharSequence text,
          ChronoParser<PlainDate> parser,
          BracketPolicy policy
      ) throws ParseException {
  
          ParseLog plog = new ParseLog();
          DateInterval interval =
              IntervalParser.of(
                  DateIntervalFactory.INSTANCE,
                  parser,
                  policy
              ).parse(text, plog, parser.getAttributes());
  
          if ((interval == null) || plog.isError()) {
              throw new ParseException(plog.getErrorMessage(), plog.getErrorIndex());
          } else if (
              (plog.getPosition() < text.length())
              && !parser.getAttributes().get(Attributes.TRAILING_CHARACTERS, Boolean.FALSE).booleanValue()
          ) {
              throw new ParseException("Trailing characters found: " + text, plog.getPosition());
          } else {
              return interval;
          }
  
      }
docs: /*[deutsch]
  <p>Interpretiert den angegebenen Text als Intervall. </p>
  
  <p>Diese Methode kann auch einen Bindestrich als Alternative zum Schr&auml;gstrich als Trennzeichen
  zwischen Start- und Endkomponente interpretieren, es sei denn, die Startkomponente ist eine Periode.
  Unendlichkeitssymbole werden verstanden. </p>
  
  @param   text        text to be parsed
  @param   parser      format object for parsing start and end components
  @param   policy      strategy for parsing interval boundaries
  @return  result
  @throws  ParseException if parsing does not work
  @throws  IndexOutOfBoundsException if the start position is at end of text or even behind
  @since   4.18