IronRuby.Compiler.Ast.RedoStatement.Transform C# (CSharp) Метод

Transform() приватный Метод

private Transform ( AstGenerator gen ) : Expression
gen AstGenerator
Результат System.Linq.Expressions.Expression
        internal override MSA.Expression/*!*/ Transform(AstGenerator/*!*/ gen) {

            // eval:
            if (gen.CompilerOptions.IsEval) {
                return Methods.EvalRedo.OpCall(gen.CurrentScopeVariable);
            }

            // loop:
            if (gen.CurrentLoop != null) {
                return Ast.Block(
                    Ast.Assign(gen.CurrentLoop.RedoVariable, AstUtils.Constant(true)),
                    Ast.Continue(gen.CurrentLoop.ContinueLabel),
                    AstUtils.Empty()
                );
            }

            // block:
            if (gen.CurrentBlock != null) {
                return Ast.Continue(gen.CurrentBlock.RedoLabel);
            }

            // method:
            return Methods.MethodRedo.OpCall(gen.CurrentScopeVariable);
        }
    }