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); } }