Ejemplo n.º 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);
            }
Ejemplo n.º 2
0
            public virtual bool Next()
            {
                if (firstTime)
                {
                    // first time -- initialize
                    for (int i = 0; i < all.Count; i++)
                    {
                        Spans spans = (Spans)all[i];
                        if (spans.Next())
                        {
                            // move to first entry
                            queue.Put(spans);                             // build queue
                        }
                        else
                        {
                            all.RemoveAt(i--);
                        }
                    }
                    firstTime = false;
                    return(queue.Size() != 0);
                }

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

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

                all.Remove(queue.Pop());                 // exhausted a clause

                return(queue.Size() != 0);
            }
Ejemplo n.º 3
0
            public virtual bool Next()
            {
                if (queue == null)
                {
                    return(InitSpanQueue(-1));
                }

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

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

                queue.Pop();                 // exhausted a clause
                return(queue.Size() != 0);
            }
Ejemplo n.º 4
0
            public override bool Next(IState state)
            {
                if (queue == null)
                {
                    return(InitSpanQueue(-1, state));
                }

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

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

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