public virtual bool MoveNext() { if (modCount != stack.modCount) throw new InvalidOperationException(); switch (current) { case BOF: current = stack.current; return current != -1; case EOF: return false; default: current--; return current != -1; } }