/// <summary> /// Returns sub Leaf with specified sign. /// Create sub Leaf if leaf with such sign doesn't exist. /// </summary> /// <param name="sign"></param> /// <returns></returns> protected Leaf GetOrAppendSubLeaf(char sign) { if (SubLeaves != null) { foreach (Leaf leaf in SubLeaves) { if (leaf.Sign == sign) { return(leaf); } } return(SubLeaves.AppendToLast(new Leaf(sign)).Item); } else { SubLeaves = new OnceLinkedList <Leaf>(new Leaf(sign)); return(SubLeaves.Item); } }
/// <summary> /// Adds information to current leaf. /// </summary> /// <param name="info"></param> private void AddInfo(LemmaInfo info) { OnceLinkedList <LemmaInfo> .Append(ref Info, info); }