From fd517004b31558c6c7fd13967a030b421986a127 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Mon, 21 Sep 2026 07:40:23 -0700 Subject: [PATCH] Add UniqueStemMSAs --- Src/LexText/ParserCore/HCLoader.cs | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) 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)