private void FindFast(string[] s, Container iContainer)
 {
     if (!FindOr(s) && !iContainer.Var.Equals(iContainer.SplitStrings[0]))
     {
         _stack.Push(s[0]);
         GetTer(iContainer);
     }
     else
     {
         for (var i = 0; i < s.Length; i++)
         {
             if (i == 0 && !iContainer.Var.Equals(iContainer.SplitStrings[0]))
             {
                 _stack.Push(s[i]);
             }
             else if (s[i] == "|")
             {
                 _stack.Push(s[i + 1]);
             }
         }
         if (_stack.Count != 0)
         {
             GetTer(iContainer);
         }
     }
 }
        private void GetTer(Container iContainer)
        {
            var st = _stack.Pop();

            if (FindVar(st))
            {
                int loc = VarLoc(st);
                if (loc != -1)
                {
                    if (!st.Equals(iContainer.Var))
                    {
                        FindFast(_varlist[loc].SplitStrings, iContainer);
                    }
                }
            }
            else
            {
                _temp.Add(st);
            }
            if (_stack.Count != 0)
            {
                GetTer(iContainer);
            }
        }