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