Ejemplo n.º 1
0
 public void Reset()
 {
     currentBlock     = null;
     currentStatement = null;
     currentSubblock  = null;
     childEnum        = null;
 }
Ejemplo n.º 2
0
        IEnumerator <Statement> IEnumerable <Statement> .GetEnumerator()
        {
            List <Statement> listStatements = new List <Statement>();
            BlockEnumerator  blockEnum      = new BlockEnumerator(this);

            while (blockEnum.MoveNext())
            {
                listStatements.AddRange(blockEnum.Current.Statements);
            }
            return(listStatements.GetEnumerator());
        }
Ejemplo n.º 3
0
        public bool MoveNext()
        {
            if (currentBlock == null)
            {
                currentBlock     = baseBlock;
                currentStatement = currentBlock.Statements.GetEnumerator();
                return(true);
            }

            if (childEnum != null)
            {
                if (childEnum.MoveNext())
                {
                    currentBlock = childEnum.Current;
                    return(true);
                }
                childEnum = null;
            }

            if (currentSubblock != null)
            {
                if (currentSubblock.MoveNext())
                {
                    childEnum = new BlockEnumerator(currentSubblock.Current);
                    return(this.MoveNext());
                }
                currentSubblock = null;
            }

            while (currentStatement.MoveNext())
            {
                currentSubblock = currentStatement.Current.GetEnumerator();
                return(this.MoveNext());
            }

            return(false);
        }