static DeclensionTable[] AddTable(DeclensionTable[] tables, DeclensionTable table) { DeclensionTable[] newArray = new DeclensionTable[tables.Length + 1]; tables.CopyTo(newArray, 0); newArray.SetValue(table, tables.Length); return(newArray); }
public FiFiPageEntry(IElement[] elements) { Invalidate(elements); IElement wordElem = GetWordElement(elements.Skip(1)); term = wordElem.FirstElementChild.TextContent.Trim(); // entry info order: // category category = GetWordCategory(elements.First()); if (!PartsOfSpeech.Contains(category.ToLower())) { Console.WriteLine(); Logger.Warn(String.Format("{0} has unknown word category {1} ", term, category)); } // word itself + other info bool hasVerbConjugation = FiFiPageEntry.HasVerbConjugationLink(wordElem); if (hasVerbConjugation) { verbConjugation = VerbConjugationPage.GetPage(term); } IElement infoClone = (IElement)wordElem.Clone(); infoClone.RemoveChild(infoClone.FirstElementChild); info = infoClone.TextContent.Trim(); var anchors = wordElem.QuerySelectorAll("a").Where(a => a.HasAttribute("href")); if (anchors.Count() > 0) { linkDict = new LinkDictionary(anchors); } else { linkDict = new LinkDictionary(); } // 'Get' here could be 'Discover'. DiscoverDefinitions, DiscoverSections, etc. // definitions definitions = Definition.GetDefinitions(elements.Skip(1).FirstOrDefault(), new Definition[0]); // sections sections = Section.GetSections(elements.Skip(1).First()); // inflection tables declensionTable = DeclensionTable.GetTables(elements.Skip(1).First()).ToArray(); //inflections = declensions.SelectMany(iTable => iTable.declensions).ToArray(); }