void (@NotNull StartMarker marker, @Nullable @Nls String errorMessage, @Nullable StartMarker before) { doValidityChecks(marker, before); if (errorMessage != null) { myOptionalData.setErrorMessage(marker.markerId, errorMessage); } int doneLexeme = before == null ? myCurrentLexeme : before.myLexemeIndex; if (marker.myType.isLeftBound() && isEmpty(marker.myLexemeIndex, doneLexeme)) { marker.setCustomEdgeTokenBinders(DEFAULT_RIGHT_BINDER, null); } marker.myDoneLexeme = doneLexeme; myProduction.addDone(marker, before); }