Exemplo n.º 1
0
            private CodeSnippetExpression RewriteArrayInitializerExpression(CodeArrayInitializerExpression arrayInitializer)
            {
                using (StringWriter sw = new StringWriter(CultureInfo.InvariantCulture))
                {
                    sw.Write("{ ");
                    sw.WriteLine();
                    this.nestingLevel++;
                    try
                    {
                        foreach (CodeExpression expr in arrayInitializer.Values)
                        {
                            this.WriteIndentation(sw);
                            this.generator.GenerateCodeFromExpression(expr, sw, null);
                            sw.WriteLine(", ");
                        }
                    }
                    finally
                    {
                        this.nestingLevel--;
                    }

                    this.WriteIndentation(sw);
                    sw.Write(" }");
                    return(new CodeSnippetExpression(sw.ToString()));
                }
            }
Exemplo n.º 2
0
 /// <inheritdoc />
 protected override bool HandleDynamic(CodeArrayInitializerExpression obj, Context ctx)
 {
     ctx.Writer.Write("{");
     GeneralUtils.HandleCollectionCommaSeparated(obj.Expressions, ctx.HandlerProvider.ExpressionHandler, ctx);
     ctx.Writer.Write("}");
     return(true);
 }
Exemplo n.º 3
0
            private CodeExpression RewriteAnonymousArrayExpression(CodeAnonymousArrayExpression expression)
            {
                var converted = new CodeArrayInitializerExpression();

                foreach (var element in expression.Elements)
                {
                    converted.Add(element);
                }

                return(this.RewriteArrayInitializerExpression(converted));
            }
Exemplo n.º 4
0
            private CodeSnippetExpression RewriteArrayInitializerExpression(CodeArrayInitializerExpression arrayInitializer)
            {
                using (StringWriter sw = new StringWriter(CultureInfo.InvariantCulture))
                {
                    sw.Write("{ ");
                    for (int i = 0; i < arrayInitializer.Values.Count; i++)
                    {
                        var expr = arrayInitializer.Values[i];
                        this.generator.GenerateCodeFromExpression(expr, sw, null);
                        if (i < arrayInitializer.Values.Count - 1)
                        {
                            sw.Write(", ");
                        }
                    }

                    sw.Write(" }");
                    return(new CodeSnippetExpression(sw.ToString()));
                }
            }
Exemplo n.º 5
0
            /// <summary>
            /// Rewrites CodeExpression
            /// </summary>
            /// <param name="e">A CodeExpression to be rewritten.</param>
            /// <param name="didRewrite">A value which will be set to true if the rewriting returned a new object.</param>
            /// <returns>Rewritten CodeExpression.</returns>
            protected override CodeExpression Rewrite(CodeExpression e, ref bool didRewrite)
            {
                CodeLambdaExpression lambdaExpression = e as CodeLambdaExpression;

                if (lambdaExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteLambdaExpression(lambdaExpression));
                }

                CodeQueryExpression queryExpression = e as CodeQueryExpression;

                if (queryExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteComprehensionExpression(queryExpression));
                }

                CodeCreateAndInitializeObjectExpression objectCreateExpression = e as CodeCreateAndInitializeObjectExpression;

                if (objectCreateExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteCreateAndInitializeObjectExpression(objectCreateExpression));
                }

                CodeArrayInitializerExpression arrayInitializer = e as CodeArrayInitializerExpression;

                if (arrayInitializer != null)
                {
                    didRewrite = true;
                    return(this.RewriteArrayInitializerExpression(arrayInitializer));
                }

                CodeExclusiveOrExpression exclusiveOrExpression = e as CodeExclusiveOrExpression;

                if (exclusiveOrExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteExclusiveOrExpression(exclusiveOrExpression));
                }

                CodeAsExpression asExpression = e as CodeAsExpression;

                if (asExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteAsExpression(asExpression));
                }

                CodeIsExpression isExpression = e as CodeIsExpression;

                if (isExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteIsExpression(isExpression));
                }

                CodePrimitiveExpression primitiveExpression = e as CodePrimitiveExpression;

                if (primitiveExpression != null)
                {
                    return(this.RewritePrimitiveExpression(primitiveExpression, ref didRewrite));
                }

                var ternaryExpression = e as CodeTernaryExpression;

                if (ternaryExpression != null)
                {
                    didRewrite = true;
                    return(this.RewriteTernaryExpression(ternaryExpression));
                }

                var anonymousArray = e as CodeAnonymousArrayExpression;

                if (anonymousArray != null)
                {
                    didRewrite = true;
                    return(this.RewriteAnonymousArrayExpression(anonymousArray));
                }

                return(base.Rewrite(e, ref didRewrite));
            }
 /// <inheritdoc cref="ICodeObjectHandler{T}.Handle"/>
 protected abstract bool HandleDynamic(CodeArrayInitializerExpression obj, Context ctx);