internal override void ToString(StringBuilder sb, int ident) { if (Format.IsSymbolic(Name)) { sb.Append('('); sb.Append(Name); sb.Append(')'); } else { sb.Append(Name); } if (Mask != 0) { sb.Append(" "); for (var i = 0; i < Components; i++) { if (i > 0) { sb.Append("->"); } if ((Mask & (1 << i)) == (1 << i)) { sb.Append("a"); } else { sb.Append("_"); } } } }
internal void ToString(StringBuilder sb, int indent, bool omitFirstIndent) { if (indent > 0 && !omitFirstIndent) { sb.Append(' ', indent); } var ln = sb.Length; if (!Left.Parens || (Left.Type == ElaNodeType.NameReference && Format.IsSymbolic(Left.GetName()))) { Left.ToString(sb, 0); } else { sb.Append('('); Left.ToString(sb, 0); sb.Append(')'); } if (Right != null) { sb.Append(" = "); Right.ToString(sb, indent + (sb.Length - ln)); } if (Next != null) { sb.AppendLine(); Next.ToString(sb, indent); } }
internal override void ToString(StringBuilder sb, int ident) { sb.Append("class "); sb.Append(Name); if (BuiltinName != null) { sb.Append(" __internal "); sb.Append(BuiltinName); foreach (var s in Members) { sb.Append(' '); if (Format.IsSymbolic(s.Name)) { sb.Append('('); sb.Append(s.Name); sb.Append(')'); } else { sb.Append(s.Name); } } } else { sb.AppendLine(" a"); sb.Append(" where "); var c = 0; foreach (var s in Members) { if (c++ > 0) { sb.AppendLine(); sb.Append(" "); } s.ToString(sb, 0); } sb.AppendLine(); } if (And != null) { sb.AppendLine(); And.ToString(sb, ident); } }
internal override void ToString(StringBuilder sb, int ident) { if (Bang) { sb.Append('!'); } if (Format.IsSymbolic(Name)) { sb.AppendFormat("({0})", Name); } else { sb.Append(Name); } }