public override string Print(int depth) { return("loop " + LoopVariable + ":" + InitialValue.Print(depth) + " " + StepDirection + " " + EndingValue.Print(depth) + (Step == null ? string.Empty : " with " + Step.Print(depth)) + NewLine(depth) + "{" + Statements.Print(depth + 1) + "}"); }