protected override Expression VisitBlockHelperExpression(BlockHelperExpression bhex)
 {
     return(HandlebarsExpression.BlockHelperExpression(
                bhex.HelperName,
                bhex.Arguments.Select(Visit),
                Visit(bhex.Body),
                Visit(bhex.Inversion)));
 }
 public override Expression GetAccumulatedBlock()
 {
     if (_accumulatedBody == null)
     {
         _accumulatedBody      = Expression.Block(_body);
         _accumulatedInversion = Expression.Block(Expression.Empty());
     }
     else if (_accumulatedInversion == null && _body.Any())
     {
         _accumulatedInversion = Expression.Block(_body);
     }
     else
     {
         _accumulatedInversion = Expression.Block(Expression.Empty());
     }
     return(HandlebarsExpression.BlockHelperExpression(
                _startingNode.HelperName,
                _startingNode.Arguments,
                _accumulatedBody,
                _accumulatedInversion));
 }