Example #1
0
            public override bool MoveNext()
            {
                if (queue == null)
                {
                    return(InitSpanQueue(-1));
                }

                if (queue.Count == 0) // all done
                {
                    return(false);
                }

                if (Top.MoveNext()) // move to next
                {
                    queue.UpdateTop();
                    return(true);
                }

                queue.Pop(); // exhausted a clause
                return(queue.Count != 0);
            }
Example #2
0
            public override bool Next()
            {
                if (queue == null)
                {
                    return(InitSpanQueue(-1));
                }

                if (queue.Size() == 0)
                {
                    // all done
                    return(false);
                }

                if (Top().Next())
                {
                    // move to next
                    queue.UpdateTop();
                    return(true);
                }

                queue.Pop();                 // exhausted a clause
                return(queue.Size() != 0);
            }