private void PullTop() { // extract all subs from the queue that have the same // top term Debug.Assert(numTop == 0); while (true) { top[numTop++] = queue.Pop(); if (queue.Count == 0 || !(queue.Top).Current.BytesEquals(top[0].Current)) { break; } } current = top[0].Current; }
private void PullTop() { // extract all subs from the queue that have the same // top term Debug.Assert(NumTop == 0); while (true) { Top[NumTop++] = Queue.Pop(); if (Queue.Size() == 0 || !(Queue.Top()).Current.BytesEquals(Top[0].Current)) { break; } } Current = Top[0].Current; }