public override void Dump(SourceWriter sw, int indentChange) { var parenthesize = !_left.IsPrimaryExpression; if (parenthesize) { sw.Write("("); } _left.Dump(sw, indentChange); if (parenthesize) { sw.Write(")"); } sw.Write("."); sw.Write(Name); if (HasTypeArguments) { sw.Write("<"); for (var i = 0; i < TypeArguments.Count; i++) { var type = TypeArguments[i]; if (i != 0) { sw.Write(","); } DumpChild(type, sw, indentChange); } sw.Write(">"); } }
public override void Dump(SourceWriter sw, int indentChange) { var parenthesize = !_target.IsPrimaryExpression; if (parenthesize) { sw.Write("("); } _target.Dump(sw, indentChange); if (parenthesize) { sw.Write(")"); } if (_typeArguments.Count != 0) { sw.Write("<"); for (var i = 0; i < _typeArguments.Count; i++) { var typeArgument = _typeArguments[i]; if (i != 0) { sw.Write(", "); } typeArgument.Dump(sw, indentChange); } sw.Write(">"); } sw.Write("("); var isExtensionInvocation = MethodGroup is ExtensionMethodGroupExpression; var firstArgumentIndex = (isExtensionInvocation ? 1 : 0); for (var i = firstArgumentIndex; i < _arguments.Count; i++) { var argument = _arguments[i]; if (i > firstArgumentIndex) { sw.Write(", "); } argument.Dump(sw, indentChange); } sw.Write(")"); }
public override void Dump(SourceWriter sw, int indentChange) { var parenthesize = !_target.IsPrimaryExpression; if (parenthesize) { sw.Write("("); } _target.Dump(sw, indentChange); if (parenthesize) { sw.Write(")"); } sw.Write("."); sw.Write(Method != null ? Method.Name : MethodName); if (_typeArguments.Count != 0) { sw.Write("<"); for (var i = 0; i < _typeArguments.Count; i++) { var typeArgument = _typeArguments[i]; if (i != 0) { sw.Write(", "); } typeArgument.Dump(sw, indentChange); } sw.Write(">"); } sw.Write("("); for (var i = 0; i < _arguments.Count; i++) { var argument = _arguments[i]; if (i != 0) { sw.Write(", "); } argument.Dump(sw, indentChange); } sw.Write(")"); }
public override void Dump(SourceWriter sw, int indentChange) { var parenthesize = !_target.IsPrimaryExpression; if (parenthesize) { sw.Write("("); } _target.Dump(sw, indentChange); if (parenthesize) { sw.Write(")"); } sw.Write("["); var lastStartLine = Span.Start.Line; for (var i = 0; i < _arguments.Count; i++) { var argument = _arguments[i]; if (i != 0) { sw.Write(","); if (argument.Span.Start.Line != lastStartLine) { sw.WriteLine(); sw.Write(' ', argument.Span.Start.Column - 1 + indentChange); } else { sw.Write(" "); } lastStartLine = argument.Span.Start.Line; } argument.Dump(sw, indentChange); } sw.Write("]"); }
public override void Dump(SourceWriter sw, int indentChange) { var declarationBuilder = new StringBuilder(); declarationBuilder.Append("local "); declarationBuilder.Append(VariableName); declarationBuilder.Append(" = "); sw.Write(declarationBuilder.ToString()); if (_initializer == null) { sw.Write("?"); return; } var oldIndent = sw.Indent; var initializerIndentChange = indentChange; var initializerStart = _initializer.Span.Start; if (initializerStart.Line == Span.Start.Line) { var declarationLength = declarationBuilder.Length; var originalInitializerOffset = initializerStart.Column - 1; initializerIndentChange += (declarationLength - originalInitializerOffset) - sw.Indent; } else { sw.WriteLine(); initializerIndentChange = initializerStart.Column - 1 - sw.Indent + indentChange; } sw.Indent += initializerIndentChange; try { _initializer.Dump(sw, initializerIndentChange); } finally { sw.Indent = oldIndent; } }
public override void Dump(SourceWriter sw, int indentChange) { if (_scope == null) { var parenthesizeParameters = ((Parameters.Count != 1) || Parameters[0].HasExplicitType); if (parenthesizeParameters) { sw.Write("("); } for (var i = 0; i < Parameters.Count; i++) { if (i != 0) { sw.Write(", "); } DumpChild(Parameters[i], sw); } if (parenthesizeParameters) { sw.Write(")"); } sw.Write(" => "); if (_body != null) { _body.Dump(sw, indentChange); } } else { var parenthesizeParameters = ((_scope.Parameters.Count != 1) || !(_scope.Parameters[0] is ImplicitLambdaParameter)); if (parenthesizeParameters) { sw.Write("("); } for (var i = 0; i < _scope.Parameters.Count; i++) { if (i != 0) { sw.Write(", "); } sw.Write(_scope.Parameters[i].Name); } if (parenthesizeParameters) { sw.Write(")"); } sw.Write(" => "); if (_body != null) { _body.Dump(sw, indentChange); } } }