func removePerfectiveGerundEnding(word *snowballword.SnowballWord) bool {
	suffix, suffixRunes := word.FirstSuffixIn(word.RVstart, len(word.RS),
		"ившись", "ывшись", "вшись", "ивши", "ывши", "вши", "ив", "ыв", "в",
	)
	switch suffix {
	case "в", "вши", "вшись":

		// These are "Group 1" perfective gerund endings.
		// Group 1 endings must follow а (a) or я (ia) in RV.
		if precededByARinRV(word, len(suffixRunes)) == false {
			suffix = ""
		}

	}

	if suffix != "" {
		word.RemoveLastNRunes(len(suffixRunes))
		return true
	}
	return false
}
func removePerfectiveGerundEnding(word *snowballword.SnowballWord) bool {
	suffix, suffixRunes := word.FirstSuffixIn(word.RVstart, len(word.RS),
		"ившись", "ывшись", "вшись", "ивши", "ывши", "вши", "ив", "ыв", "в",
	)
	switch suffix {
	case "в", "вши", "вшись":

		
		
		if precededByARinRV(word, len(suffixRunes)) == false {
			suffix = ""
		}

	}

	if suffix != "" {
		word.RemoveLastNRunes(len(suffixRunes))
		return true
	}
	return false
}
func removePerfectiveGerundEnding ( word * snowballword . SnowballWord ) bool { suffix , suffixRunes := word . FirstSuffixIn ( word . RVstart , len ( word . RS ) , " ш и ь " и ш , в " , " , ) switch suffix { case " , в в ш с // These are "Group 1" perfective gerund endings. // Group 1 endings must follow а (a) or я (ia) in RV. if precededByARinRV ( word , len ( suffixRunes ) ) == false { suffix = " " } } if suffix != " " { word . RemoveLastNRunes ( len ( suffixRunes ) ) return true } return false }
// Remove perfective gerund endings and return true if one was removed.
//
Remove perfective gerund endings and return true if one was removed .