code: private void switchToForward() {
          assert(state == State.ITER_CHECK_BWD ||
                  (state == State.ITER_IN_FCD_SEGMENT && pos == limit) ||
                  (state.compareTo(State.IN_NORM_ITER_AT_LIMIT) >= 0 && pos == normalized.length()));
          if(state == State.ITER_CHECK_BWD) {
              // Turn around from backward checking.
              start = pos = iter.getIndex();
              if(pos == limit) {
                  state = State.ITER_CHECK_FWD;  // Check forward.
              } else {  // pos < limit
                  state = State.ITER_IN_FCD_SEGMENT;  // Stay in FCD segment.
              }
          } else {
              // Reached the end of the FCD segment.
              if(state == State.ITER_IN_FCD_SEGMENT) {
                  // The input text segment is FCD, extend it forward.
              } else {
                  // The input text segment needed to be normalized.
                  // Switch to checking forward from it.
                  if(state == State.IN_NORM_ITER_AT_START) {
                      iter.moveIndex(limit - start);
                  }
                  start = limit;
              }
              state = State.ITER_CHECK_FWD;
          }
      }
docs: Switches to forward checking if possible.