public override IEnumerable <SyntaxNode> BuildSyntax(IDom item)
        {
            var        itemAsT = item as T;
            SyntaxNode node;

            if (itemAsT.Condition == null)
            // TODO: Isn't condition null in a ForEach?
            {
                node = SyntaxFactory.EmptyStatement();
            }                                      // This shold not happen
            else
            {
                var statement = RoslynCSharpUtilities.BuildStatement(itemAsT.Statements, itemAsT, WhitespaceLookup);
                var condition = (ExpressionSyntax)RDom.CSharp.GetSyntaxNode(itemAsT.Condition);
                node = MakeSyntax(itemAsT, condition, statement);
            }

            var leadingTrivia = BuildSyntaxHelpers.LeadingTrivia(itemAsT, OutputContext);

            node = node.WithLeadingTrivia(leadingTrivia);
            node = BuildSyntaxHelpers.AttachWhitespace(node, itemAsT.Whitespace2Set, WhitespaceLookup);
            node = AdjustWhitespace(node, itemAsT, WhitespaceLookup);

            return(node.PrepareForBuildSyntaxOutput(itemAsT, OutputContext));
        }