Exemple #1
0
        public static void Write(this ConditionalAccessExpressionSyntax syntax,
                                 IIndentedTextWriterWrapper textWriter,
                                 IContext context)
        {
            textWriter.Write("_M.CA(");
            syntax.Expression.Write(textWriter, context);
            textWriter.Write(",function(obj) return ");
            var stringWriter  = new StringWriter();
            var newTextWriter = new IndentedTextWriterWrapper(stringWriter);

            syntax.WhenNotNull.Write(newTextWriter, context);

            if (stringWriter.ToString().StartsWith("("))
            {
                textWriter.Write("((obj % _M.DOT)");
                textWriter.Write(newTextWriter.ToString().Substring(1));
            }
            else
            {
                textWriter.Write("(obj % _M.DOT)");
                textWriter.AppendTextWriter(newTextWriter);
            }

            textWriter.Write("; end)");
        }