Ejemplo n.º 1
0
        public override AstNode VisitForStatement(ForStatement forStatement)
        {
            if (forStatement.EmbeddedStatement is BlockStatement)
            {
                return(base.VisitForStatement(forStatement));
            }

            var clonForStatement = (ForStatement)base.VisitForStatement(forStatement);

            if (clonForStatement != null)
            {
                forStatement = clonForStatement;
            }

            if (!(forStatement.EmbeddedStatement is BlockStatement))
            {
                var l     = (ForStatement)forStatement.Clone();
                var block = new BlockStatement();
                block.Statements.Add(l.EmbeddedStatement.Clone());
                l.EmbeddedStatement = block;

                return(l);
            }

            return(forStatement.Clone());
        }
Ejemplo n.º 2
0
        public override AstNode VisitForStatement(ForStatement forStatement)
        {
            var visitor = new LambdaVisitor();

            forStatement.EmbeddedStatement.AcceptVisitor(visitor);

            if (visitor.LambdaExpression.Count == 0 && forStatement.EmbeddedStatement is BlockStatement)
            {
                return(base.VisitForStatement(forStatement));
            }

            var clonForStatement = (ForStatement)base.VisitForStatement(forStatement);

            if (clonForStatement != null)
            {
                forStatement = clonForStatement;
            }

            if (!(forStatement.EmbeddedStatement is BlockStatement))
            {
                var l     = (ForStatement)forStatement.Clone();
                var block = new BlockStatement();
                block.Statements.Add(l.EmbeddedStatement.Clone());
                l.EmbeddedStatement = block;

                return(l);
            }

            return(forStatement.Clone());
        }