private void GetChars(Node node, IList<char> chars)
 {
     foreach (var child in node.GetChildren())
     {
         if (node.Depth + 1 == child.Depth && !child.Value.Equals(' '))
         {
             chars.Add(child.Value);
         }
         else if(child.Depth > node.Depth + 1)
         {
             return;
         }
     }
 }
        private void GetTerms(Node node, ICollection<string> words,
            StringBuilder buffer)
        {
            if (node.IsTerm())
            {
                words.Add(buffer.ToString());
            }

            foreach (var child in node.GetChildren())
            {
                buffer.Append(child.Value);
                GetTerms(child, words, buffer);
                buffer.Length--;
            }
        }