Пример #1
0
        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());
        }
Пример #2
0
 public string ToString(ParenMode mode)
 {
     if (_values[0].IsCombinable())
     {
         return(ToStringCombinable(mode));
     }
     else
     {
         return(ToStringDefault(mode));
     }
 }
Пример #3
0
        public override string ToString(ParenMode mode)
        {
            var ret = base.ToString(ParenMode.Never);

            if (ShouldUseParens(mode))
            {
                return("~(" + ret + ")");
            }
            else
            {
                return("~" + ret);
            }
        }
Пример #4
0
 protected bool ShouldUseParens(ParenMode mode)
 {
     if (mode == ParenMode.Always)
     {
         return(true);
     }
     else if (mode == ParenMode.Never)
     {
         return(false);
     }
     else
     {
         return(children.Count > 1);
     }
 }
Пример #5
0
        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());
        }
Пример #6
0
        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());
        }