private void rollbackTo(@NotNull StartMarker marker) {
    assert marker.myLexemeIndex >= 0 : "The marker is already disposed";
    if (myDebugMode) {
      myProduction.assertNoDoneMarkerAround(marker);
    }
    if (DIAGNOSTICS != null) {
      DIAGNOSTICS.registerRollback(myCurrentLexeme - marker.myLexemeIndex);
    }
    myCurrentLexeme = marker.myLexemeIndex;
    myTokenTypeChecked = true;
    myProduction.rollbackTo(marker);
    clearCachedTokenType();
  }
private void rollbackTo(@NotNull StartMarker marker)