private string ToStringDefault(ParenMode mode) { bool useParen = mode == ParenMode.Always; if (!useParen) { useParen = mode != ParenMode.Never && _values.Length > 1; } var sb = new StringBuilder(); if (useParen) { sb.Append("("); } var sj = new StringJoiner(sb, _joinString); foreach (var v in _values) { sj.Add(FormatField() + v.ToString()); } if (useParen) { sb.Append(")"); } return(sb.ToString()); }
public string ToString(ParenMode mode) { if (_values[0].IsCombinable()) { return(ToStringCombinable(mode)); } else { return(ToStringDefault(mode)); } }
public override string ToString(ParenMode mode) { var ret = base.ToString(ParenMode.Never); if (ShouldUseParens(mode)) { return("~(" + ret + ")"); } else { return("~" + ret); } }
protected bool ShouldUseParens(ParenMode mode) { if (mode == ParenMode.Always) { return(true); } else if (mode == ParenMode.Never) { return(false); } else { return(children.Count > 1); } }
private string ToStringCombinable(ParenMode mode) { StringBuilder sb = new StringBuilder(FormatField()); if (_values.Length > 1 || mode == ParenMode.Always) { sb.Append("("); } var sj = new StringJoiner(sb, _joinString); foreach (var v in _values) { sj.Add(v.ToString()); } if (_values.Length > 1 || mode == ParenMode.Always) { sb.Append(")"); } return(sb.ToString()); }
public virtual string ToString(ParenMode mode) { StringBuilder sb = new StringBuilder(); if (ShouldUseParens(mode)) { sb.Append("("); } var sj = new StringJoiner(sb, GetJoinString()); foreach (var n in children) { sj.Add(n.ToString(mode)); } if (ShouldUseParens(mode)) { sb.Append(")"); } return(sb.ToString()); }