private static bool WriteArrayElements(InitializerExpressionSyntax initializer, OutputWriter writer, Dictionary <int, int> inferred, int level, bool omitbraces = false, ITypeSymbol elementType = null) { level++; if (!omitbraces) { writer.Write("["); } bool first = true; if (!inferred.ContainsKey(level)) { inferred.Add(level, initializer.Expressions.Count); } foreach (var iexpression in initializer.Expressions) { if (first) { first = false; } else { writer.Write(","); } if (iexpression is InitializerExpressionSyntax) { WriteArrayElements(iexpression as InitializerExpressionSyntax, writer, inferred, level, omitbraces); } else { if (elementType != null) { // var type = TypeProcessor.GetTypeInfo(iexpression); //Need to do this like a binary i.e. compare all WriteBinaryExpression.WriteIt(writer, default(SyntaxToken), null, iexpression); // Core.Write(writer, iexpression); } else { Core.Write(writer, iexpression); } } } if (!omitbraces) { writer.Write("]"); } return(first); }
public static void Go(OutputWriter writer, AssignmentExpressionSyntax expression) { WriteBinaryExpression.WriteIt(writer, expression.OperatorToken, expression.Right, expression.Left); }