internal ValueEnumerator(Enumerator iterator) { enumerator = iterator; // There must be at least a single node enumerator.MoveNext(); valueEnumerator = enumerator.Current.Block.GetEnumerator(); }
/// <summary> /// Constructs a new basic block enumerator. /// </summary> /// <param name="scope">The parent function scope.</param> internal Enumerator(Scope scope) { functionEnumerator = scope.GetEnumerator(); // There must be at least a single block functionEnumerator.MoveNext(); valueEnumerator = functionEnumerator.Current.GetEnumerator(); }
public bool MoveNext() { while (true) { if (valueEnumerator.MoveNext()) { return(true); } // Try to move to the next node if (!enumerator.MoveNext()) { return(false); } valueEnumerator = enumerator.Current.GetEnumerator(); } }
/// <summary cref="IEnumerator.MoveNext"/> public bool MoveNext() { while (true) { if (valueEnumerator.MoveNext()) { return(true); } valueEnumerator.Dispose(); // Try to move to the next function if (!functionEnumerator.MoveNext()) { return(false); } valueEnumerator = functionEnumerator.Current.GetEnumerator(); } }