diff --git a/Src/LexText/ParserCore/HCLoader.cs b/Src/LexText/ParserCore/HCLoader.cs index 4d2a889c92..ec2bc68794 100644 --- a/Src/LexText/ParserCore/HCLoader.cs +++ b/Src/LexText/ParserCore/HCLoader.cs @@ -636,7 +636,7 @@ protected virtual void LoadLexEntries(Stratum stratum, ILexEntry entry, IList()) + foreach (IMoStemMsa msa in UniqueStemMSAs(mainEntry.MorphoSyntaxAnalysesOC.OfType())) LoadLexEntryOfVariant(stratum, inflType, msa, allos, entry.ShortName); } else @@ -650,10 +650,32 @@ protected virtual void LoadLexEntries(Stratum stratum, ILexEntry entry, IList()) + foreach (IMoStemMsa msa in UniqueStemMSAs(entry.MorphoSyntaxAnalysesOC.OfType())) LoadLexEntry(stratum, msa, allos, entry.ShortName); } + IEnumerable UniqueStemMSAs(IEnumerable msas) + { + IList newMsas = new List(); + foreach (var msa in msas) + { + bool found = false; + foreach (var newMsa in newMsas) + { + if (newMsa.EqualsMsa(msa)) + { + found = true; + break; + } + } + if (!found) + { + newMsas.Add(msa); + } + } + return newMsas; + } + protected IEnumerable GetInflTypes(ILexEntryRef lexEntryRef) { if (lexEntryRef.VariantEntryTypesRS.Count == 0)