Example #1
0
        override TExpression VisitLoop(LoopExpressionAlias node)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            var b = Visit(node.Body);
            var k = VisitIfNotNull(node.BreakLabel, VisitLabelTarget);
            var c = VisitIfNotNull(node.ContinueLabel, VisitLabelTarget);

            return(MakeLoop(node, b, k, c));
        }
Example #2
0
 /// <summary>
 /// Makes an expression representing a LoopExpression with the given children.
 /// </summary>
 /// <param name="node">Original expression.</param>
 /// <param name="body">Body expression.</param>
 /// <param name="breakLabel">Break label.</param>
 /// <param name="continueLabel">Continue label.</param>
 /// <returns>Representation of the original expression.</returns>
 protected abstract TExpression MakeLoop(LoopExpressionAlias node, TExpression body, TLabelTarget breakLabel, TLabelTarget continueLabel);