コード例 #1
0
        public override IAssignableExpression VisitAnonymousMethodExpression(IAnonymousMethodExpression expr,
                                                                             IList <IStatement> body)
        {
            var lambdaName = expr.GetName();
            var lambdaBody = new KaVEList <IStatement>();

            var isCompletionTarget = expr == _marker.HandlingNode && CompletionCase.InBody == _marker.Case;

            if (isCompletionTarget)
            {
                var stmt = new ExpressionStatement {
                    Expression = new CompletionExpression()
                };
                lambdaBody.Add(stmt);
            }

            var bodyVisitor = new StatementVisitor(_nameGen, _marker);

            expr.Body.Accept(bodyVisitor, lambdaBody);

            return(new LambdaExpression
            {
                Name = lambdaName,
                Body = lambdaBody
            });
        }
コード例 #2
0
        public override IAssignableExpression VisitAnonymousMethodExpression(IAnonymousMethodExpression expr,
                                                                             IList <IStatement> body)
        {
            var lambdaName  = expr.GetName();
            var lambdaBody  = new KaVEList <IStatement>();
            var bodyVisitor = new BodyVisitor(_nameGen, _marker);

            expr.Body.Accept(bodyVisitor, lambdaBody);

            return(new LambdaExpression
            {
                Name = lambdaName,
                Body = lambdaBody
            });
        }