code: final Token currentToken() throws IllegalStateException, NoSuchElementException {
          if (currentToken == null) {
              if (completed) {
                  throw new NoSuchElementException(CommonI18n.noMoreContent.text());
              }
              throw new IllegalStateException(CommonI18n.startMethodMustBeCalledBeforeConsumingOrMatching.text());
          }
          assert currentToken != null;
          return currentToken;
      }
docs: Get the current token.
  
  @return the current token; never null
  @throws IllegalStateException if this method was called before the stream was {@link #start() started}
  @throws NoSuchElementException if there are no more tokens