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