Exemplo n.º 1
0
        public override Expression Compile()
        {
            var        scope    = new ClassScope(Compiler);
            var        classVar = scope.Module as ParameterExpression;
            Expression header   = Assign(classVar, GetClass());

            header = CallFrame.Expressions.Push(null, header);

            Compiler.StartScope(scope);

            try
            {
                var body = Body.Accept(Compiler);
                body = Expression.TryFinally(body, CallFrame.Expressions.Pop());

                return(scope.CompileBody(Block(header, body)));
            }
            finally
            {
                Compiler.EndScope();
            }
        }