Transform() private method

private Transform ( AstGenerator gen ) : Expression
gen AstGenerator
return System.Linq.Expressions.Expression
Exemplo n.º 1
0
        internal override MSA.Expression /*!*/ TransformRead(AstGenerator /*!*/ gen)
        {
            Assert.NotNull(gen);

            MSA.Expression transformedBlock = _block.Transform(gen);

            MSA.Expression blockArgVariable = gen.CurrentScope.DefineHiddenVariable("#forloop-block", typeof(Proc));

            MSA.Expression result = CallSiteBuilder.InvokeMethod(gen.Context, "each", RubyCallSignature.WithScopeAndBlock(0),
                                                                 gen.CurrentScopeVariable,
                                                                 _list.TransformRead(gen),
                                                                 blockArgVariable
                                                                 );

            return(gen.DebugMark(MethodCall.MakeCallWithBlockRetryable(gen, result, blockArgVariable, transformedBlock, true),
                                 "#RB: method call with a block ('for-loop')"));
        }
 internal override MSA.Expression /*!*/ Transform(AstGenerator /*!*/ gen)
 {
     return(Methods.RegisterShutdownHandler.OpCall(_block.Transform(gen)));
 }
Exemplo n.º 3
0
 internal override MSA.Expression /*!*/ TransformRead(AstGenerator /*!*/ gen)
 {
     return(_block.Transform(gen, true));
 }