private void Expand(Conjunction conjunction) { var wrap = !conjunction.RootConjunction; if (conjunction.Any()) { if (wrap) { builder.Append('('); } var head = true; foreach (var item in conjunction) { if (head) { head = false; } else { builder.AppendLine().Append((item is Disjunction) ? "or " : "and "); } ExpandExpression(item); } if (wrap) { builder.Append(')'); } } }