public override IEnumerable <string> Visit(IfElseIfStatement node) { StringBuilder first = new StringBuilder("if ( "); foreach (var str in node.Nodes <BooleanExpression>()[0].Accept(this).Where(s => !string.IsNullOrWhiteSpace(s))) { first.Append(str); } first.Append(" )"); yield return(first.ToString()); yield return("{"); foreach (var str in node.Nodes <Declaration>()[0].Accept(this)) { yield return($" {str}"); } foreach (var str in node.Nodes <Statement>()[0].Accept(this)) { yield return($" {str}"); } yield return("}"); yield return("else"); foreach (var str in node[9].Accept(this)) { yield return(str); } }